Erreur php

Bonjour,
quelqu'un ma donné ce code mais il ne marche pas:
session_start();

$form = '<form method="post" action=""> '
<p>
<label for="id">Quel est le numéro ?</label><br/>
<input type="text" id="id" name="id" />
</p>
<p>
<label for="mdp">Quel est le mot de passe ?</label><br/>
<input type="password" name="mdp" id="mdp" tabindex="15" />
</p>
<p>
<input type="submit" value="Connexion" />
</p>
</form>';

$comptes = array(
'id1' => 'mdp1',
'id2' => 'mdp2',
// ...
);

if(!empty($_POST)) {
$id = trim($_POST['id']);
$mdp = trim($_POST['mdp']);

if(empty($id) || empty($mdp)) {
$afficher = 'Merci de remplir tous les champs.<br/>'.$form;
} else {
if(array_key_exists($id,$comptes)) {
if($comptes[$id] == $mdp) {
$_SESSION['connecte'] = true;
header('Location: page_protegee.php');
die();
} else
$afficher = 'Mot de passe invalide.<br/>'.$form;
} else
$afficher = 'ID inconnu<br/>'.$form;
}
} else {
$afficher = $form;
}
?>

wampserver me dit que l'erreur est a la ligne 22 ( soit le premier <p>)
(le formulaire ne s'affiche pas)
Configuration: Windows XP
Firefox 3.5.7

7 réponses

  1. slt, peux tu mettre tout le script à partir de la balise php jusqu'a la derniere stp^^
    ps:
    $form = '<form method="post" action=""> ' <---- ici tu ne devrais pas mettre le '
    ou bien si tu veux juste declarer ta variable, alors ...."post" action=""> ' ;
    1. j'ai enlevé le "' ' " mais maitenant il n'y a que le lien de la fin qui s'affiche! voici le script:

      <div id="corps">

      <?php
      session_start();

      $form = '<form method="post" action="">
      <p>
      <label for="id">Quel est le numéro ?</label><br/>
      <input type="text" id="id" name="id" />
      </p>
      <p>
      <label for="mdp">Quel est le mot de passe ?</label><br/>
      <input type="password" name="mdp" id="mdp" tabindex="15" />
      </p>
      <p>
      <input type="submit" value="Connexion" />
      </p>
      </form>';

      $comptes = array(
      'id1' => 'mdp1',
      'id2' => 'mdp2',
      // ...
      );

      if(!empty($_POST)) {
      $id = trim($_POST['id']);
      $mdp = trim($_POST['mdp']);

      if(empty($id) || empty($mdp)) {
      $afficher = 'Merci de remplir tous les champs.<br/>'.$form;
      } else {
      if(array_key_exists($id,$comptes)) {
      if($comptes[$id] == $mdp) {
      $_SESSION['connecte'] = true;
      header('Location: page_protegee.php');
      die();
      } else
      $afficher = 'Mot de passe invalide.<br/>'.$form;
      } else
      $afficher = 'ID inconnu<br/>'.$form;
      }
      } else {
      $afficher = $form;
      }
      ?>

      <p>
      <span class="lien"> <a href="nrall.php">allez faire un tour sur les énigmes non-resolues</a></span>
      </p>
      </div>
      </body>
      1. bon deja le session start c'est avant le id^^
        donc :::

        <?php
        session_start();

        $form = '<form method="post" action="">
        <p>
        <label for="id">Quel est le numéro ?</label><br/>
        <input type="text" id="id" name="id" />
        </p>
        <p>
        <label for="mdp">Quel est le mot de passe ?</label><br/>
        <input type="password" name="mdp" id="mdp" tabindex="15" />
        </p>
        <p>
        <input type="submit" value="Connexion" />
        </p>
        </form>';

        $comptes = array(
        'id1' => 'mdp1',
        'id2' => 'mdp2',
        // ...
        );

        if(!empty($_POST)) {
        $id = trim($_POST['id']);
        $mdp = trim($_POST['mdp']);

        if(empty($id) || empty($mdp)) {
        $afficher = 'Merci de remplir tous les champs.<br/>'.$form;
        } else {
        if(array_key_exists($id,$comptes)) {
        if($comptes[$id] == $mdp) {
        $_SESSION['connecte'] = true;
        header('Location: page_protegee.php');
        die();
        } else
        $afficher = 'Mot de passe invalide.<br/>'.$form;
        } else
        $afficher = 'ID inconnu<br/>'.$form;
        }
        } else {
        $afficher = $form;
        }
        ?>
        <!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-1" />
        etc etc...
        </head>
        <body>
        <div id="corps">
        <p>
        <span class="lien"> <a href="nrall.php">allez faire un tour sur les énigmes non-resolues</a></span>
        </p>
        </div>
        </body>
        </html>
        la ca te sort toujours une erreur????? ^^
        1. eh bien non wamp server ne me donne aucune erreur mais le formulaire ne s'affiche pas...
          il y a juste le lien dans le corps de la page.
          1. c normal qu'il ne s'affiche pas tu le declare dans ta variable ^^
            1. c'est pas moi qui l'ai écrite je ne connait pas le php j'ai juste besoin de sa...
              tu peut me dire comment remédier a sa?
              1. ben, je ne sais pas ce qui ecrit sur ta page toute entiere mais bon^^---->

                <?php
                session_start();

                $form = '<form method="post" action="">
                <p>
                <label for="id">Quel est le numéro ?</label><br/>
                <input type="text" id="id" name="id" />
                </p>
                <p>
                <label for="mdp">Quel est le mot de passe ?</label><br/>
                <input type="password" name="mdp" id="mdp" tabindex="15" />
                </p>
                <p>
                <input type="submit" value="Connexion" />
                </p>
                </form>';

                $comptes = array(
                'id1' => 'mdp1',
                'id2' => 'mdp2',
                // ...
                );

                if(!empty($_POST))
                {
                $id = trim($_POST['id']);
                $mdp = trim($_POST['mdp']);

                if(empty($id) || empty($mdp))
                {
                $afficher = 'Merci de remplir tous les champs.<br/>'.$form;
                }
                else
                {
                if(array_key_exists($id,$comptes))
                {
                if($comptes[$id] == $mdp)
                {
                $_SESSION['connecte'] = true;
                header('Location: page_protegee.php');
                die();
                }
                else
                $afficher = 'Mot de passe invalide.<br/>'.$form;
                }
                else
                $afficher = 'ID inconnu<br/>'.$form;
                }
                } else
                {
                echo '<form method="post" action="">
                <p>
                <label for="id">Quel est le numéro ?</label><br/>
                <input type="text" id="id" name="id" />
                </p>
                <p>
                <label for="mdp">Quel est le mot de passe ?</label><br/>
                <input type="password" name="mdp" id="mdp" tabindex="15" />
                </p>
                <p>
                <input type="submit" value="Connexion" />
                </p>
                </form>';
                }
                ?>
                <!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-1" />
                etc etc...
                </head>
                <body>
                <div id="corps">
                <p>
                <span class="lien"> <a href="nrall.php">allez faire un tour sur les énigmes non-resolues</a></span>
                </p>
                </div>
                </body>
                </html>