Parse error

Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008
- 11 mai 2006 à 21:19
 ok02 - 3 nov. 2012 à 00:51
Voilà, je vous donne ma source. J'ai apparament un problème de programmation !!!

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr-fr">
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Validation</title>
</head>

&nbsp; Validation,

----

<?php $base = mysql_connect ('xxxxxxx', 'xxxxxxxx', 'xxxxxx'); mysql_select_db ('xxxxxxxx', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['$login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['$login']).'", "'.md5(addslashes($_POST['$pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
?>Le
compte de ce membre a &eacute;t&eacute; valid&eacute;. Il
pourra maintenant se connecter !!!

</html>

Cette page est une page de confirmation, j'y arrive grâce à un lien fournit dans un mail de confirmation. Il a la forme suivante : .../validation.php?login=xxxxxxx&pass=xxxxxx
Je voudrai que le script PHP récupère les données situé à la place des xxxxxx pour login et pass pour qu'il insère ces informations dans ma base de données Mysql.

P.S. : Si je ne suis pas assez clair, dites le moi je préciserai !!!

Quand je trouve pas ça m'énerve !!!

20 réponses

Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

11 mai 2006 à 21:23
Oups, j'oubliais !!!

Lorsque je clique sur le lien de validation, il m'affiche ceci : Parse error: parse error, unexpected $ in /.../validation.php on line 48

Quand je trouve pas ça m'énerve !!!
0
ImmortalPC
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
11 mai 2006 à 22:16
Salut,
regarde cette ligne :
if ($data[0] == 0) {

Tu ouvres mais tu ne fermes pas lol

@+

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.
0
sidf
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
12 mai 2006 à 09:04
salut

addslashes($_POST['login'])
0
sidf
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
12 mai 2006 à 09:05
et
addslashes($_POST['pass'])
0

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

Posez votre question
ImmortalPC
Messages postés
954
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
11 novembre 2008
2
12 mai 2006 à 10:23
Ah oui j' avais pas fait gaf au variables $_POST ^^

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.
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

12 mai 2006 à 18:27
Voilà ce qu'il me dit à présent : Erreur SQL !INSERT INTO membre VALUES("", "", "d41d8cd98f00b204e9800998ecf8427e")
Column count doesn't match value count at row 1

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr-fr">
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Validation</title>
</head>

&nbsp; Validation,

----

<?php $base = mysql_connect ('xxxxxxx', 'xxxxxxxx', 'xxxxxx'); mysql_select_db ('xxxxxxxx', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
}
?>Le
compte de ce membre a &eacute;t&eacute; valid&eacute;. Il
pourra maintenant se connecter !!!

</html>

J'ai aussi un autre problème
Quand je trouve pas ça m'énerve !!!
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

12 mai 2006 à 18:30
Petite erreur de mise en page. La source corrigé commence à partir de <!DOCTYPE html PUBLIC "-//W3C [...]
Et le message d'erreur fini donc là : [...] count at row 1

Quand je trouve pas ça m'énerve !!!
0
sidf
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
12 mai 2006 à 20:29
salut,



tu es sur de n'avoir que trois champs dans ta table membre ??
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

12 mai 2006 à 20:57
Merci, j'avais effectivement créé un 4ème champs dans ma table "membre" (pour un autre projet d'inscription) et après l'avoir supprimé, j'ai enfin réussi à rentrer le membre dans la base !!!

Quand je trouve pas ça m'énerve !!!
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

12 mai 2006 à 21:04
J'ai une autre question, si mon membre que je valide est déjà inscrit (pseudo et mot de passe déjà utilisé) qu'est ce que ce script va faire, et si il ne me répond rien, comment pourrai-je faier pour qu'il me donne une réponse (validé ou non validé) suivant si le pseudo et mot de passe existe déjà ???

Quand je trouve pas ça m'énerve !!!
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

12 mai 2006 à 21:18
Après quelque vérification, je me suis aperçu que le script n'entrait aucune information dans la base de donné Mysql. Je sais que cela viens du script, mais je ne sais pas quoi rajouter pour que le script prenne les informations situé dans le lien en login= et pass= pour les mettrent dans la base ???

Quand je trouve pas ça m'énerve !!!
0
sidf
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
13 mai 2006 à 11:21
if (!$data) {

$sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';

...

}
0
sidf
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
13 mai 2006 à 11:59
$log= addslashes($_POST['login']);

$pwd=md5(addslashes($_POST['pass']));



if (!$data)

{

$sql = "INSERT INTO membre VALUES(NULL,'$login','$pwd')";

...

}

else

{

echo "Login et password déjà utilisés";

...

}
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

13 mai 2006 à 12:47
Excuse moi sidf, mais je suis débutant en php et je n'ai pas bien compris ce que tu voulais que je fasse de ta réponse !!!
Pourrais-tu stp récrire la partie PHP si ce n'est pas trop demandé !!!! Merci !!!

Quand je trouve pas ça m'énerve !!!
0
sidf
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
13 mai 2006 à 13:38
réécrire tout le code ? peut etre pas, mais là



...



$log= addslashes($_POST['login']);

$pwd=md5(addslashes($_POST['pass']));



$sql = "SELECT * FROM membre WHERE login='$login' and pass='$pwd' ";

//(en admettant que 'pass' est le nom du champ de la bd)



$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

$nb = mysql_num_rows($req);

if ($nb === 0) {

$sql ="INSERT INTO membre VALUES(NULL,'$login','$pwd')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

}

else // si login existe

{

...

}

...
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

13 mai 2006 à 18:27
Donc, si je prend en compte tes remarque je devrai avoir ça :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr-fr">
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Validation</title>
</head>

&nbsp; Validation,

----

<?php $base = mysql_connect ('xxxxxxx', 'xxxxxxxx', 'xxxxxx'); mysql_select_db ('xxxxxxxx', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$log=addslashes($_POST['login']);$pwd=md5(addslashes($_POST['pass_md5']));
$sql = "SELECT * FROM membre WHERE login='$login' and pass_md5='$pwd' ";
//(en admettant que 'pass_md5' est le nom du champ de la bd)
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb === 0) {
$sql ="INSERT INTO membre VALUES(NULL,'$login','$pwd')"; mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
}
else // si login existe
{ Le pseudo est déjà utilisé, veuillez en choisir un autre !!!
}
?>
Le
compte de ce membre a &eacute;t&eacute; valid&eacute;. Il
pourra maintenant se connecter !!!

</html>

Mais, j'ai une question sur ta réponse, le $pwd indique le nom du champ concerné ou bien c'est une fonction ???
Je te rappelle au passage que ce script doit utiliser les données d'un lien écrit sous cette forme : .../validation.php?login=$login&pass=$pass

Quand je trouve pas ça m'énerve !!!
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

13 mai 2006 à 18:29
Et si je me suis trompé, pourrait-tu me récrire la partie en php, mais avec les correction. (je suis vraiment nul)
Voici la partie PHP:
;"><?php $base = mysql_connect ('xxxxxxx', 'xxxxxxxx', 'xxxxxx'); mysql_select_db ('xxxxxxxx', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$log=addslashes($_POST['login']);$pwd=md5(addslashes($_POST['pass_md5']));
$sql = "SELECT * FROM membre WHERE login='$login' and pass_md5='$pwd' ";
//(en admettant que 'pass_md5' est le nom du champ de la bd)
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$nb = mysql_num_rows($req);
if ($nb === 0) {
$sql ="INSERT INTO membre VALUES(NULL,'$login','$pwd')"; mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
}
else // si login existe
{ Le pseudo est déjà utilisé, veuillez en choisir un autre !!!
}
?>

Quand je trouve pas ça m'énerve !!!
0
Bartheleway
Messages postés
76
Date d'inscription
mardi 9 mai 2006
Statut
Membre
Dernière intervention
12 mai 2008

14 mai 2006 à 14:32
Bon, après de multiple tentative, je ne trouve pas la solution. J'ai un message d'erreur T_VARIABLE sur la ligne 29.

Ma partie php : (en rouge la ligne 29)

<?php if (isset($_GET['login']) and isset($_GET['pass'])) { $recherche_login=$_GET['login']
$recherche_pass=$_GET['pass'];
$base = mysql_connect ('xxxxxxx', 'xxxxxxx', 'xxxxxxxxx'); mysql_select_db ('xxxxxx', $base);// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
}
else // si login existe
{$erreur="Le pseudo choisi est déjà utilisé !!!"}
?>

J'arrive sur cette page par le lien suivant : [...]/validation.php?login=$login&pass=$pass
Les informations $login et $pass sont dans le lien grâce à la fonction GET !!!

Où est donc l'erreur sur la ligne 29 ???

Quand je trouve pas ça m'énerve !!!
0
amen
0
Bonjour chers amis, j'ai quelques soucis avec mes scripts: En fait à la validation de l'inscription, j'ai le parse erreur:Parse error : syntax error, unexpected $ end dans xxxxxxxxxxxxxx sur la ligne 212. Je manque biensûr quelque chose( accolade ou un point virgule, ..)mais je n'arrive pas à le déceler. Si vous pouvez faire quelque chose. Merci d'avance!

<?

// On créé la variable de session à partir du cookie pour ne pas avoir à vérifier 2 fois sur les pages qu'un membre est connecté


if (isset ($_COOKIE['pseudo']) && empty($id))
{
$_SESSION['pseudo'] = $_COOKIE['pseudo'];
}
if(isset($_SESSION['membre_id']))
{
$_SESSION['erreurs'] = 0;
exit();
}

if ($id!=0) erreur(ERR_IS_CO);
{}
?>

<?php

header('location:db.php');
//partie du formulaire
if(empty($_POST['pseudo'])|| empty($_POST['email'])||empty($_POST['pays'])||empty($_POST['age'])||empty($_POST['password'])||empty($_POST['nom'])||empty($_POST['prenom']));// Si  la variable est vide, on peut considérer qu'on est sur la page de formulaire
{header('location:inscription.php');
}
if (isset($_POST['pseudo'])) {
//On récupère les variables
$i = 0;
$temps = time();
$pseudo=$_POST['pseudo'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$age = $_POST['age'];
$email = $_POST['email'];
$commentaire = $_POST['commentaire'];
$pays = $_POST['pays'];
$pass = md5($_POST['password']);
$confirm = md5($_POST['confirm']);
}

//Et on définit les variables de sessions
$_SESSION['pseudo'] = $pseudo;
$_SESSION['pays'] = $pays;
$_SESSION['level'] = "2";
exit();
//on vérifie la validation

if (isset ($_POST['submit']))
{
//On se connecte à la base de données
include "includes/connection.php";
$inscription_connect = mysql_connect($sql_serveur,$sql_nom,$sql_user,$sql_mdp) or die ("erreur de connexion");
//on précise la base
mysql_select_db($sql_base,$inscrption_connect) or die ("erreur de connexion base");
}

$i = 0;

//comparaison des ip
$inscrit_ip = intval($_SERVER['REMOTE_ADDR']);
$requete = "SELECT * FROM LISTE_MEMBRES WHERE inscrit_ip='".$inscrit_ip."'";
$resultat = "mysql_query($requete)";
$num = "mysql_num_rows($resultat)";
if ($num)
{
$ip_erreur = "Vous êtes déjà inscrit.";
$i++;
}

//Vérification du pseudo
$nombrepseudo mysql_result(mysql_query("SELECT COUNT(*) FROM LISTE_MEMBRES WHERE $pseudo '".$_POST['pseudo']."'"), 0);
if($nombrepseudo != 0)
{
$pseudo_erreur1 = "Votre pseudo est déjà utilisé .";
$i++;
}
if (strlen($_POST['pseudo']) < 3 || strlen($_POST['pseudo']) > 20)
{
$pseudo_erreur2 = "Votre pseudo est soit trop grand soit trop petit, soit le champ est resté vide.";
$i++;
}

//on vérifie l'enregistrement de pseudo

if(isset($_POST['pseudo']))
{

if(!$pseudo_free)
{
$pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
$i++;
}

if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
{
$pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
$i++;
}
}
//Vérification du mdp
if ($pass != $confirm || empty($confirm) || empty($pass))
{
$mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides";
$i++;
}


//Il faut que l'adresse email n'ait jamais été utilisée
//Vérification et comparaison de l'adresse e-mail
$nombremail mysql_result(mysql_query("SELECT COUNT(*) FROM LISTE_MEMBRES WHERE $email '".$_POST['email']."'"), 0);

if ($nombremail!= 0)
{
$email_erreur1 = "Vous êtes déjà inscrit...";
$i++;
}
//
if(isset($_POST['e-mail']));
{
if(!$mail_free)
{
$email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
$i++;
}

//On vérifie le format maintenant
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
{
$email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
$i++;
}
//Vérification de l'adresse MSN
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn))
{
$msn_erreur = "Votre adresse MSN n'a pas un format valide";
$i++;
}

}

// vérification de l'adresse mail
if(isset($_POST['mail']))
{
$mail = trim($_POST['mail']);
$mail_result = checkmail($mail);
if($mail_result == 'isnt')
{
$_SESSION['mail_info'] = 'Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.
';
$_SESSION['form_mail'] = '';
$_SESSION['erreurs']++;
}

else if($mail_result == 'exists')
{
$_SESSION['mail_info'] = 'Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est deja pris, [contact.php contactez-nous]
';
$_SESSION['form_mail'] = '';
$_SESSION['erreurs']++;
}

else if($mail_result == 'ok')
{
$_SESSION['mail_info'] = '';
$_SESSION['form_mail'] = $mail;
}

else if($mail_result == 'empty')
{
echo "Vous n'avez pas entré d'adresse mail";
$_SESSION['form_mail'] = '';
$_SESSION['erreurs']++;
header('Location: /index.php');
exit();}
}


//Définition des variables
$inscrit_ip = ip2long($_SERVER['REMOTE_ADDR']);
$inscrit_sexe = ($_POST['inscrit_sexe']);
//Protection anti-injection sql et on vérifie que les champs ne contiennent pas de html
$inscrit_sexe = mysql_real_escape_string($_POST['inscrit_sexe']);
$inscrit_pseudo = mysql_real_escape_string($_POST['inscrit_pseudo']);
$inscrit_email = mysql_real_escape_string($_POST['inscrit_email']);
//Enregistrement dans la table
mysql_query("INSERT INTO LISTE_MEMBRES (inscrit_id, inscrit_ip, inscrit_pseudo, inscrit_description, inscrit_email, inscrit_sexe)); 
mysql->execute();
or die (mysql_error());
else
{
echo '<center>Inscription interrompue</center>
';
echo '<center>Une ou plusieurs erreurs se sont produites pendant l\'inscription.</center>

';
echo '<center>
'.$i.' erreur(s)</center>';
if(isset($ip_erreur)){
echo '<center>'.$ip_erreur.'</center>

';}
if(isset($pseudo_erreur1)){
echo '<center>'.$pseudo_erreur1.'<center>

';}
if(isset($pseudo_erreur2)){
echo '<center>'.$pseudo_erreur2.'<center>

';}
if(isset($email_erreur1)){
echo '<center>'.$email_erreur1.'<center>

';}
if(isset($email_erreur2)){
echo '<center>'.$email_erreur2.'<center>

';}
if(isset($description_erreur)){
echo '<center>'.$pays_erreur.'

';}
if(isset($sexe_erreur)){
echo '<center>'.$sexe_erreur.'<center><center>

';}
echo' Cliquez ici pour recommencer.

';
}
}
mysql_close();
?>

amen
0