Parse error:

Fermé
yobo - 18 sept. 2009 à 17:40
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 - 18 sept. 2009 à 18:35
Bonjour,Je vient de débuter la création d'un site et a la parti inscription on m'affiche

Parse error: parse error in D:\wamp\www\tests\projet 1\inscriptionok.php on line 100
et mon code est :
<?php
//début de la session
session_start();


//connection a mysql
mysql_connect('localhost','root','');
mysql_select_db('espace_membre');


//déclaration des variables
// la varible $i est le nombre d'érreur
@$i = '';
@$nom = mysql_real_escape_string($_POST['nom']);
@$prenom = mysql_real_escape_string($_POST['prenom']);
@$pseudo = mysql_real_escape_string($_POST['pseudo']);
@$motdepasse = mysql_real_escape_string($_POST['motdepasse']);
@$ville = mysql_real_escape_string($_POST['ville']);
@$email = mysql_real_escape_string($_POST['email']);
@$datedenaissance = $_POST['jour']/$_POST['mois']/$_POST['anné'];
@$sexe = $_POST['sexe'];
@$activite = $_POST['activite'];
@$confirmmotdepasse = $_POST['confirmmotdepasse'];


//verification si les champs sont remplis
if (!empty($_POST['pseudo']) and !empty($_POST['prenom']) and !empty($_POST['reglegeneral'])
 and !empty($_POST['email']) and !empty($_POST['motdepasse']) and !empty($_POST['confirmmotdepasse'])
     and !empty($_POST['nom']) and !empty($_POST['sexe']) );

     {


//si les champs sont remplis voici les érreur possible     
     
     
     
         
//le mot de passe et la confirmation ne sont pa identique     
     if ( $motdepasse != $confirmmotdepasse)
     {
        echo "les deux mot de passe ne sont pas identique ou vide<br/>"; 
        $i++;
     }
     
     
     
     
//le pseudo est déja utilisé   
     $nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM membres WHERE pseudo = "'.$pseudo.'"'), 0);
     
     if($nombrepseudo != 0)
     {
     
        echo "Votre pseudo est déjà utilisé par un membre<br/>";
        $i++;
     
     }
     
     
     
     
//le pseudo é ou trop grand ou trop petit    
     if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
     {
       echo "Votre pseudo est soit trop grand, soit trop petit<br/>";
        $i++;
     }
     
     
     
//l'adress mail est déja utilisé     
     $nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM membres WHERE e-mail = "'.$email.'"'), 0);
     
     if ($nombremail != 0)
     {
     
         echo "votre adresse e-mail est déja utilisé<br/>";
         $i++;
     
     }
     
     
     
     
//le format de l'adress mail
     if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
     {
     
       echo"le format de votre adress e-mail n\'est pas valide<br/>";
       $i++;
         
     }
     
	 }
     
     
     
     
else 
	{ 
       echo"Vous avez '".$i."' erreur<br/>";
	   echo"veuillez remplire tous les champs<br/>";
	   echo"appuiez <a href=\"inscription.php\">ici<a> pour revenir a la page d\'inscription<br/>";
    }
	 
	 
	 
	 //On balance le tout dans notre table
        mysql_query('
        INSERT INTO membres (id, nom, prenom, pseudo, motdepasse, email,             
        datenaissance, sexe, ville, activite, niveaux)
        VALUES ("","'.$nom.'","'.$prenom.'","'.$pseudo.'" , "'.$motdepasse.'" , "'.$email.'" ,
        "'.$datedenaissance.'" , "'.$sexe.'" ,"'.$ville.'", "'.$activite.'" ) ') or die(mysql_error());
	 
	 
	 
	 
	 
	 
	 //Et on définit les variables de sessions
        $_SESSION['pseudo'] = $pseudo;
        $_SESSION['id'] = mysql_insert_id();
        $_SESSION['niveaux'] = 2;
?>
<html>
<head><title>inscription 2/2</title></head>
<body>
<?php
if ( $i = 0; )
   {
   echo "<p>felicitation vous éte bien inscrit sur le site</p>";
   echo "<p>pour revenir a la page d'acceuil appuier <a href=\"index.php\">ici</a></p>";
   }
?>


</body>
</html>


et merci

5 réponses

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
18 sept. 2009 à 18:35
C'est à cause du nom de champs. Le signe - est réservé aux opérations normalement. Donc soit tu le remplace par _ soit tu entoure e-mail par ` (alt Gr + 7)

$sql = mysql_query('SELECT COUNT(*) FROM test WHERE `test-nom` = "test"');
echo mysql_result($sql, 0);

C'est le petit test que j'ai fait.
A oui, un autre truc. De toute façon, ton script ne fonctionneras pas correctement.
Comme tu l'as mis, tes vérification ne servent à rien, une nouvelle entrée sera quand même créée même si les mot de passe ne correspondent pas ou que le login est déjà utilisé.
Voila un peu la marche à suivre :
<?php
	if (verification du remplissage des champs) {
		$sqlLogin = mysql_query('SELECT COUNT(*) FROM test WHERE `test-nom` = "test"');
		$verifLogin = mysql_result($sqlLogin, 0);
		$sqlEmail = mysql_query('SELECT COUNT(*) FROM test WHERE `test-nom` = "test"');
		$verifEmail = mysql_result($sqlEmail, 0);
		if ($verif != 0) {
			erreur
		}
		elseif ( verification de la différence des mdp) {
			erreur
		}
		elseif (longueur pseudo) {
			erreur
		}
		elseif ($verifEmail != 0) {
			erreur
		}
		elseif (validation du mail) {
			erreur
		}
		else {
			Insertion dans la BDD
		}
		
	}	
?>


Après, je pense qu'on s'en fout un peu du nombre d'erreur, et à toi de remplacer les termes que j'ai mis par les tiens.
1
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
18 sept. 2009 à 17:49
Salut, déjà pour commencer, enlève le ";" à la ligne 29.
En gros, ta ligne donne ca :
if (......); {

}
au lieu de :
if(.......) {

}
La ligne 100 correspond justement à la fermeture du IF en question.
0
merci pour votre réponce ça marche maintenant
0
et maintenant on m'affiche
Warning: mysql_result() expects parameter 1 to be resource, boolean given in D:\wamp\www\tests\projet 1\inscriptionok.php on line 73
Column count doesn't match value count at row 1
0

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

Posez votre question
benvii Messages postés 308 Date d'inscription dimanche 8 juin 2008 Statut Membre Dernière intervention 28 octobre 2010 137
18 sept. 2009 à 18:31
Remplaces cette ligne :
$nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM membres WHERE e-mail = "'.$email.'"'), 0);

Par ceci :
$req=mysql_query('SELECT COUNT(*) AS nb FROM membres WHERE e-mail = "'.$email.'"');
$nombremail = $req['nb'];

C'est comme cela que je fais.
0