[PHP]syntax error, unexpected '@'

Résolu/Fermé
Utilisateur anonyme - Modifié par tamtammort le 1/07/2010 à 14:35
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 1 juil. 2010 à 15:19
Bonjour,
J'ai commencé à me lancer dans le php pour créer mon site.
Je voudrais écrire dans les tables mysql à l'aide d'un code php, mais tout ceci sous forme d'un bulletin que les visiteurs rempliront eux-même, et pour finir, l'envoi d'un mail de confirmation avec username et password. Pour cela, j'ai écrit mon code sans trop de difficultés:


<?PHP

$dbhost = "adresse de ma db";
$dbname = "nom de ma table";
$dbuser = "username";
$dbpass = "password";

mysql_connect ($dbhost, $dbuser, $dbpass)or die("Impossible de se connecter: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());


$name = $_POST['name'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = md5($_POST['password']);

$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'");

$username_exist = mysql_num_rows($checkuser);

if($username_exist > 0){
echo "Ce nom existe déjà.";
unset($username);
include 'registration.html';
exit();
}

$query = "INSERT INTO users (name, email, username, password)
VALUES('$name', '$email', '$username', '$password')";
mysql_query($query) or die(mysql_error());
mysql_close();

echo "Vous êtes maintenant inscrit !";

$yoursite = 'mon site';
$webmaster = 'mon nom';
$youremail = 'mon mail'; // on m'indique une erreur à cette ligne, bien sur j'ai enlevé mon adresse pour vous exposer le problème, voici l'erreur à cette ligne: Parse error: syntax error, unexpected '@' juste sur le @ de mon adresse

$subject = "Confirmation de votre inscription à $yoursite.";
$message = "Bonjour $name, vous êtes maintenant inscrit sur notre serveur.
Vous pouvez à présent vous connecter sur notre serveur avec les identifiants suivants:
Nom de compte: $username
Mot de passe: $password
Veillez à bien conserver ce message, nous ne fournirons aucun duplicata conernant les identifiants.

Merci,
$webmaster";

mail($email, $subject, $message, "From: $yoursite <$youremail>\nX-Mailer:PHP/" . phpversion());

echo "Un message de confirmation vous a été envoyé.";

?>


Si vous avez lu vous avez vu d'où vient le problème, j'ai marqué.
Ensuite, sur ce type d'erreur, on m'a dit que cela pouvait venir de la syntaxe ou un problème par exemple il manque un ';' ou un '{' etc...
Sur ce, je demande votre aide, cela serait fort intéressant si l'un d'entre vous pouvait m'éclairer sur le problème, car en attendant, mon site no progresse pas.
Je vous remercie de vos réponses.
A voir également:

13 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 14:36
Puis-je connaitre l'adresse mail en question?

En fait unexpected veut dire que tu l'as mis alors qu'il ne le fallait pas. Peut-être qu'un caractère dans l'adresse mail ferme la simple quote...
0
Utilisateur anonyme
1 juil. 2010 à 14:38
L'adresse mail en question est zhal.server@gmail.com.
Dans le pire des cas, je pourrais supprimer l'envoi du mail mais ça serait handicapant...
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 14:40
Non ce n'est pas ça.

Par contre j'ai vu que quand tu fais $youremail = 'mon mail'; la première quote n'est pas la même que la première. Ou j'ai mal vu... Sinon tu dois toujours utiliser le 4 et non AltGR+7
0
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 39
1 juil. 2010 à 14:41
Essaie :
mail($email, $subject, $message, "From: $youremail" . phpversion()); 


Je l'utilise personnellement et je n'ai pas d'erreur

Si cela ne fonctionne pas :

$header = "From: ".$yourmail;
mail($email, $subject, $message, $header);
0

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

Posez votre question
Toujours le même problème, j'avoue que je commence à être dérouté...
Je suis perdu.

Je pense que le moyen le plus simple pour remédier au problème consisterait à ne pas envoyer de mail de confirmation... Mais je ne peux pas... Que faire ?...
0
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 39
1 juil. 2010 à 14:51
mail($email, $subject, $message, "From: $youremail" . phpversion()."\r\n"); ?
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 14:51
$yoursite = 'mon site';
$webmaster = 'mon nom';
$youremail = 'mon mail';


En faisant ceci tu as toujours un message d'erreur? Quel est il?
0
Utilisateur anonyme
1 juil. 2010 à 14:56
C'est bon, le problème est résolu, j'ai modifié le code en remplaçant les ' par les ', mais un autre problème est venu, celui de la connection à la db de mysql. Je tiens à m'excuser pour mon étourderie, et en ce qui concerne le probleme de la connection, je vais essayer de remédier à cela. Je vous remercie pour votre aide précieuse, je vous souhaite une bonne journée.
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 14:59
C'est bien ce que je pensais avoir vu...

Quel est ton problème de connexion? Tu pense t'en sortir seul?

Bonne continuation
0
Utilisateur anonyme
1 juil. 2010 à 15:05
Le nouveau problème vient du nom de ma db, elle s'appelle 'account' comme je l'ai mis dans le script:
$dbname = "account";

Mais le message d'erreur suivant me parvient:
Unknown database 'account'

Le problème c'est que c'est ce domaine précis que je maîtrise le moins bien donc j'ai du faire une étourderie...
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 15:07
Tu n'as pas confondu le nom de ta base et le nom d'une table??
0
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 39
1 juil. 2010 à 15:12
Bien vu
0
Ho si en effet, mais que dois-je faire dans ce cas là ?
Depuis le début je confonds alors...

J'aurais une suggestion: ce qu'il faudrait c'est écrire dans la table ?
Il faudrait changer le script pour cela ?
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 15:16
Dans l'exemple tu as une table qui s'appelle users et une base de données qui s'appelle "nom de ma table"... Je pense que tu as déjà créé tout ça. A toi de remettre les choses au point.

Quant à ta dernière question je ne la comprends pas bien. Quand tu fais un insert tu "écrit" dans la table...en principe
0
Utilisateur anonyme
1 juil. 2010 à 15:19
Ok, merci.
Je vais corriger tout ça et je vous donnerai des nouvelles.
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
1 juil. 2010 à 15:19
Ça marche ;-)
0