Erreur Parse error introuvable

Résolu
stajem Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -  
stajem Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis débutant en php (enfin presque) et je souhaite faire un site avec une partie membre. C'est pour un assez gros projet (et j'ai peut-être été trop gourmand vu la difficulté... ^^) Et j'arrête pas d'avoir des erreurs. Pour l'instant je m'en sortais assez bien mais là j'ai une erreur simple que je trouve pas...
J'utilise notepad++ (l'habitude en c++) pour repérer les oublis de parenthèses.

Voilà mon code :

<?

$db = mysql_connect('***', '***', ****'); 
mysql_select_db('***r',$db);                    

if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['pwd'])) {
  extract($_POST);
  $sql = "select pwd from tbl_user where pseudo='".$pseudo."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != $pwd) {
    echo '<p>Mauvais pseudo / password. Merci de recommencer</p>';
    include('index.html');
    exit;
  }
  else {
    session_start();
    $_SESSION['pseudo'] = $pseudo;
    
    echo 'Vous etes bien logué, <a href="index1.html" title="index1">cliquer ici </a>pour continuer';
 
  }   
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('index.html'); 
   exit;
}
mysql_close($db);  // 3


?>



Voilà, je suis prêt à tout entendre (enfin dans la limite du raisonnable ^^)

8 réponses

toto
 
Bonjour

$db = mysql_connect('***', '***', ****');

regarde bien, il te manque une apostrophe ...
0
stajem Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   79
 
non, c'est une erreur dans la copie. je viens de vérifier
0
Mastaz Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   8
 
$sql = "select pwd from tbl_user where pseudo='".$pseudo."'";

Mélange pas les quotes avec la concaténation :S :
$sql = 'select pwd from tbl_user where pseudo= ' . $pseudo;

Préviens si ça c'est arrangé.
0
toto
 
Ta ligne $sql .. est tout à fait correcte quoi qu'en dise Mastaz. Ne la corrige pas.
Je n'ai aucune Parse error depusi la correction que je t'ai donnée.
Peux tu donner le message d'erreur complet ?

au passage, lil vaut mieux utiliser la balise d'ouverture <?php que simplement <?. Les serveurs n'acceptent pas tous <?
0

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

Posez votre question
stajem
 
je viens de trouver, c'est sur ma page html appellante... erreur TROP bete.

Merci beaucoup quand même.
0
Mastaz Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   8
 
Toto, même si la ligne marche, la mienne est un peu plus "lisible" mais bon, j'avais jamais vu une ligne comme ça...
Mais bon tant mieu si ça marche...
0
toto
 
Mastaz, je ne vois pas en quoi ta ligne est plus lisible...
Par contre, signaler une erreur qui n'en est pas une ne rend pas la réponse plus lisible pour celui qui a posé la question.
Tu n'avais jamais vu une ligne comme ça, qu'a-t-elle donc de spécial ? Elle n'utilise que la syntaxe la plus basique de PHP

Ta ligne à toi ne marchera même pas si $pseudo contient un espace ou un ";" alors que celle de stajem continuera de marcher. L'idéal serait en fait d'avoir
$sql = "select pwd from tbl_user where pseudo='".mysql_real_escape_string($pseudo)."'"; 

pour éviter tous les problèmes de caractères spéciaux
0
stajem Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   79
 
merci de cette précision ^^
0