8797 sujets

Développement web côté serveur, CMS

bonjour,
passé recemment sous easy php 1.8 j'ai eu des soucis avec les sessions
et variables pas definies. J'ai reglé une partie des soucis mais maintenant les variables ne se memorise plus
voila le code ma page formu.php

<?php
//la page formulaire va permettre de recolter les infos de l'internaute on utilise des variables de session, 
// on doit donc commencer la page par un session_start() pour ouvrir/continuer une session

//include ('librairie/lib.error.reporting.php');  on charge la page lib.error.reporting.php qui gere l'affichage des erreurs

// si dans la l'url la variable raz est à yes, alors on désenregistre et on détruit les différentes

	if(((!empty($_GET['raz']) and $_GET['raz']=='yes') and (!empty($_POST["civilite"])and ($_POST["nom"]) and ($_POST["prenom"]) 
	and ($_POST["email"]) and ($_POST["commentaire"]))))
		{
		session_destroy();
		}
?>
<html>
<head>
<title>Formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center"> 
  <div align="right">
<div align="left">
      <table width="92%" border="0">
        <tr>
          <td>&nbsp;</td>
          <td height="179"> 
            <div align="left">
              <p><font size="2"></font></p>
              </div>
            <p align="left"><font size="2"> ></p>
            <p align="left"><font size="2">font></p>
            </td>
          <td><font color="#336600" size="+3" face="Times New Roman, Times, serif"><span class="lien1">Demande  de renseignement</span></font></td>
        </tr>
        <tr> 
          <td width="4%">&nbsp;</td>
          <td width="40%" height="21"> 
            <div align="left"></div>
            </td>
          <td width="56%"><div align="left"><font color="#FF3300" size="3" face="Times New Roman, Times, serif">
              <?php 
			// GESTION DES ERREURS
			
			if (!empty($_GET['erreur']) and $_GET['erreur']=='civilite')
			{echo'<p><font color="#FF0000"><strong>Vous avez oublié de renseigner le champ CIVILITE.</strong></font></p>';}
			
			if (!empty($_GET['erreur']) and $_GET['erreur']=='nom')
			{echo'<p><font color="#FF0000"><strong>Vous avez oublié de renseigner le champ NOM.</strong></font></p>';}
			
			if (!empty($_GET['erreur']) and $_GET['erreur']=='prenom')
			{echo'<p><font color="#FF0000"><strong>Vous avez oublié de renseigner le champ PRENOM.</strong></font></p>';}
			if (!empty($_GET['erreur']) and $_GET['erreur']=='email')
			{echo'<p><font color="#FF0000"><strong>Vous avez oublié de renseigner le champ E-MAIL.</strong></font></p>';}
			
			if (!empty($_GET['erreur']) and $_GET['erreur']=='commentaire') 
			{echo'<p><font color="#FF0000"><strong>Vous avez oublié de renseigner le champ COMMENTAIRE.</strong></font></p>';}
			?>
              </font></div></td>
        </tr>
      </table>
      
    </div>
  </div>
  <form name="form_vs" method="post" action="pages/email/mail.php">
    <table width="80%" border="0" cellspacing="3" cellpadding="0">
      <tr>
        <td width="20%">&nbsp;</td>
        <td width="20%"><span class="lien3"><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>* 
          </strong></font><strong><font color="#FF3300">Civilit&eacute;</font></strong></span><strong><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;</font><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          </font></strong></td>
        <td width="80%"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input type="radio" name="civilite" value="Madame" <?php if(!empty($_POST["civilite"]) and ($_POST["civilite"]=='Madame')) echo'checked'; ?>> 
          <span class="lien2">Madame</span> <input type="radio" name="civilite" value="Mademoiselle" <?php if (!empty($_POST["civilite"]) and ($_POST["civilite"]=='Mademoiselle')) echo'checked'; ?>> 
          <span class="lien2">Mademoiselle </span> <input type="radio" name="civilite" value="Monsieur" <?php if(!empty($_POST["civilite"]) and ($_POST["civilite"]=='Monsieur')) echo'checked'; ?>> 
          <span class="lien2">Monsieur</span></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><span class="lien3"><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>*</strong></font><strong><font color="#FF3300"> 
          Nom</font></strong></span></td>
        <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input name="nom" type="text" id="nom" value="<?php if(!empty($_POST["nom"])) echo($_POST["nom"]); ?>">
          </font></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><span class="lien3"><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>* 
          </strong></font><strong><font color="#FF3300">Pr&eacute;nom</font></strong></span></td>
        <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input name="prenom" type="text" id="prenom" value="<?php if(!empty($_POST["prenom"])) echo($_POST["prenom"]); ?>">
          </font></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><span class="lien3"><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>*</strong></font><strong><font color="#FF3300"> 
          E-mail</font></strong></span></td>
        <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input name="email" type="text" size="35" value="<?php if(!empty($email)) echo($email); ?>">
          </font></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><span class="lien3"><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>*</strong></font><strong><font color="#FF3300"> 
          Commentaire</font></strong></span></td>
        <td valign="middle"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <textarea name="commentaire" cols="55"><?php if(!empty($commentaire)) echo($commentaire); ?></textarea>
          </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp; 
          </font></td>
      </tr>
    </table>
    <table width="75%" border="0">
      <tr> 
        <td></td>
        <td></td>
      </tr>
    </table>
    <table width="80%" border="0">
      <tr> 
        <td width="54%" height="45"><span class="lien3"><font color="#FF3300" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>* 
          </strong></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">:<font color="#FF3300"> 
          <em><strong>champ obligatoire</strong></em></font></font></td>
        <td width="46%"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
          <input name="Submit" type="submit" id="Submit" value="Envoyer">
          </font></td>
      </tr>
    </table>
  </form>
</div>
</body>
</html>


cette page appele la page mail.php qui verifie les erreurs

<?php //session_start();
// c'est une page de verif si tous les champs sont bon on passe a l'etape suivante sinon ca génére des erreurs definis dans la page contactss

	// on teste si les champs obligatoires son vides ou pas
	// si oui alors on indique l'erreur, sinon on concatene les infos dans la variable $infos
	// puis avec la fonction mail on envoie le courier
	if(empty($_POST["civilite"]))
		{ 
		// si le champ civilite est vide, alors on redirige l'internaute vers la page formulaire.php
		// en mettant la variable $erreur à la valeur civilite qui fera afficher un message disant que le champ civilite est vide
		echo '<meta http-equiv="refresh" content="0;URL=../../?page=contact&erreur=civilite">';
		exit; //Termine le script  
    	} 
	else 
		{
		if(empty($_POST["nom"]))
			{ 
			echo '<meta http-equiv="refresh" content="0;URL=../../?page=contact&erreur=nom">';
			exit; 
    		} 
		else 
			{
			if(empty($_POST["prenom"]))
				{ 
				echo '<meta http-equiv="refresh" content="0;URL=../../?page=contact&erreur=prenom">';
				exit; 
    			} 
			else 
				{
				if(empty($_POST["email"]))
					{ 
					echo '<meta http-equiv="refresh" content="0;URL=../../?page=contact&erreur=email">';
					exit; 
   					} 
				else 
					{
					if(empty($_POST["commentaire"]))
						{ 
						echo '<meta http-equiv="refresh" content="0;URL=../../?page=contact&erreur=commentaire">';
						exit; 
   						} 
					else
						{ 
						// tous les tests ont été concluants on affiche les données entrées sur la page afficher.php
						echo '<meta http-equiv="refresh" content="0;URL=../../?page=afficher">';
						exit; 
   						} 
					}
				}
			}
		}
?>



si tout est bon il doit m'afficher les infos rentrées par l'internaute

<?php //session_start();
// dans la page afficher.php, qui va permettre a l'internaute de verifier les données entrées, on utilise des variables de session, on doit donc commencer la page par un
// session_start() pour ouvrir/continuer une session

//include ('librairie/lib.error.reporting.php');  on charge la page lib.error.reporting.php qui gere l'affichage des erreurs
?>
<html>
<head>
<title>Verification des informations</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div align="center">
  <p>&nbsp;</p>
  <table width="93%" border="0">
    <tr> 
      <td width="4%">&nbsp;</td>
      <td width="28%" height="200">
<div align="left"> 
          <p><font size="2"></font></p>
          </div>
        <p align="left"><font size="2">font></p>
        <p align="left"><font size="2">font></p>
        </td>
      <td width="68%"><font color="#336600" size="+3" face="Times New Roman, Times, serif"><span class="lien1">Vous 
        avez entr&eacute; les renseignements suivants :</span></font></td>
    </tr>
  </table>
  <table width="650" border="0" cellspacing="3" cellpadding="0">
    <!--DWLayoutTable-->
    <tr> 
      <td width="165" rowspan="7"><div align="left"> 
          <p>&nbsp;</p>
        </div>
        <p align="left"><font size="2"></font></p></td>
      <td width="143"><span class="lien3"><strong><font color="#FF3300">CIVILITE 
        : </font></strong></span></td>
      <td width="330"><span class="lien2"><?php if(!empty($_POST["civilite"])) echo($_POST["civilite"]); ?></span></tr>
    <tr> 
      <td><span class="lien3"><font color="#FF3300"><strong>NOM :</strong></font></span></td>
      <td><span class="lien2"><?php if(!empty($_POST["nom"])) echo($_POST["nom"]); ?></span></td>
    </tr>
    <tr> 
      <td><span class="lien3"><strong><font color="#FF3300">PRENOM : </font></strong></span></td>
      <td><span class="lien2"><?php if(!empty($_POST["prenom"])) echo($_POST["prenom"]); ?></span></td>
    </tr>
    <tr> 
      <td><span class="lien3"><font color="#FF3300"><strong>E-MAIL :</strong></font></span></td>
      <td><span class="lien2"> 
        <?php  if(!empty($_POST["email"])) echo($_POST["email"]); ?>
        </span></td>
    </tr>
    <tr> 
      <td height="34"><span class="lien3"><font color="#FF3300"><strong>COMMENTAIRE 
        : </strong> </font></span></td>
      <td><span class="lien2"> 
        <?php if(!empty($_POST["commentaire"])) echo($_POST["commentaire"]); ?>
        </span></td>
    </tr>
    <tr> 
      <td><!--DWLayoutEmptyCell-->&nbsp;</td>
      <td>&nbsp; </td>
    </tr>
    <tr> 
      <td height="24" valign="top"> <form name="form1" method="post" action="?page=contact">
          <div align="center"> 
            <input type="submit" name="Submit" value="Modifier">
            &nbsp; </div>
        </form></td>
      <td height="24" valign="top"><form name="form2" method="post" action="?page=envoi">
          <input type="submit" name="Submit2" value="Envoyer">
        </form></td>
  </table>
  </div>
</body>
</html>



voila les erreurs sont apparemment bien gerees mais les variables ne sont plus enregistres
j'ai enleve les sessions_start sur les pages car sinon il me dit session_start already open

quelqu'un aurait il une idée
d'avance merci
Modifié par sand (03 Mar 2008 - 10:30)