Max Moimoi Posté 7 Mai 2007 Posté 7 Mai 2007 Je suis un webmaster débutant et amateur, je suis artiste peintre et je viens de me faire un site, à l'aide d'un "wysiwyg". Mon site : http://www.biraisjmpeintre.fr Je comprends sans être codeur ce que je fais en HTML, j'interviens si besoin est dans le code. Mais je ne connais rien au PHP, j'ai pourtant inclus dans mon site un formulaire tout fait, issu de ce langage. Celui ci fonctionne bien, je reçois les messages mais affiche un message d'erreur directement sur la page du formulaire et lors de l'envoi du message, de plus il n'affiche pas la page de remerciement : merci.html que j'ai placé dans le même répertoire que le formulaire. Voici le message d'erreur qui s'ouvre lors de l'envoi : Warning: ini_set() has been disabled for security reasons in formulaire1.php on line 5 Warning: Cannot modify header information - headers already sent by (output started at /var/www/21/b/i/r/biraisjmpeintre.fr/www/pagecomment/formulaire1.php:2) in formulaire1.php on line 49 Voici ce qui s'affiche sur la page du formulaire : Warning: ini_set() has been disabled for security reasons in formulaire1.php on line 5 J'espère que mon incompétence ne vous découragera pas. Merci d'avance. Max Moimoi blush.gif Voici le code PHP de ce formulaire : <?php// N'afficher que les erreurs, pas les avertissements...ini_set("error_reporting", "E_ALL & ~E_NOTICE");// Adresse de réception du formulaire$email_dest = "maxmoimoi_AT_biraisjmpeintre.fr";if ($_POST['envoi']) {// E-mail headers:$headers ="MIME-Version: 1.0 \n";$headers .="From: biraisjmpeintre.fr<maxmoimoi_AT_biraisjmpeintre.fr>\n";$headers .="Content-Type: text/html; charset=iso-8859-1 \n";$subject = "Votre commentaire";$partie_entete = "<html><head><meta http-equiv=Content-Type content=text/html; charset=iso-8859-1></head><body bgcolor=#FFFFFF>";for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";}if ($_POST['nbre_zone_email'] != 0) {$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";}if ($_POST['nbre_zones_texte'] != 0) {$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";$partie_zone_texte = stripslashes($partie_zone_texte);}$fin = "</body></html>";$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;// Send the e-mailif (@!mail($email_dest,$subject,$sortie,$headers)) {echo("Envoi du formulaire impossible");} else { // Closing if !mail...// Renvoi à la page de remerciementheader("Location:merci.html");exit();} // Fin du else} // Closing if edit?> Merci à Portekoi d'avoir répondu à mon premier envoi.
captain_torche Posté 7 Mai 2007 Posté 7 Mai 2007 Tout ton problème semble venir de la première ligne de code. Le message que tu obtiens : ini_set() has been disabled for security reason est explicite : apparemment, ton hébergeur empêche d'utiliser la fonction ini_set, pour des raisons de sécurité (tu peux en savoir un peu plus sur cette page, rubrique "Protection des ressources"). Le reste des erreurs affichées sont dûes au fait que tu as un premier message d'erreur, qui empêche la redirection (la fonction header doit être appelée avant que tout caractère ne soit envoyé au navigateur, d'où les erreurs suivantes). En supprimant le début de ton code (càd la ligne contenant le ini_set()), tout devrait rentrer dans l'ordre. PS : j'ai édité ton message, pour utiliser la balise CODEBOX, qui permet de coller des codes assez longs, sans toutefois défigurer la page.
Max Moimoi Posté 7 Mai 2007 Auteur Posté 7 Mai 2007 Merci captain torche de t'être penché sur mon problème. J'ai supprimé la ligne ini_set comme prescrit. Résultat : plus de message d'erreur sur le formulaire lui même mais toujours un message d'erreur lors de l'envoi : Warning: Cannot modify header information - headers already sent by (output started at /var/www/21/b/i/r/biraisjmpeintre.fr/www/pagecomment/formulaire1.php:2) in formulaire1.php on line 49 et toujours pas d'affichage de la page merci.html. Néanmoins je reçois sans problème les messages du formulaire. Désolé d'insister, mais ce message d'erreur risque d'affoler mes visiteurs même si je reçois bien le message. Pendant que j'y suis, au risque d'abuser, est-il possible de recevoir les messages en clair ( sans les "Votre nom=tartempion") ? Est-il possible aussi d'afficher automatiquement le contenu des messages sur mon site ? Merci à celles ou ceux qui voudront bien s'y coller.
captain_torche Posté 7 Mai 2007 Posté 7 Mai 2007 Si le seul affichage que tu as es Cannot modify header information - headers already sent ..., vérifie bien que ton code ne retourne strictement AUCUN caractère avant l'appel à la fonction header. Si ce n'est pas déjà fait, place-le en début de fichier. Si c'est déjà fait, vérifie que tu n'as pas une ligne vide (ou même un espace) avant.
Max Moimoi Posté 7 Mai 2007 Auteur Posté 7 Mai 2007 Désolé, je le répète, je ne connais rien au PHP, ce dernier message m'est incompréhensible. peux-tu expliciter ? Comment vérifier que ce code (qui n'est pas le mien, j'en suis bien incapable), ne retourne aucun caractère avant l'appel de la fonction header ? Que devrais-je placer en début de fichier ? Avant quoi ne faut-il pas avoir de ligne vide ou d'espace ? Je me suis attelé à la fabrication d'un site pour des raisons financières, je me suis beaucoup amusé et m'amuse toujours à le faire,mais je suis peintre avant tout, malgré le plaisir que je prendrais certainement à la programmation, je ne peux pas tout faire.
Max Moimoi Posté 8 Mai 2007 Auteur Posté 8 Mai 2007 Bonjour captain_torche, Un grand merci. Hier au soir, je devais être un peu las et pour tout dire un peu lent. Au réveil j'ai compris ce que tu voulais dire, il y avait effectivement une ligne vide avant le début du php, j'ai rectifié, ça marche, plus de message d'erreur, et affichage de la page de remerciement. Encore merci. et merci aussi aux deux webmasters qui ont pris la peine de visiter mon site.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant