Serieux problème avec ma page d'inscription

ViPHP
ViPHP | 656 Messages

21 févr. 2005, 00:51

Bonjours, jai un problème avec cette page voici les erreurs actuellement :
Notice: Undefined variable: email in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 22

Notice: Undefined variable: login in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 41

Notice: Undefined variable: emailinvalide in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 102

Notice: Undefined variable: logininvalide in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 102

Notice: Undefined variable: passwordinvalide in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 102

Notice: Undefined variable: classpseudo in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 106

Notice: Undefined variable: classmail in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 122

Notice: Undefined variable: classpassword in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 174

Notice: Undefined variable: classpassword in c:\program files\easyphp1-7\www\fonctions\Inscription.php on line 178

Je suppose que la page ne s'execute pas dans le bon ordre alors si quelqu'un pourrait m'aider a ameliorer ma page, merci bien.
<?PHP

$null = ('');
$coremail = ('<div align="center" class="signale">Veuillez entrer une adresse email valide</div>');
$corlogin = ('<div align="center\" class="signale">Ce pseudo existe d&eacute;ja</div>');
$corpassword = ('<div align="center" class="signale">Les mots de passe ne correspondent pas</div>');
$classsignale = ('class="signale"');
$classentete = ('class="entete"');


//Les champs vides
if(empty($login) OR empty($nom) OR empty($prenom) OR empty($naissance) OR empty($email) OR empty($adresse) OR empty($codep) OR empty($ville) OR empty($pays))
	{
	$reafchamps = 1;
	}else{
	$reafchamps = 0;
	}


//le mail
if (ereg(".+(@.+)(.[[:alpha:]]{2}([[:alpha:]]?))$",$email)){ 
	$reafmail = 0;
	$classmail = $classentete;
	$emailinvalide = $null;
	}else{ 
	$reafmail = 1;
	$classmail = $classsignale;
	$emailinvalide = $coremail;
	}

// le login
include ("configuration.php");
$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db);
$inpsql = "SELECT id FROM servgame_clients WHERE login='$login'";
$inpreq = mysql_query($inpsql) or die('Erreur SQL !'.$inpsql.'<br>'.mysql_error()); 
$inpres = mysql_num_rows($inpreq);
if($inpres!=0){
	$reaflogin = 0;
	$classpseudo = $classentete;
	$logininvalide = $null;
	}else{
	$reaflogin = 1;
	$classpseudo = $classsignale;
	$logininvalide = $corlogin;
	} 
	

//le password correspond pas
//pas fini 
$classpassword = $classentete;


//affichage global de la page
//pour info : reaf veu dir reaffichage de la page
if ($reaflogin == 1 OR $reafchamps == 1 OR $reafmail == 1 OR reafpass == 1){
	formulaire();
	}else{
	inscriptionok();
	}
	
	
function formulaire(){
	
if(isset($_POST['login']))      $login=$_POST['login'];
else      $login="";
if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";
if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
else      $prenom="";
if(isset($_POST['naissance']))      $naissance=$_POST['naissance'];
else      $naissance="";
if(isset($_POST['email']))      $email=$_POST['email'];
else      $email="";
if(isset($_POST['adresse']))      $adresse=$_POST['adresse'];
else      $adresse="";
if(isset($_POST['codep']))      $codep=$_POST['codep'];
else      $codep="";
if(isset($_POST['ville']))      $ville=$_POST['ville'];
else      $ville="";
if(isset($_POST['pays']))      $pays=$_POST['pays'];
else      $pays="";
if(isset($_POST['telephone']))      $telephone=$_POST['telephone'];
else      $telephone="";
if(isset($_POST['fax']))      $fax=$_POST['fax'];
else      $fax="";
if(isset($_POST['msn']))      $msn=$_POST['msn'];
else      $msn="";
if(isset($_POST['site']))      $site=$_POST['site'];
else      $site="";
if(isset($_POST['clan']))      $clan=$_POST['clan'];
else      $clan="";
if(isset($_POST['irc']))      $irc=$_POST['irc'];
else      $irc="";
if(isset($_POST['societe']))      $societe=$_POST['societe'];
else      $societe="";
if(isset($_POST['password']))      $password=$_POST['password'];
else      $password="";
if(isset($_POST['confirm']))      $confirm=$_POST['confirm'];
else      $confirm="";
echo"<div align=\"center\" class=\"entete\">Formulaire d'inscription</div><br><br>".$emailinvalide."".$logininvalide."".$passwordinvalide."<br><br>
<form method=\"POST\" action=\"/index.php?page=Membres&selec=Inscription\">
<table width=\"0\" border=\"0\">
  <tr>
    <td width=\"220\" ".$classpseudo.">Pseudo * :</td>
    <td><input type=\"text\" name=\"login\" size=\"40\" value=\"$login\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Nom * :</td>
    <td><input type=\"text\" name=\"nom\" size=\"40\" value=\"$nom\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Pr&eacute;nom * : </td>
    <td><input type=\"text\" name=\"prenom\" size=\"40\" value=\"$prenom\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Date de naissance * : (AAAA/MM/JJ)</td>
    <td><input type=\"text\" name=\"naissance\" size=\"40\" value=\"$naissance\" maxlength=\"10\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" ".$classmail.">Email * : </td>
    <td><input type=\"text\" name=\"email\" size=\"40\" value=\"$email\" maxlength=\"40\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Adresse * : </td>
    <td><input type=\"text\" name=\"adresse\" size=\"40\" value=\"$adresse\" maxlength=\"40\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Code postal * : </td>
    <td><input type=\"text\" name=\"codep\" size=\"40\" value=\"$codep\" maxlength=\"40\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Ville * : </td>
    <td><input type=\"text\" name=\"ville\" size=\"40\" value=\"$ville\" maxlength=\"20\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Pays * : </td>
    <td><input type=\"text\" name=\"pays\" size=\"40\" value=\"$pays\" maxlength=\"20\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">T&eacute;l&eacute;phone : </td>
    <td><input type=\"text\" name=\"telephone\" size=\"40\" value=\"$telephone\" maxlength=\"12\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Fax : </td>
    <td><input type=\"text\" name=\"fax\" size=\"40\" value=\"$fax\" maxlength=\"12\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">MSN : </td>
    <td><input type=\"text\" name=\"msn\" size=\"40\" value=\"$msn\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Site web : </td>
    <td><input type=\"text\" name=\"site\" size=\"40\" value=\"$site\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Clan : </td>
    <td><input type=\"text\" name=\"clan\" size=\"40\" value=\"$clan\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Irc : </td>
    <td><input type=\"text\" name=\"irc\" size=\"40\" value=\"$irc\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\" class=\"entete\">Soci&eacute;t&eacute; : </td>
    <td><input type=\"text\" name=\"societe\" size=\"40\" value=\"$societe\" maxlength=\"50\" class=\"entete\"></td>
  </tr>
  <tr>
    <td width=\"220\">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
    <tr>
    <td width=\"220\" ".$classpassword.">Mot de passe * : </td>
    <td><input type=\"password\" name=\"password\" size=\"40\" value=\"\" maxlength=\"32\" class=\"entete\"></td>
  </tr>
    <tr>
    <td width=\"220\" ".$classpassword.">Confirmer mot de passe * : </td>
    <td><input type=\"password\" name=\"confirm\" size=\"40\" value=\"\" maxlength=\"32\" class=\"entete\"></td>
  </tr>
</table><br><br>* : Champs obligatoires<br><br>
<input type=\"submit\" value=\"Envoyer\" name=\"envoyer\">
</form>";
}



function inscriptionok(){
include ("configuration.php");
$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db);
$inpsql = "INSERT INTO servgame_clients (id, login, nom , prenom, naissance, email, adresse, codep, ville, pays, telephone, fax, msn, site, clan, irc, societe, servid, password) VALUES('','$login','$nom','$prenom','$naissance','$emailv','$adresse','$codep','$ville','$pays','$telephone','$fax','$msn','$site','$clan','$irc','$societe','','".md5($password)."')";
mysql_query($inpsql) or die('Erreur SQL !'.$inpsql.'<br>'.mysql_error()); 
echo "<div align=\"center\" class=\"centre\">Votre compte a correctement &eacute;t&eacute; cr&eacute;&eacute;, vous pouvez maintenant vous connecter</div>
<script language=\"JavaScript\">
setTimeout(\"window.location='/index.php?page=Membres'\",3000);
</script>";
mysql_close();
}

?>
Modifié en dernier par Ultiny le 21 févr. 2005, 01:08, modifié 1 fois.

Eléphanteau du PHP | 14 Messages

21 févr. 2005, 01:02

En fait, tu demandes de faire des manipulations de variables, sans verifier que ces variables existent bien, c'est pour ca que ca te dit que les variables ne sont pas definis.

ce qu'il faut faire c'est divisé ton script en deux parties comme cela:
if (isset($_POST['envoyer']))
{
//ton code qui doit etre executer si le formulaire a été rempli
}
else
{
// ton formulaire car il n'a pas été rempli
}
ca enlevera déjà pas mal d'erreur

PS: bien sur dans ce cas le formulaire doit pointer vers la page actuelle et non pas une autre page de verification
Un ordinateur ne fait que ce qu'on lui dit de faire

ViPHP
ViPHP | 656 Messages

21 févr. 2005, 01:06

Oui ça se serait juste pour la partie de verification si le formulaire comporte des champs obligatoires encors vide. Mais la en fait, j'ai definis toutes les variables mais il n'a pas l'air, en executant la page de retrouver a quoi correspond ces variables. J'ai pensé que ça venait du fait de faire des fonctions.

Quelqu'un pourrait t'il verrifier mon equation booléenne svp (c'est la ligne de gestion d'affichage global de la page).

Merci encors

/* EDIT : j'ai donc enlevé de la fonction la partie formulaire et ça marche, effectivement ton code me sera fort utile car la, des le premier affichage il me montre que le mail ne va pas, ...etc

Merci beaucoup pour ce bout de code que j'aurais eu du mal a trouver (peu de mot clé pour google)
*/

Invité
Invité n'ayant pas de compte PHPfrance

21 févr. 2005, 02:03

salut,

pour :

. email (ligne 22) et login (ligne 42)
-> ces variables n'ont aucunes valeur (comme tu utilise des $_POST elles ne peuvent pas provenir d'un formulaire).

. toutes tes autres variables
-> c'est en effet à cause de l'utilisation de fonction. tu appel dans une fonction une variable que tu as défini en dehors de ta fonction. php veut pas!

voila ce qu'il préfère :

global $var;
$var="toto";

$autre = fonction();

function fonction()
{
    global $var;

    return $var;
}

cette fois $autre aura la valeur "toto".

thierry

ViPHP
ViPHP | 656 Messages

21 févr. 2005, 19:30

C'est bon, j'ai reussi à me debrouillé finalement au bout de 6 heures de travail et je suis satisfait du resultat