Besoin d'aide Parse error: syntax error, unex

Résolu/Fermé
fantasio974 Messages postés 3 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010 - 13 janv. 2010 à 08:19
fantasio974 Messages postés 3 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010 - 13 janv. 2010 à 11:59
Bonjour,

Je suis débutant et travaille actuellement sur un template de site Internet qui aurait du fonctionner sans problemes ;) L'erreur apparait au moment ou je fini de valider mon formulaire d'inscription à mon site.

Parse error: syntax error, unexpected T_STRING in /homez.311/eveonlin/www/includes/do_open_account.php(80) : eval()'d code on line 22
Warning: Cannot modify header information - headers already sent by (output started at /homez.311/eveonlin/www/includes/do_open_account.php(80) : eval()'d code:22) in /homez.311/eveonlin/www/includes/do_open_account.php on line 82



Je ne comprends pas pourquoi. De plus l'email de validation du compte qui m est envoyé est complètement raté. Avec les valeurs brutes style $Nom à la place du nom indiqué à la saisie.

Ci joint le code du fichier concerné avec un gras les lignes 22 et 82

<?
/***********************************************************************
----
USER REGISTRATION ENGINE
v1.0
************************************************************************/
include ("config.php");
include ("../dbcon.php");
include ("functions.php");
$user_ip_address = $HTTP_SERVER_VARS["REMOTE_ADDR"]; /*Fetch the user's IP Address */
if($firstname=="" or $lastname=="" or $gender=="" or $street=="" or $zip=="" or $city=="" or $country =="" or $email=="" or $phone=="" or $uid=="" or $pass1=="" or $pass2=="" or $secques=="" or $secans=="" or $dobd=="" or $doby=="" or $dobm==""){
Header("Location: ../index.php?page=open_account&error=Please fill out all mandatory form fields!&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit; }
if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email))
{
Header("Location: ../index.php?page=open_account&error=You did not provide a valid e-mail address. Please re-check you entered your details correctly!&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
$resultu=mysql_query("select * from jsgamingcenter_users where email='$email'", $casdb);
$usert1=mysql_fetch_array($resultu);
$resultm=mysql_query("select * from jsgamingcenter_users where login='$uid'", $casdb);
$usert2=mysql_fetch_array($resultm);
if ($email==$usert1[6])
{
Header("Location: ../index.php?page=open_account&error=There is already a user registered with the e-mail address provided!&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if ($uid==$usert2[1])
{
Header("Location: ../index.php?page=open_account&error=This UserID already exists!&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if ($pass1!=$pass2)
{
Header("Location: ../index.php?page=open_account&error=Your passwords did not match. Please try again.&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if(strlen($uid) < 6 ){
Header("Location: ../index.php?page=open_account&error=Your UserID must be longer than 6 characters.&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if(strlen($pass1) < 6 ){
Header("Location: ../index.php?page=open_account&error=Your password must be longer than 6 characters.&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if(strlen($uid) > 25 ){
Header("Location: ../index.php?page=open_account&error=Your UserID is too long!&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if(strlen($pass1) > 25 ){
Header("Location: ../index.php?page=open_account&error=Your password is too long!&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if (!eregi("^[0-9]+$", $phone))
{
Header("Location: ../index.php?page=open_account&error=You did not provide a valid phone number (numeric-values only!)&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if (!eregi("^[0-9]+$", $zip))
{
Header("Location: ../index.php?page=open_account&error=You did not provide a valid ZIP Code number (numeric-values only!)&firstname=$firstname&lastname=$lastname&gender=$gender&street=$street&zip=$zip&city=$city&state=$state&country=$country&email=$email&phone=$phone&uid=$uid&secques=$secques&secans=$secans&whereknowfrom=$whereknowfrom");
exit;
}
if($emailupdates1=="1"){
$newsletter =0;
}
else{
$newsletter =1;
}
$checkcode=md5(rand(00000000000000000,999999999999999999));
$checkcode=strtoupper($checkcode);
$date=date("d/m/y");
$time=date("g:i a");
mysql_query("INSERT INTO `jsgamingcenter_users` VALUES('', '$uid', '$pass1', '0', '0', '0', '$email', '$firstname', '$lastname', '$date $time', '0', '$checkcode', '$gender', '$street', '$zip', '$city', '$country', '$dobm/$dobd/$doby', '$phone', '0', '$secques', '$secans', '$whereknowfrom', '$newsletter', '0', 'n/a', 'n/a', 'n/a', '0', '', '', '', '', '', '$user_ip_address', 'None recorded', 'NO')", $casdb);
mysql_query("INSERT INTO `jsgamingcenter_userdetailshistory` VALUES('', '$uid', '$pass1', '0', '0', '0', '$email', '$firstname', '$lastname', '$date $time', '0', '$checkcode', '$gender', '$street', '$zip', '$city', '$country', '$dobm/$dobd/$doby', '$phone', '0', '$secques', '$secans', '$whereknowfrom', '$newsletter', '0', 'n/a', 'n/a', 'n/a', '0', '', '', '', '', '', '$user_ip_address', 'None recorded', 'NO', '$date $time')", $casdb);
$resultu=mysql_query("select * from jsgamingcenter_emails where id='1'", $casdb);
$theemail=mysql_fetch_array($resultu);
$conf=mysql_fetch_array(mysql_query("select * from jsgamingcenter_settings", $casdb));
$message = $theemail['3']; eval("\$message = \"$message\";");
mail("$email", "$theemail[2]", "$message", "From: $casinoname <$conf[5];>");
Header("Location: ../index.php?page=open_account_2");
?>



Merci d'avance je suis complètement paumé :)

3 réponses

Bonjour

La ligne 22 dont il est question n'est pas celle de ton script, mais celle du code que tu essayes d'exécuter avec l'instruction eval("\$message = \"$message\";")
C'est donc dans le contenu de $message qu'il faut chercher une erreur
0
fantasio974 Messages postés 3 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010
13 janv. 2010 à 11:14
Pfiou une réponse c est déja bien. Mais $message c est un probleme de variable a chequer dans la base ou c est un fichier à modifier ?
0
fantasio974 Messages postés 3 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 13 janvier 2010
13 janv. 2010 à 11:59
Réponse fournie sur https://forum.phpfrance.com/php-debutant/parse-error-syntax-error-unexpected-string-t251245.html#p313534#p313534

Merci pour tout les mecs.

Re: Besoin d'aide Parse error: syntax error, unexpected T_STRING

Messagede macgawel le 13 Jan 2010, 11:22
Bonjour.

A priori, je dirais que le problème vient de ton eval("\$message = \"$message\";"); à la ligne 79.

Déjà, j'ai du mal à voir l'intérêt de cette commande.
Et il faudrait regarder le contenu de ta variable $message, que tu récupères avec select * from jsgamingcenter_emails where id='1' (troisième champ). S'il y a des guillemets dans le message, ça plante.
Tu peux faire le test :


$message = 'mon message"';
eval("\$message = \"$message\";");
retourne le même genre d'erreur, alors que

$message = 'mon message\"';
eval("\$message = \"$message\";");
fonctionne.

Tu as donc le choix (si tu gardes ton eval) :
- Solution rapide

$message = htmlspecialchars($theemail['3'], ENT_QUOTES);
va échapper les caractères spéciaux.
- Solution à privilégier : échapper les caractères spéciaux au moment de l'insertion dans la base de données.

macgawel
0