Au secour script qui plante

Résolu
Bonjour,

j ai un erreur Parse error: syntax error, unexpected T_VARIABLE in ..... on line 21

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<meta http-equiv="content-language" content="fr" />
</head>

<body>
<?php
// On démarre la session
session_start();
$loginOK = false; // cf Astuce

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['user'])) && (!empty($_POST['password']))

//connection a la bese de données
$link = mysql_connect('localhost', 'user', 'password') or die('impossible de se connecter à la base de données');
if($link)
$db = mysql_select_db("toit9356_user", $link) or die('impossible d\'accéder à la base de données');

extract($_POST); // pour creer $user $password

// On va chercher le mot de passe dans (user) la table qui contient les informations
$sql = "SELECT user, password FROM user WHERE user = '".addslashes($user)."'" ;
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {

while ($donnees = mysql_fetch_array($req)) // On fait une boucle pour lister les résultats dans le cas ou ilya
// deux personne qui ont le mm nom et le mm prenom et des mdp differentes
{
// On vérifie que son mot de passe est correct
if ($password == $donnees ['password']) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
echo "identification reussite";
sleep(3);

header('Location: www.toitio.com'); //tu doit présiser la page ou on doit etre rediriger
}
else {
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>

</body>
</html>

merci d avance
Configuration: Windows Vista Internet Explorer 7.0

9 réponses

  1. je veux simplement dire que tu postes à la volée sans réfléchir.
    Le premier poste pour une paranthese, le deuxieme pour une decalration au mauvais endroit et ensuite ca fonctionne mais c'est à une autre page que ca plante.

    donc voilà je t'ai donné la solution, mais tu ne l'a pas lu.

    Réexplcation:

    tu as ton formulaire.
    premiere ligne déclaration de la session
    ensuite si les paramètre de ton formulaire son ok, tu ouvres avec header();

    sauf que dans cette nouvelle page, tu refaits une declaration de session je pense, ou redefinition du header, donc ca plante.
    1. qu est ce que tu veut dire par la je ne comprend pas mon sessionstart est juste une foismon script marche quand je n entre pas les boons user il me dit qu il a un erreur mais c est quand je met les bons identifiants que ca me fait cette erreur
      1. ok,

        je pense qu'il faudrait que tu apprennes à utiliser les SESSIONS car tous les problèmes viennent de là;

        session_start ne peut être définit qu'une fois

        Or, je pense que dans ta page access.php, il doit y avoir redefinition du session_start()
        1. bon j ai regler le probleme mais quand je me log il me fait un erreur

          Warning: Cannot modify header information - headers already sent by (output started at /home/toit9356/public_html/acces.php:10) in /home/toit9356/public_html/acces.php on line 51

          voila la ligne 51

          header('Location: www.toitio.com'); //tu doit présiser la page ou on doit etre rediriger
          1. merci ca a regler le probleme mais il me renvoi toujours a une erreur est survenue
            1. la déclaration que tu fait avec session_start() est incompatible avec ton code.

              Il faut definir l'utilisation des session avant d'envoyer le header
              en gros :
              remplacer :

              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml">
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
              <meta http-equiv="content-language" content="fr" />
              </head>
              par =>

              <?php
              session_start();
              ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml">
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
              <meta http-equiv="content-language" content="fr" />
              </head>
              1. j ai ajouter la parentese et ca me donne une autre rreur maintenant

                Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/toit9356/public_html/acces.php:9) in /home/toit9356/public_html/acces.php on line 11

                Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/toit9356/public_html/acces.php:9) in /home/toit9356/public_html/acces.php on line 11
                Une erreur est survenue, veuillez réessayer !
                1. Salut,

                  if ( isset($_POST) && (!empty($_POST['user'])) && (!empty($_POST['password']))

                  il me semble qu'il manque une parenthèse non?
                  1. un conseil quand un script te donne une erreur à une ligne donnée il faut nous donner le script intégral
                    ou au moins jusqu à la ligne concernée tu le zippes et tu le mets sur un site quelconque
                    en changeant son extension si c'est du PHP afin qu'on puisse t aider