Script PHP et IIS

Fermé
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008 - 13 oct. 2008 à 09:54
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008 - 13 oct. 2008 à 18:41
Bonjour à tous,
je suis nouveau sur le forum et viens vers vous pour m'aider... :)

J'ai installer un formulaire PHP sur un serveur IIS et voilà ce que j'obtiens.


http://gratfouille.levillage.org/formulairephp.jpg

J'ai déjà sur ce serveur un forum PHPBB2 qui tourne donc le PHP est bien fonctionnel, mais il doit me manquer quelques chose.

Merci d'avance pour votre aide
A voir également:

16 réponses

bonjour

<?=stripslashes..
est très mauvais
il faut écrire
<?php echo stripslahes...
0
hani_ Messages postés 333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 novembre 2009 20
13 oct. 2008 à 10:43

ÿÀ&#65533;Ñú&#65533;ÿÄ&#65533;±&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;	&#65533;&#65533;!U1Ñ"’“ÓAQ2#³Tt”5SaBRÔqb3$‘rE¡±C¤Á£&#65533;&#65533;&#65533;&#65533;!1AQaq"ð‘¡±Á2BRÑñbár‚¢²’#3ScÂÒâò³ÿÚ&#65533;&#65533;&#65533;?&#65533;ýR€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ 
Éï|uzµN(ú‘K)œ±”ŸöÊ1ffúŠtsŸ›­ûi=úÑÎ~n·í¤÷èG9ùºß¶“ß çæë~ÚO~€tsŸ›­ûi=úÑÎ~n·í¤÷èG9ùºß¶“ß çæë~ÚO~€tsŸ›­ûi=úÑÎ~n·í¤÷èG9ùºß¶“ß çæë~ÚO~€tsŸ›­ûi=úÑÎ~n·í¤÷èG9ùºß¶“ß çæë~ÚO~€tsŸ›­ûi=ú—+^Ý@žh%ŠÄ¥0Bq“iÈÎÄòÈÞXþ¤Š…&#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ &#65533;€ >mÈy#Ä|É™ÞÖþ%Ž¡FL­Š7xÚüö!{­+WH


voici une toute petite partie de ce que je vois en inspectant le code source en clic droit

<img style="cursor: -moz-zoom-in;" alt="http://gratfouille.levillage.org/formulairephp.jpg" src="http://gratfouille.levillage.org/formulairephp.jpg" width="458">


et voici le code complet de ta page vu par firebug...
0
Bonjour hani_

Je crois que tu n'as pas compris que le lien de gratfouille n'est pas sur sa page, mais sur une capture d'écran de sa page, c'est à dire une image.
0
hani_ Messages postés 333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 novembre 2009 20
13 oct. 2008 à 10:49
ben forcement dit comme ça...

dans ce cas si je peut pas faire grand chose... les indices c'est le code qui me les donnes... sans code pas d'indices sans indices pas de solutions possibles
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 12:50
Alors, mon premier problème est résolu, il a fallu changer tous les <? par <?php

Maintenant, mon formulaire ne veut pas envoyer...

Voici le code source

<?php 

// On vérifie si la fonction ini_set() a été désactivée... 
$desactive = ini_get('disable_functions'); 
if (preg_match("/ini_set/i", "$desactive") == 0) { 
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs... 
ini_set("error_reporting" , "E_ALL & ~E_NOTICE"); 
} 

// Vérifier que le formulaire a été envoyé... 
if (isset($_POST['envoi'])) { 


//On commence une session pour enregistrer les variables du formulaire... 

session_start(); 

$_SESSION['champ1'] = $_POST['champ1']; 
$_SESSION['champ2'] = $_POST['champ2']; 
$_SESSION['champ3'] = $_POST['champ3']; 
$_SESSION['champ4'] = $_POST['champ4']; 
$_SESSION['champ5'] = $_POST['champ5']; 
$_SESSION['zone_email1'] = $_POST['zone_email1']; 

//Enregistrement des zones de texte... 
$_SESSION['zone_texte1'] = $_POST['zone_texte1']; 

// Définir l\'icone apparaissant en cas d\'erreur... 


// Définir sur 0 pour afficher un petit x de couleur rouge. 
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant 
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\', 
// ce dernier devant se trouver au même niveau que votre formulaire... 
$flag_icone = 0; 

// On vérifie si $flag_icone est défini sur 0 ou 1... 
if ($flag_icone == 0) { 
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>"; 
} else { 
$icone = "<img src=\"images/icone.gif\""; 
} 

// Définir l'indicateur d'erreur sur zéro... 
$flag_erreur = 0; 
// N'envoyer le formulaire que s'il n'y a pas d'erreurs... 
if ($flag_erreur == 0) {                     

// Addresse de réception du formulaire 
$email_dest = "mail@orange.fr"; 
$sujet = "Demande d'étude"; 
$entetes ="MIME-Version: 1.0 \n"; 
    $entetes .="From: Société<mail@orange.fr>\n"; 
    $entetes .="Return-Path: Société<mail@orange.fr>\n"; 
    $entetes .="Reply-To: Société<mail@orange.fr>\n"; 
    $entetes .="Content-Type: text/html; charset=iso-8859-1 \n"; 
    $partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n"; 


//Partie HTML de l'e-mail... 
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Nom = " . $_SESSION['champ1'] . "</font><br>\n"; 
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Prénom = " . $_SESSION['champ2'] . "</font><br>\n"; 
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Société = " . $_SESSION['champ3'] . "</font><br>\n"; 
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Téléphone = " . $_SESSION['champ4'] . "</font><br>\n"; 
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Type de PLV récherchée = " . $_SESSION['champ5'] . "</font><br>\n"; 
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Adresse Email = " . $_SESSION['zone_email1'] . "</font><br>\n"; 
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre demande = " . $_SESSION['zone_texte1'] . "</font><br>\n"; 
                     

                    // Fin du message HTML 
                    $fin = "</body></html>\n\n"; 
                     
                    $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin; 


                    // Send the e-mail 
                    if (@!mail($email_dest,$sujet,$sortie,$entetes)) { 
                    echo("Envoi du formulaire impossible"); 
                    exit(); 
                    } else { 

                    // Rediriger vers la page de remerciement 
                    header("Location:http://www.monsite.com/merci.php"); 
                    exit(); 
                  } // Fin else 
                } // Fin du if ($flag_erreur == 0) { 
            } // Fin de if POST 
?> 
<html> 
<!--  
Assistant de création de formulaires PHP pour les nuls - Version gratuite 1.6 
Auteur : Frédéric Ménard (assistant@f1-fantasy.net) 
Site : http://www.f1-fantasy.net/assistant 
 --> 
<head> 
<title>Formulaire</title> 

<script language="JavaScript"> 


function verifSelection() { 


if (document.mail_form.champ1.value == "") { 
alert("Merci de nous communiquer votre Nom") 
return false 
}  

if (document.mail_form.champ3.value == "") { 
alert("Merci de nous communiquer le nom de votre société") 
return false 
}  

if (document.mail_form.champ4.value == "") { 
alert("Merci de nous communiquer votre numéro de portable") 
return false 
}  

if (document.mail_form.zone_email1.value == "") { 
alert("Merci de nous communiquer une adresse Email valide") 
return false 
} 

invalidChars = " /:,;'" 

for (i=0; i < invalidChars.length; i++) {    // does it contain any invalid characters? 
badChar = invalidChars.charAt(i) 

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) { 
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") 
document.mail_form.zone_email1.focus() 
return false 
} 
} 

atPos = document.mail_form.zone_email1.value.indexOf("@",1)            // there must be one "@" symbol 
if (atPos == -1) { 
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') 
document.mail_form.zone_email1.focus() 
return false 
} 

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) {    // and only one "@" symbol 
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') 
document.mail_form.zone_email1.focus() 
return false 
} 

periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos) 

if (periodPos == -1) {                    // and at least one "." after the "@" 
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') 
document.mail_form.zone_email1.focus() 
return false 
} 

if (periodPos+3 > document.mail_form.zone_email1.value.length)    {        // must be at least 2 characters after the  
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') 
document.mail_form.zone_email1.focus() 
return false 
} 

} // Fin de la fonction 
</script> 
</head><body><form name="mail_form" method="post" action="<?php echo $_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()"> 
  <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Formulaire 
    de contact</strong></font></div><br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
        <td height="16"><div align="center"> 
  <font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php 
if ($erreur_champ1) { 
      echo(stripslashes($erreur_champ1)); 
      } else { 
if ($erreur_champ2) { 
      echo(stripslashes($erreur_champ2)); 
      } else { 
if ($erreur_champ3) { 
      echo(stripslashes($erreur_champ3)); 
      } else { 
if ($erreur_champ4) { 
      echo(stripslashes($erreur_champ4)); 
      } else { 
if ($erreur_champ5) { 
      echo(stripslashes($erreur_champ5)); 
      } else { 
if ($erreur_email1) { 
      echo(stripslashes($erreur_email1)); 
      } else { 
if ($erreur_texte1) { 
      echo(stripslashes($erreur_texte1)); 
      } else { 
} // Fin du else... 
} // Fin du else... 
} // Fin du else... 
} // Fin du else... 
} // Fin du else... 
} // Fin du else... 
} // Fin du else... 
?> 
    </strong></font> 
    </div></td> 
      </tr> 
    </table> 
<p align="center"></p><table width="566" border="0" align="center"><tr> 
      <td width="140"><div align="right"><font face="Verdana" size="2">Nom</font></div></td> 
      <td align="center" valign="middle" width="30"> 
      <?php 
      if ($erreur_champ1) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><input name="champ1" type="text" value="<?php echo stripslashes($_SESSION['champ1']);?>"></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
      <td width="140"><div align="right"><font face="Verdana" size="2">Prénom</font></div></td> 
      <td align="center" valign="middle" width="30"> 
      <?php 
      if ($erreur_champ2) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><input name="champ2" type="text" value="<?php echo stripslashes($_SESSION['champ2']);?>"></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
      <td width="140"><div align="right"><font face="Verdana" size="2">Société</font></div></td> 
      <td align="center" valign="middle" width="30"> 
      <?php 
      if ($erreur_champ3) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><input name="champ3" type="text" value="<?php echo stripslashes($_SESSION['champ3']);?>"></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
      <td width="140"><div align="right"><font face="Verdana" size="2">Téléphone</font></div></td> 
      <td align="center" valign="middle" width="30"> 
      <?php 
      if ($erreur_champ4) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><input name="champ4" type="text" value="<?php echo stripslashes($_SESSION['champ4']);?>"></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
      <td width="140"><div align="right"><font face="Verdana" size="2">Type de PLV récherchée</font></div></td> 
      <td align="center" valign="middle" width="30"> 
      <?php 
      if ($erreur_champ5) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><input name="champ5" type="text" value="<?php echo stripslashes($_SESSION['champ5']);?>"></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
      <td width="140"><div align="right"><font face="Verdana" size="2">Adresse Email</font></div></td> 
      <td width="30" align="center" valign="middle"> 
      <?php 
      if ($erreur_email1) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><input name="zone_email1" type="text" value="<?php echo stripslashes($_SESSION['zone_email1']);?>"></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
      <td width="140" valign="top"><div align="right"><font face="Verdana" size="2">Votre demande</font></div></td> 
      <td width="30" align="center" valign="top"> 
      <?php 
      if ($erreur_texte1) { 
      echo($icone); 
      } 
      ?> 
      </td> 
      <td><textarea name="zone_texte1" cols="45" rows="10"><?php echo stripslashes($_SESSION['zone_texte1']);?></textarea></td> 
    </tr></table><table width="566" border="0" align="center"><tr> 
<td valign="top"><div align="center">  
          <input type="reset" name="Reset" value=" Effacer "> 
             
          <input type="submit" name="envoi" value="Envoyer"> 
        </div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form></body></html>
0
Supprimer l'affichage des NOTICE est une très mauvaise idée tant que ton script n'est pas au point. Tu te prives (et tu nous prives) d'une information capitale pour la mise au point.
Que se passe-t-il finalement ? Quel affichage, quel message d'erreur ?
0
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 13:25
Le message d'erreur est

Envoi du formulaire impossible

issu de la portion de code

// Send the e-mail 
                    if (@!mail($email_dest,$sujet,$sortie,$entetes)) { 
                    echo("Envoi du formulaire impossible"); 
                    exit(); 
                    } else { 
0
Remet l'affichage des NOTICE
Enlève le @ devant @!mail : if (!mail($email_dest,$sujet,$sortie,$entetes)) {
encore une c..!#$..ie qui empêche de voir ce qui se passe

et redonne le message d'erreur
0
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 13:49
Pour remettre les NOTICES je fais ça?

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
0
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 13:53
Quoi que je fasse, c'est toujours la même phrase qui remonte

Envoi du formulaire impossible
0
Normal, les messages d'erreur sont très probablement masqués.

Mets en commentaire tout le passage :

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

et remplace par
ini_set("error_reporting" , E_ALL); // pas de guillemets autour de E_ALL
0
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 15:32
Impossible, je n'y arrive pas. J'ai contrôler les paramètres mail sur mon serveur, mais rien ne change.

Ce formulaire fonctionne au village, alors je pense que cela viens de mon serveur mais je ne vois pas d'ou.
0
Impossible, je n'y arrive pas
Si c'est possible
A quoi n'arrives-tu pas ? à mettre le passage indiqué en commentaire ? A afficher les erreurs ?
As-tu bien retiré le @avant le !mail ( ?
Que ça aie déjà marché au village (bonjour chez vous, N°6) ne prouve pas qu'l n'y a pas d'erreur. Tu l'essayes où, la version qui ne marche pas ?
0
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 15:51
En fait, j'ai modifié le code avec les éléments que tu m'as donné, puis envelvé le @


// On vérifie si la fonction ini_set() a été désactivée... 
$desactive = ini_get('disable_functions'); 
if (preg_match("/ini_set/i") == 0) { 
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs... 
ini_set("error_reporting" , E_ALL); 
} 

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {




Puis


					// Send the e-mail
					if (!mail($email_dest,$sujet,$sortie,$entetes)) {
					echo("Envoi du formulaire impossible");
					exit();
					} else {


Mais la réponse de ma page au moment de l'envoi de mail est Envoi du formulaire impossible

J'ai contrôlé les paramètres du serveur pourla fonction mail, et tout me parait correct...
0
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , E_ALL);
}

tu n'as pas mis le passage en commentaire. Ne laisse que ini_set("error_reporting" , E_ALL);
( d'ailleurs preg_match("/ini_set/i") est une erreur )
Tu peux aussi modifier le error_reporting = E_ALL directement dans ton fichier php.ini (il faut peut-être relancer IIS, je ne sais pas)
0
Gratfouille Messages postés 8 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 18:41
Désolé pour la coupure j'ai du m'absenter.

Je viens de faire les modifications mais sans succès.

Je vais chercher du côté de la configuration de mon serveur et attendre ton analyse niveau PHP car là je sèche.

Merci
0