Contact [PHP] erreurs !
bg62
Messages postés
26226
Statut
Modérateur
-
bg62 Messages postés 26226 Statut Modérateur -
bg62 Messages postés 26226 Statut Modérateur -
Bonjour,
voici le lien vers un formulaire de contact:
http://www.just-compub.fr/form/form1.php
normalement il devrait fonctionner puisque je me sers du même script ailleurs,
mais il y a ce message d'erreurs en bas de page :
alors : SOS !
et grand merci à l'avance
@mitiés
b g
voici le lien vers un formulaire de contact:
http://www.just-compub.fr/form/form1.php
normalement il devrait fonctionner puisque je me sers du même script ailleurs,
mais il y a ce message d'erreurs en bas de page :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home.10.17/justcomp/www/form/form1.php:154) in /home.10.17/justcomp/www/form/form1.php on line 245 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home.10.17/justcomp/www/form/form1.php:154) in /home.10.17/justcomp/www/form/form1.php on line 245
alors : SOS !
et grand merci à l'avance
@mitiés
b g
A voir également:
- Contact [PHP] erreurs !
- Easy php - Télécharger - Divers Web & Internet
- Recuperer contact carte sim - Guide
- Retrouver contact supprimé - Accueil - Android
- Localiser un contact - Guide
- Supprimer un contact messenger qui n'est pas ami facebook ✓ - Forum Facebook Messenger
6 réponses
salut,
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
ça devrait suffire !
à toi d'adapter ton script pour pouvoir faire les traitements avant de renvoyer quoi que ce soit.
plus d'infos dans la faq
à plus !
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
ça devrait suffire !
à toi d'adapter ton script pour pouvoir faire les traitements avant de renvoyer quoi que ce soit.
plus d'infos dans la faq
à plus !
voici le code de la page (la balise y est ...)
@+
b g
<?php define("ST_READY", 0); // La page a été appellée pour la 1ere fois (aucun bouton n'a donc pu être cliqué) define("ST_OK", 1); // La page a été appellée avec le bouton [Envoyer] et l'envoi du mail s'est bien passé define("ST_PREVIEW", 2); // La page a été avec le bouton [Prévisualiser] define("ST_ERROR", 3); // Une erreur s'est produite lors de la vérification de la page function remplacements_speciaux($txt) { $txt=preg_replace('#(<|>)#', '-', $txt); $txt=str_replace('"', "'",$txt); $txt=str_replace('&', 'et',$txt); return $txt; } function mail_valide($mail) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; return preg_match($verif,$mail); } $reponse=""; // On regarde si la réponse a été postée par l'utilisateur if (isset($_POST['reponse'])) $reponse=$_POST['reponse']; $message=""; $objet=""; $votretelephone=""; $votremail=""; // On suppose qu'il y a une erreur par défaut même si ce n'est pas le cas. // Raisonnement par l'absurde en quelque sorte ... $status=ST_ERROR; //input button envoi/previsualiser $envoi=isset($_POST['envoi']) ? htmlentities($_POST['envoi']) : ""; $previsualiser=isset($_POST['previsualiser']) ? htmlentities($_POST['previsualiser']) : ""; if (isset($_POST['message'])) { //quelques remplacements pour les specialchars $message=remplacements_speciaux($_POST['message']); $objet=isset($_POST['objet']) ? remplacements_speciaux($_POST['objet']) : ""; // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); $votretelephone=isset($_POST['votretelephone']) ? htmlentities($_POST['votretelephone']) : ""; //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message)) or (empty($objet)) or (!mail_valide($votremail))) { //les 3 champs sont vides if(empty($votremail) and (empty($message)) and (empty($objet))) { $msgerr='Tous les champs sont vides.'; } //un des champs est vide else { if(!mail_valide($votremail)) { $msgerr='Votre adresse e-mail n\'est pas valide.'; } else { $msgerr='Il faut remplir tous les champs !'; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) { $msgerr='Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.'; } elseif(!empty($previsualiser)) { $status=ST_PREVIEW; } elseif(!empty($envoi)) { // Test si la réponse au captcha est correcte ! if (isset($_SESSION['solution'])) { if ($_SESSION['solution'] != $reponse) { $msgerr="Mauvaise réponse à la question posée ! Réessayez."; } else { $objet='[contact SITE teria] : '.$objet; $destinataire='monmail@monfai.ici'; $mail=$destinataire; $headers='From:'.$votremail."\r\n". 'Subject:'.$objet."\r\n". 'Content-type: text/plain; charset=ISO-8859-1'."\r\n". 'Sent:'.date('l, F d, Y H:i'); $message = $message."\nTéléphone : ".$votretelephone; if(mail($destinataire,$objet,$message,$headers)) { $status=ST_OK; } else { $msgerr='Un problème est survenu durant l\'envoi du mail.'; } } } else { $msgerr="Votre session a expirée ! Veuillez répondre de nouveau à la question puis valider."; } } else { $msgerr='Une condition innatendue est survenue lors de l\'exécution du script.'; } } } else { $status=ST_READY; } switch ($status) { case ST_READY : echo '<p>Tous les champs doivent être renseignés, merci.</p>'; break; case ST_OK : echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; break; case ST_PREVIEW : echo '<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br />Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer" sans oublier de répondre à la question posée.<br />Prévisualisation :</p>'; break; case ST_ERROR : if (isset($msgerr) && !empty($msgerr)) { echo "<p>".$msgerr."</p>"; } else { echo "<p>Erreur non prévue !</p>"; } break; } ?> <form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"" enctype="multipart/form-data"> <p id='obj'>Utilisez ce formulaire et je vous réponds au plus vite, merci</p> <p id='obj'>(* champs obligatoires)</p> <p> <label for='objet'>*Objet de votre message :<br /> <input type='text' name='objet' id='objet' tabindex='10' size='50' value='<?php echo $objet;?>' /> </label> </p> <p id="adr"> <label for="mail">*Votre Adresse E-mail<br /> <input name="votremail" tabindex="20" size="40" type="text" id="mail" value="<?php echo $votremail; ?>" /> </label> </p> <p id="tel"> <label for="telephone">Votre téléphone(si vous désirez être contactés)<br /> <input name="votretelephone" tabindex="30" size="30" type="text" id="telephone" value="<?php echo $votretelephone ?>" /> </label> </p> <p id="msg"> <label for="message">*Votre message<br /> <textarea tabindex="40" rows="10" cols="50" name="message" id="message"><?php echo $message; ?></textarea> </label> </p> <?php include("captcha.php"); $captcha=new capcha(); // Création d'un nouvel objet (instance) de classe capcha $bouton_previsualiser='<p class="bt"><input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser" /></p>'; $bouton_envoi='<p class="bt">'.$captcha->q().' <input type="text" name="reponse" id="reponse" size="4"> '. '<input name="envoi" tabindex="4" value="Envoyer" type="submit" /></p>'; switch ($status) { case ST_READY : echo $bouton_previsualiser.$bouton_envoi; break; case ST_PREVIEW : echo $bouton_envoi; break; case ST_ERROR : echo $bouton_previsualiser.$bouton_envoi; break; } if (isset($_SESSION)) { session_destroy(); } session_start(); // Restaure la session précédente ou démarre ou nouvelle session // Sauvegarde dans la session de la réponse attendue issue du captcha $_SESSION['solution'] = substr($captcha->word,$captcha->num-1,1); ?> </form>
@+
b g
re,
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
commence ton script par :
et le reste idem en supprimant le 'session_start()' du bas.
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
commence ton script par :
<?php session_start();
et le reste idem en supprimant le 'session_start()' du bas.
donc comme ceci :
@+
b g
<?php session_start(); define("ST_READY", 0); // La page a été appellée pour la 1ere fois (aucun bouton n'a donc pu être cliqué) define("ST_OK", 1); // La page a été appellée avec le bouton [Envoyer] et l'envoi du mail s'est bien passé define("ST_PREVIEW", 2); // La page a été avec le bouton [Prévisualiser] define("ST_ERROR", 3); // Une erreur s'est produite lors de la vérification de la page function remplacements_speciaux($txt) { $txt=preg_replace('#(<|>)#', '-', $txt); $txt=str_replace('"', "'",$txt); $txt=str_replace('&', 'et',$txt); return $txt; } function mail_valide($mail) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; return preg_match($verif,$mail); } $reponse=""; // On regarde si la réponse a été postée par l'utilisateur if (isset($_POST['reponse'])) $reponse=$_POST['reponse']; $message=""; $objet=""; $votretelephone=""; $votremail=""; // On suppose qu'il y a une erreur par défaut même si ce n'est pas le cas. // Raisonnement par l'absurde en quelque sorte ... $status=ST_ERROR; //input button envoi/previsualiser $envoi=isset($_POST['envoi']) ? htmlentities($_POST['envoi']) : ""; $previsualiser=isset($_POST['previsualiser']) ? htmlentities($_POST['previsualiser']) : ""; if (isset($_POST['message'])) { //quelques remplacements pour les specialchars $message=remplacements_speciaux($_POST['message']); $objet=isset($_POST['objet']) ? remplacements_speciaux($_POST['objet']) : ""; // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); $votretelephone=isset($_POST['votretelephone']) ? htmlentities($_POST['votretelephone']) : ""; //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message)) or (empty($objet)) or (!mail_valide($votremail))) { //les 3 champs sont vides if(empty($votremail) and (empty($message)) and (empty($objet))) { $msgerr='Tous les champs sont vides.'; } //un des champs est vide else { if(!mail_valide($votremail)) { $msgerr='Votre adresse e-mail n\'est pas valide.'; } else { $msgerr='Il faut remplir tous les champs !'; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) { $msgerr='Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.'; } elseif(!empty($previsualiser)) { $status=ST_PREVIEW; } elseif(!empty($envoi)) { // Test si la réponse au captcha est correcte ! if (isset($_SESSION['solution'])) { if ($_SESSION['solution'] != $reponse) { $msgerr="Mauvaise réponse à la question posée ! Réessayez."; } else { $objet='[contact SITE teria] : '.$objet; $destinataire='monmail@monfai.ici'; $mail=$destinataire; $headers='From:'.$votremail."\r\n". 'Subject:'.$objet."\r\n". 'Content-type: text/plain; charset=ISO-8859-1'."\r\n". 'Sent:'.date('l, F d, Y H:i'); $message = $message."\nTéléphone : ".$votretelephone; if(mail($destinataire,$objet,$message,$headers)) { $status=ST_OK; } else { $msgerr='Un problème est survenu durant l\'envoi du mail.'; } } } else { $msgerr="Votre session a expirée ! Veuillez répondre de nouveau à la question puis valider."; } } else { $msgerr='Une condition innatendue est survenue lors de l\'exécution du script.'; } } } else { $status=ST_READY; } switch ($status) { case ST_READY : echo '<p>Tous les champs doivent être renseignés, merci.</p>'; break; case ST_OK : echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; break; case ST_PREVIEW : echo '<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br />Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer" sans oublier de répondre à la question posée.<br />Prévisualisation :</p>'; break; case ST_ERROR : if (isset($msgerr) && !empty($msgerr)) { echo "<p>".$msgerr."</p>"; } else { echo "<p>Erreur non prévue !</p>"; } break; } ?> <form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"" enctype="multipart/form-data"> <p id='obj'>Utilisez ce formulaire et je vous réponds au plus vite, merci</p> <p id='obj'>(* champs obligatoires)</p> <p> <label for='objet'>*Objet de votre message :<br /> <input type='text' name='objet' id='objet' tabindex='10' size='50' value='<?php echo $objet;?>' /> </label> </p> <p id="adr"> <label for="mail">*Votre Adresse E-mail<br /> <input name="votremail" tabindex="20" size="40" type="text" id="mail" value="<?php echo $votremail; ?>" /> </label> </p> <p id="tel"> <label for="telephone">Votre téléphone(si vous désirez être contactés)<br /> <input name="votretelephone" tabindex="30" size="30" type="text" id="telephone" value="<?php echo $votretelephone ?>" /> </label> </p> <p id="msg"> <label for="message">*Votre message<br /> <textarea tabindex="40" rows="10" cols="50" name="message" id="message"><?php echo $message; ?></textarea> </label> </p> <?php include("captcha.php"); $captcha=new capcha(); // Création d'un nouvel objet (instance) de classe capcha $bouton_previsualiser='<p class="bt"><input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser" /></p>'; $bouton_envoi='<p class="bt">'.$captcha->q().' <input type="text" name="reponse" id="reponse" size="4"> '. '<input name="envoi" tabindex="4" value="Envoyer" type="submit" /></p>'; switch ($status) { case ST_READY : echo $bouton_previsualiser.$bouton_envoi; break; case ST_PREVIEW : echo $bouton_envoi; break; case ST_ERROR : echo $bouton_previsualiser.$bouton_envoi; break; } if (isset($_SESSION)) { session_destroy(); } EN SUPPRIMANT AUSSI CETTE LIGNE ??? ::::session_start(); // Restaure la session précédente ou démarre ou nouvelle session // Sauvegarde dans la session de la réponse attendue issue du captcha $_SESSION['solution'] = substr($captcha->word,$captcha->num-1,1); ?> </form>
@+
b g
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
??? celui de la FAQ n'est pas sécurisé, c'est pour ça que j'avais envoyé celui-là qui fonctionne avec un captcha facile ...
ce que je ne comprends pas, c'est que d'origine il marche nickel, sans modif (mais sur ovh) il vient de poser problèmes et avec les modifs il ne fonctionne pas sur mon site ... mystère ...
@+
b g
ce que je ne comprends pas, c'est que d'origine il marche nickel, sans modif (mais sur ovh) il vient de poser problèmes et avec les modifs il ne fonctionne pas sur mon site ... mystère ...
@+
b g