par
Clément » 02 juil. 2011, 16:42
Bonjour, j'ai un script d'inscription pour un espace que je suis en train de faire et j'ai l'erreur suivante :
Code : Tout sélectionner
Parse error: syntax error, unexpected T_IF in /home/******/*******/inscription.php on line 28
Je sais donc qu'il y a une erreur dans mon if, mais j'ai beau le lire et relire, je ne trouve pas. Je me suis donc dit que le problème venais peut etre de la connexion à ma table SQL car je me suis mis à utiliser PDO.
Voici mon (long) code (ligne 28 indiqué en commentaire).
<?php
session_start();
require("config/mysql.php"); //(Ce fichier contient les variables de connexion et la fonction securite)
if (isset($_SESSION['pseudo'])) { header("Location:compte.php"); } //Si on est connecté, redirection vers le compte
?>
<?php
if($_POST)
{
$ok = true; //Cette variable deviendra fausse au moindre problème. Sinon, l'inscription sera OK
//Sécurisation des variables
$pseudo = securite($_POST['pseudo'], 0, 1, 0);
$mail = securite($_POST['mail'], 0, 1, 0);
$pass1 = securite($_POST['pass1'], 0, 1, 0);
$pass2 = securite($_POST['pass2'], 0, 1, 0);
$nom = securite($_POST['nom'], 0, 1, 0);
$prenom = securite($_POST['prenom'], 0, 1, 0);
$pays = securite($_POST['pays'], 0, 1, 0);
$website = securite($_POST['website'], 0, 1, 0);
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=$server;dbname=$bdd', '$login', '$pass', $pdo_options); //erreur de connexion avec PDO ?
$reponse = $bdd->query('SELECT * FROM member-space WHERE pseudo=\'$pseudo\' OR mail=\'$mail\'');
$donnees = $reponse->fetch()
//Série de vérifications
if($donnees['COUNT(*)'] >= 1) {$rep_pseudo = "Ce pseudo/cette adresse est déjà utilisé(e)"; $rep_pseudo = $rep_mail; $ok = false;} //ligne 28
elseif(empty($pseudo)) {$rep_pseudo = "Ce champ est vide"; $ok = false;}
if(!preg_match("#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#", $mail)) {$rep_mail = "L'adresse mail n'est pas valide"; $ok = false;}
elseif(empty($mail)) {$rep_mail = "Ce champ est vide"; $ok = false;}
if(empty($pass1)) {$rep_pass1 = "Ce champ est vide"; $ok = false;}
if(empty($pass2)) {$rep_pass2 = "Ce champ est vide"; $ok = false;}
elseif($pass 1 != $pass2) {$rep_pseudo = "Les mots de passe ne sont pas identiques"; $ok = false;}
//Si il n'y a pas d'erreur
if($ok = true)
{
$date = date("d/m/Y à H:i"); //Date d'inscription
$activation = md5(rand()); //Clef d'activation
$req = $bdd->prepare('INSERT INTO jeux_video(pseudo, mail, pass, activation, nom, prenom, pays, website, date) VALUES(:pseudo, :mail, :pass, :activation, :nom, :prenom, :pays, :website, :date)'); //Enregistrement du membre
$req->execute(array(
'pseudo' => $pseudo,
'mail' => $mail,
'pass' => $pass1,
'activation' => $activation,
'nom' => $nom,
'prenom' => $prenom,
'pays' => $pays,
'website' => $website,
'date' => $date
));
$contenu = '<html><body>Bonjour ' . $pseudo . '. Vous êtes bien inscrit sur le site ' .$name_site. '. Cependant vous devez confirmer votre inscription en cliquant sur le lien ci-dessus<br /><a href="' .$url_site. '/activation.php?pseudo=' . $pseudo . '&activation=' . $activation . '">Cliquez ici pour activer votre compte</a><br /><br />Rappel de vos identifiant, gardez-les précieusement :<br />Pseudo :' . $pseudo .'.<br />Mot de passe:' . $mdp .'.<br /><a href="' .$url_site. '">' .$url_site. '</a>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'From: <$mail_envoi>' . "\r\n" .
'Reply-To: <$mail_envoi>' . "\r\n";
mail($mail, $subject, $contenu, $headers); //Envoi du mail
}
$reponse->closeCursor(); //Termine le traitement de la requête
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage()); //En cas d'erreur précédemment, on affiche un message et on arrête tout
}
}
?>
Code du formulaire
...
...
J'ai mis la ligne 28 en commentaire pour voir les autres erreurs et tout mes if, elseif, else ont la même erreur.
Voilà, merci d'avance

Bonjour, j'ai un script d'inscription pour un espace que je suis en train de faire et j'ai l'erreur suivante :
[code]Parse error: syntax error, unexpected T_IF in /home/******/*******/inscription.php on line 28[/code]
Je sais donc qu'il y a une erreur dans mon if, mais j'ai beau le lire et relire, je ne trouve pas. Je me suis donc dit que le problème venais peut etre de la connexion à ma table SQL car je me suis mis à utiliser PDO.
Voici mon (long) code (ligne 28 indiqué en commentaire).
[php]<?php
session_start();
require("config/mysql.php"); //(Ce fichier contient les variables de connexion et la fonction securite)
if (isset($_SESSION['pseudo'])) { header("Location:compte.php"); } //Si on est connecté, redirection vers le compte
?>
<?php
if($_POST)
{
$ok = true; //Cette variable deviendra fausse au moindre problème. Sinon, l'inscription sera OK
//Sécurisation des variables
$pseudo = securite($_POST['pseudo'], 0, 1, 0);
$mail = securite($_POST['mail'], 0, 1, 0);
$pass1 = securite($_POST['pass1'], 0, 1, 0);
$pass2 = securite($_POST['pass2'], 0, 1, 0);
$nom = securite($_POST['nom'], 0, 1, 0);
$prenom = securite($_POST['prenom'], 0, 1, 0);
$pays = securite($_POST['pays'], 0, 1, 0);
$website = securite($_POST['website'], 0, 1, 0);
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=$server;dbname=$bdd', '$login', '$pass', $pdo_options); //erreur de connexion avec PDO ?
$reponse = $bdd->query('SELECT * FROM member-space WHERE pseudo=\'$pseudo\' OR mail=\'$mail\'');
$donnees = $reponse->fetch()
//Série de vérifications
if($donnees['COUNT(*)'] >= 1) {$rep_pseudo = "Ce pseudo/cette adresse est déjà utilisé(e)"; $rep_pseudo = $rep_mail; $ok = false;} //ligne 28
elseif(empty($pseudo)) {$rep_pseudo = "Ce champ est vide"; $ok = false;}
if(!preg_match("#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#", $mail)) {$rep_mail = "L'adresse mail n'est pas valide"; $ok = false;}
elseif(empty($mail)) {$rep_mail = "Ce champ est vide"; $ok = false;}
if(empty($pass1)) {$rep_pass1 = "Ce champ est vide"; $ok = false;}
if(empty($pass2)) {$rep_pass2 = "Ce champ est vide"; $ok = false;}
elseif($pass 1 != $pass2) {$rep_pseudo = "Les mots de passe ne sont pas identiques"; $ok = false;}
//Si il n'y a pas d'erreur
if($ok = true)
{
$date = date("d/m/Y à H:i"); //Date d'inscription
$activation = md5(rand()); //Clef d'activation
$req = $bdd->prepare('INSERT INTO jeux_video(pseudo, mail, pass, activation, nom, prenom, pays, website, date) VALUES(:pseudo, :mail, :pass, :activation, :nom, :prenom, :pays, :website, :date)'); //Enregistrement du membre
$req->execute(array(
'pseudo' => $pseudo,
'mail' => $mail,
'pass' => $pass1,
'activation' => $activation,
'nom' => $nom,
'prenom' => $prenom,
'pays' => $pays,
'website' => $website,
'date' => $date
));
$contenu = '<html><body>Bonjour ' . $pseudo . '. Vous êtes bien inscrit sur le site ' .$name_site. '. Cependant vous devez confirmer votre inscription en cliquant sur le lien ci-dessus<br /><a href="' .$url_site. '/activation.php?pseudo=' . $pseudo . '&activation=' . $activation . '">Cliquez ici pour activer votre compte</a><br /><br />Rappel de vos identifiant, gardez-les précieusement :<br />Pseudo :' . $pseudo .'.<br />Mot de passe:' . $mdp .'.<br /><a href="' .$url_site. '">' .$url_site. '</a>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'From: <$mail_envoi>' . "\r\n" .
'Reply-To: <$mail_envoi>' . "\r\n";
mail($mail, $subject, $contenu, $headers); //Envoi du mail
}
$reponse->closeCursor(); //Termine le traitement de la requête
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage()); //En cas d'erreur précédemment, on affiche un message et on arrête tout
}
}
?>
Code du formulaire
...
...[/php]
J'ai mis la ligne 28 en commentaire pour voir les autres erreurs et tout mes if, elseif, else ont la même erreur.
Voilà, merci d'avance :wink: