Une erreur php: parse error, unexpected T_STRING in

Petit nouveau ! | 5 Messages

28 mai 2009, 16:55

Bonjour tout le monde


Voila je suis entrain de creer un systeme d'authentification avec envoi de mail de validation pour pouvoir inscrire un utilisateur.

Tout fonctionne dans la page de formulaire mais je bloque sur celle ci qui me renvoie cette erreur:
Parse error: parse error, unexpected T_STRING in /mnt/www/*****/www/***/inscript.php on line 4

je pense que c'est une erreur de syntaxe mais je ne vois pas où


Je vous remercie d'avance


Voici le code :
<?php 

$base = mysql_connect("***","*****","******");
mysql_select_db('membre',$base) or die mysql_error($base);
 

$verification = mysql_query("SELECT COUNT(*) FROM membre WHERE pseudo='$pseudo'"); 
$donnees = mysql_fetch_array($verification); 

if($donnees['COUNT(*)'] >= 1)

{ echo 'Ce pseudo est déjà utilisé, veuillez en choisir un autre.'; 
 
} else {

$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$tele = str_shuffle($chaine);
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$pseudo = htmlentities($_POST['pseudo']);
$pass = htmlentities($_POST['pass']);
$email = addslashes($_POST['email']);
$message = 'Cher '.$pseudo.',';
$message .= 'Ceci est un mail automatique de confirmation d\'inscription au site de votre site';
$message .= 'Pour confirmer et ainsi terminer l\'inscription à votre compte, veuillez cliquer sur le lien de confirmation: ';
$message .= 'http://www.semaphore.asso.fr/confirm.php?pseudo='.str_replace(' ','%20',$pseudo);


if (!empty($pseudo) && !empty($pass) && !empty($email) && !empty($nom)  && !empty($prenom))
{

$lol = mysql_query("INSERT INTO membre VALUES(NULL,'$pseudo','$pass','$email','$nom','$prenom','0')") or die('erreur: '.mysql_error());  

echo 'Vous avez bien été rajoutée, un email va etre envoye dans votre email';
mail($email,'Confirmation d\'inscription votre site',$message);
}
else
{
echo 'Vous avez oublié de remplir un champ!';
}
mysql_close(); 

}
?>

ViPHP
ViPHP | 2291 Messages

28 mai 2009, 18:24

Salut,

Je pense que la bonne syntaxe est celle-ci
mysql_select_db('membre', $base) or die ( $base . mysql_error() );
et non pas
mysql_select_db('membre',$base) or die mysql_error($base);
:wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 1136 Messages

28 mai 2009, 18:35

Slt ,

dunbar dit vrai , mais tu peux laisser ta ressource dans mysql_error()
mysql_select_db('membre',$base)or die(mysql_error($base));
Mais normalement , il trouve la connexion tout seul .
La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.
Ch.

Petit nouveau ! | 5 Messages

29 mai 2009, 09:54

Bonjour,


merci à vous ça marche !

Par contre cette fois il me met une erreur :

Resource id #2Access denied for user 'utilisateur'@'10.%.%.%' to database 'membre'

j'avoue ne pas comprendre étant donné que j'ai mis les mots de passe pour accéder et pouvoir insérer les données dans la base de données.

Merci encore

ViPHP
ViPHP | 1136 Messages

29 mai 2009, 10:22

Cette fois le probléme , vient de la configuration des droits de ton "utilisateur" pour acceder à ta base .

essayes de modifier les droits de ton utilisateur avec ce genre de commande sql :

Code : Tout sélectionner

GRANT ALL PRIVILEGES ON `nomdetabase` . * TO 'login'@'%' WITH GRANT OPTION ;
ch.

Petit nouveau ! | 5 Messages

29 mai 2009, 10:34

Bonjour stopher,


Tout d'abord merci de te pencher sur mon souci.
J'ai essayé la requête et voila ce qu'il me met dans phpmyadmin


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%'WITH GRANT OPTION' at line 1


Merci encore

ViPHP
ViPHP | 1136 Messages

29 mai 2009, 10:50

:!: Comment exécutes tu cette commande sql ?

Ouvre un terminal ,

Ouvre une instance mysql :

musql -u<loginadmin> -p<passworddeladmin>

Là tu te retrouves avec les droits administrateur il ne te reste plus qu'à entrer la commande que je t'ai donné

GRANT ALL PRIVILEGES ON `<nomdetabase>` . * TO '<login>'@'%' WITH GRANT OPTION ;


Bien entendu , tu remplaces :

<loginadmin> par le login administrateur de ta base de données
<passworddeladmin> par le mot de passe de l'administrateur de ta base

<nomdetabase> par le nom de la base à laquelle tu dois te connecter de l'exterieur
<login> par le login utilisateur qui tu utilises dans ton code ( l'utilisateur doit déjà être existant sinon , il sera créé , mais sans mot de passe .. pas cool )

Ch.