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. 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>
    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. c normal qu'il ne s'affiche pas tu le declare dans ta variable ^^
        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. 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. 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. 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=""> ' ;