Trouve pas l'erreur :( unexpecting $

[Résolu]
Signaler
Messages postés
87
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2005
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour, j'ai fait un formulaire et ici la page pour enregistrer le membre et j'ai un problème, il me met comme erreur Parse error: parse error, unexpected $ in /home.2/rox5/www/membres/inscription2.php on line 71

et je vois vraiment pas ou est l'erreur après 2 heures de recherche :( si vous sauriez m'aider ce serais vraiment super !! (j'ai verif tout les { } et rien :()

<?php
if($_POST["btn_inscription"] == 'newuser'){
include('../config.inc.php');


/***** Récupération *****/
$login = htmlspecialchars($_POST[login]);
$email = $_POST[email]; if(!ereg([mailto:'@',$email)||!ereg('.',$email)){$error='email' '@',$email)||!ereg('.',$email)){$error='email'];}
if(ereg('&amp;',$prenom)||ereg('&quot;',$prenom)){$error='contentprenom'; str_replace('&amp;','&',$prenom); str_replace('&quot;','"',$prenom);}
$nom = htmlspecialchars($_POST[nom]);
$sexe = $_POST[sexe]; if($sexe=='f'){ $sub_sexe='e'; }
if(!ereg('http://',$_POST[url])){ $url='http://'.$_POST[url]; }elseif($_POST[url] == 'http://'){$url=''; }
else{$url = $_POST[url] ;}
$pseudo_irc = htmlspecialchars($_POST[pseudo_irc]);
$jour = $_POST["jour"];
$mois = $_POST["mois"];
$annee = $_POST["annee"];
$validkey = random(20);
$statut = 'membre';
$date_inscr = date("d/m/Y");
$view_profil = 'oui';
$region = htmlspecialchars($_POST[region]);
$loisirs = $_POST["loisirs"];
$description = $_POST["description"];
/***** Fin Récupération *****/


/***** Erreurs *****/
if(empty($login) || empty($_POST[password]) || empty($prenom) || empty($nom)|| empty($sexe)){
$error = 'empty';
if(empty($login)){$empty='login';}
if(empty($_POST[password])){$empty='pass';}
if(empty($prenom)){$empty='prenom';}
if(empty($nom)){$empty='nom';}
if(empty($sexe)){$empty='sexe';}
}
if($_POST[password] != $_POST[confirm_password]){$error='pass'; }else{ $pass = md5($_POST[password]);} $a= $login; $b=$_POST[password];
if($_POST[securepass_verif] != $securepass){$error='securepass'; }
$templogin=ereg_replace('[a-zA-Z0-9]+','',str_replace('-','',str_replace('_','',str_replace('.','',strtolower($login)))));
if(!$templogin){}else{$error = 'content';}


if(strlen($login) < 3){$error = 'logintooshort';}
if(mysql_num_rows(mysql_query("SELECT id from membres WHERE login = '$login'"))){ $error='loginexist'; }
/***** Fin Erreurs *****/


/***** Insertion MySQL + Mail *****/
if(!$error){
while(!mysql_query("INSERT INTO membres (id,prenom,nom,login,password,email,email_orig,pseudo_irc,date_inscription,sexe,statut,valid,validkey,jour,mois,annee,url,view_profil,region,loisirs,description) values('','$prenom','$nom','$login','$password','$email','$pseudo_irc','$date_inscr','$sexe','$statut','$valid','$validkey','$jour','$mois','$annee','$url','$view_profil','$region','$loisirs','$description')")){if($etat !'ok'){ $newid mysql_insert_id();


$message = 'Bonjour '.ucfirst($prenom).',

Tu t\'es inscrit'.$sub_sexe.' sur notre site.br>

Voici un petit récapitulatif de ton compte pour pouvoir t\'identifier:

Ton login : '.$login.'
Ton pass: '.$_POST[password].'

';
$adds = "From: Webmaster <[mailto:webmaster@test.be>\r\n webmaster@test.be>\r\n]"; $adds.="Content-Type: text/html; charset=us-ascii\r\n";
mail($prenom.' '.$nom.' <'.$email.'>','Merci de confirmer ton inscription: '.$login,$message,$adds);

}else/*$error*/{header('location: inscription.php'); mysql_close(); }
/***** Fin Insertion MySQL + Mail *****/
?>

Merci a tous !!!

A bientot

RoX

26 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Question a deux balles :

$validkey = random(20);



random() est une fonction que tu as ecrite ? Parce que sinon, elle n'existe pas en php. Il y a rand, srand, mt_rtand...

Pour tes tableaux associatifs, parfois tu mets des guillemets, parfois non, pour la clef. Il faut toujours en mettre.

Sinon, en examinant ligne a ligne :



if(!$error){
while(!mysql_query("INSERT
INTO membres
(id,prenom,nom,login,password,email,email_orig,pseudo_irc,date_inscription,sexe,statut,valid,validkey,jour,mois,annee,url,view_profil,region,loisirs,description)
values('','$prenom','$nom','$login','$password','$email','$pseudo_irc','$date_inscr','$sexe','$statut','$valid','$validkey','$jour','$mois','$annee','$url','$view_profil','$region','$loisirs','$description')")){if($etat !'ok'){ $newid mysql_insert_id();
$message = 'Bonjour '.ucfirst($prenom).',

Tu t\'es inscrit'.$sub_sexe.' sur notre site.br>

Voici un petit récapitulatif de ton compte pour pouvoir t\'identifier:

Ton login : '.$login.'
Ton pass: '.$_POST[password].'

';
$adds = "From: Webmaster <[mailto:webmaster@test.be%3E%5Cr%5Cn webmaster@test.be>\r\n]"; $adds.="Content-Type: text/html; charset=us-ascii\r\n";
mail($prenom.' '.$nom.' <'.$email.'>','Merci de confirmer ton inscription: '.$login,$message,$adds);

}else/*$error*/{header('location: inscription.php'); mysql_close(); }
/***** Fin Insertion MySQL + Mail *****/
?>


C'est faux. 2 ou 3 accolades ne sont pas fermees. 3 je pense, parce que
je ne vois pas la fermeture de l'accolade du debut de ton script.

et sur la fin, tu fermes le else uniquement, alors que tu ouvres : un
if, un while, et encore un if. Au final, seul le dernier if et ton else
sont fermes. Ni le 1er if, ni le while, ni,

apparemment, ton tout premier if en debut de script.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Que tu essayes d'inserer trop de valeurs par rapport au nombre de champs disponibles dans ta table.
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Bonjour ,
peut tu me dire s'il n'y que ce code dans la page membre?
Merci


<HR SIZE=2>

Si ma réponse te plaît merci de l'accepter
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Bonjour ,
peux tu nous donner Toute le code de ta page (y compris le html) oualors nous indiquer ou se trouve l'erreur


<HR SIZE=2>

Si ma réponse te plaît merci de l'accepter
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,



ouais c'est illisible, montre les quelques lignes avant et apres la ligne 71.

Tu n'indentes jamais tes codes...? lol? Comment tu fais pour t'y retrouver la-dedans ! :-(
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



pense ensuite à utiliser isset :





<?php
if(isset($_POST['btn_inscription']) AND $_POST['btn_inscription'] === 'newuser')

{
include '../config.inc.php';





j'ai pas regardé le reste, c'est trop long mdr
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
et a ne pas utiliser la balise font...lol.

etc...
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Matinal Antho :-) Bonjour!
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
Salut,

$_POST[password] c'est pas bon tu dois mettres $_POST['password']

@+

Immortal-PC,
téléchargements,astuces ,entre-aide informatique , conseils pour vos problèmes d'ordi.
<!--StartFragment -->Grâce à Immortal-PC votre ordinateur passera les âges.
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Bonjour ,
mais moi je préfère mettre $_POST["password"] au lieu de $_POST['password'],
Mais je me demande quel avantage l'un par rapport à l'autre?


<HR SIZE=2>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Rapidité et propreté



salut malalam :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Bonjour ,
Quelle version, avec quillemets ou l'autre?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
avec apostrophes.
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
oki
merci
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Et c'est valable pour tout, pas que pour les noms de variables contenues dans un tableau... Genre pour les echo, etc...



Consulte ce lien : Optimiser PHP

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
87
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2005

Hum lol que yai les '' ou pas sa change rien ^^, la fonction random ouii c'est une fonction à moi :)) et hum y a pas de html avant parce que c une page avant :))

Je doit donner kwa ?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Perso j'ai pas parle de html.

Si c'est la ta page complete, comme je te l'ai dit, il te manque des accolades fermantes. Et pas qu'un peu.

Et les tableaux...chez moi, ca change. Un tableau ecrit de cette maniere me donne une erreur.
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Bonjour ,
oui mais c'est moi qui ai parlé de html avant car je voulais savoir quelle ligne lui générait un erreur!!!
Messages postés
87
Date d'inscription
lundi 4 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2005

Hum voilà lol j'ai refait tout le code, mais toujours une erreur

il me met cette erreur et jvois pas d'ou sa vien :S:

Parse error: parse error, unexpected T_VARIABLE in /home.2/rox/www/membres/inscription2.php on line 50

47 if(empty($_GET["error"])){
48 mysql_query("INSERT INTO membres (id,prenom,nom,login,password,email,email_orig,pseudo_irc,date_inscription,sexe,statut,valid,validkey,jour,mois,annee,url,view_profil,region,loisirs,description) values ('','$prenom','$nom','$login','$password','$email','$pseudo_irc','$date_inscr','$sexe','$statut','$valid','$validkey','$jour','$mois','$annee','$url','$view_profil','$region','$loisirs','$description')")


49
50 $message = 'Bonjour '.ucfirst($prenom).',

51 Tu t\'es inscrit'.$sub_sexe.' sur notre site.

... Si vous sauriez m'aider ou du moin me traduire le message d'erreur mdr :D

A++ encore merci à touss

RoX
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
T'as oublie un ; a la fin de la ligne 49.

Parse error veut dire une erreur de parsing. Que la syntaxe est
mauvaise, donc l'interpreteur php n'arrive pas a parser ton code, et il
indique ou il bute.

generalement l'erreur se trouve a la ligne du dessus.