Table des matières

Web

Traiter un formulaire Web

Page de saisie (formulaire.php):

  <html>
    <head>
      <title>Formulaire de test</title>
    </head>
    <body>
     <form action = "traitement.php" method="post">
       Votre nom : <input type = "text" name = "nom"></br>
       Votre age : <input type = "text" name = "age"></br>
       <input type = "submit" value = "Soumettre">
     </form>
    </body>
  </html>

Page de traitement (traitement.php):

  <html>
    <head>
      <title>Traitement du formulaire</title>
    </head>
    <body>
     <?php
         //Methode classique
         echo 'Votre Nom est '.$_POST['nom'].' et votre age est '.$_POST['age'].'</br>';
         //Methode simple, on récupère d'un coup toute les variables de type $_POST ce qui permet de simplifier la syntaxe pour l'usage des variables.
         extract ($_POST);
         echo 'Votre Nom est '.$nom.' et votre age est '.$age.'<br />';
     ?>
    </body>
  </html>

Cookies

Page du formulaire (formulaire.php) :

  <html>
    <head>
      <title>Formulaire de test</title>
    </head>
    <body>
    <?php
    // On verifie s'il le navigateur n'a pas de cookie nommé "pseudo" et qui à l'adresse de notre serveur Web.     
    if (isset($_COOKIE['pseudo'])) {
      echo 'Bonjour '.$_COOKIE['pseudo'];
    }
    //Sinon on rempli le formulaire pour se faire connaitre
    else {
      echo '<form action = "traitement.php" method="post">';
      echo '  Votre nom : <input type = "text" name = "nom"></br>';
      echo '  Votre age : <input type = "text" name = "age"></br>';
      echo '  <input type = "submit" value = "Soumettre">';
      echo '</form>';
    }
    ?>
    </body>
  </html>
Page de traitement (traitement.php) :
  <?php
  if (isset ($_POST['nom'])) {
    //On défini la durée de validité de notre cookies, ci-dessous 120 secondes
    $temp = 120;
    // On crée le Cookie en récupérant la valeur de "nom" saisie dans le formulaire.
    setcookie ("pseudo", $_POST['nom'], time() + $temp);
    // Fonction permettant de faire des redirections
    function redirection($url){
      if (headers_sent()){
        print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
      }
      else {
        header("Location:$url");
      }
    }
    // On lance la fonction de redirection pour rediriger l'internaute vers formulaire.php
    redirection ('formulaire.php');
  }
  else {
    echo 'La variable du formulaire n\'est pas déclarée.';
  }
  ?>

Sessions

Nous allons créer 4 pages :

index.htm

  <html>
  <head>
  <title>Formulaire de Login</title>
  </head>
  <body>
  <form action="login.php" method="post">
  Votre login : <input type="text" name="login"><br />
  Votre mot de passe : <input type="password" name="pwd"><br />
  <input type="submit" value="Connexion">
  </form>
  </body>
  </html>

login.php

  <?php
  // Ci-dessous les login et mot de passe valides defini en dur. Ces donnees seraient peut placees en base de données
  $login_valide = "moi";
  $pwd_valide = "lemien";
  // On verifie que le login et le mot de passe du formulaire sont definis
  if (isset($_POST['login']) && isset ($_POST['pwd'])){
    // On compare le login et le mot de passe du formulaire avec les login et pass valide defini plus haut
    if ($login_valide == $_POST['login'] && $pwd_valide == $_POST['pwd']){
      // S'ils correspondent on demarre la session
      session_start ();
      // On enregistre les parametres comme variables de sessions
      $_SESSION['login'] = $_POST['login'];
      $_SESSION['pwd'] = $_POST['pwd'];
      // On recupere quelques parametre concernant notre session
      $_SESSION['ID'] = session_id();
      $_SESSION['name'] = session_name();
      // On redirige le visiteur authentifié vers notre section membre
      header ('location: page_membre.php');
    }
    else {
      // Sinon le visiteur est non reconnu
      echo '<body onLoad="alert(\'Membre non reconnu...\')">';
      echo '<meta http-equiv="refresh" content="0;URL=index.htm"';
    }
  }
  else {
    echo 'Veuillez renseigner tous les champs';
  }
  ?>

page_membre.php

  <?php
  // On demarre la session (ceci est a faire sur toutes les pages de notre section membre
  session_start();
  // On recupere nos variables de session pour valider que les login et pass sont toujours valide avant d'afficher le contenu
  if (isset($_SESSION['login']) && isset($_SESSION['pwd'])) {
    echo '<html>';
    echo '<head>';
    echo '<title>Page de notre section membre</title>';
    echo '</head>';
    echo '<body>';
    // On affiche quelque elements relatifs à notre session
    echo 'Votre login est '.$_SESSION['login'].' et votre mot de passe est '.$_SESSION['pwd'].'.<br />';
    echo 'Votre NOM de session '.$_SESSION['name'].' et votre ID de session est '.$_SESSION['ID'].'.<br />';
    echo '</body>';
    echo '<a href="./logout.php">Deconnection</a>';
  }
  else {
    echo 'Vous n\'etes pas authentifier';
  }
  ?>

logout.php

  <?php
  // On demarre la session (comme dans toute nos pages membres
  session_start ();
  // On supprime les variables de session
  session_unset ();
  // On detruit notre session
  session_destroy ();
  // On redirige le visiteur sur la page d'accueil
  header ('location: index.htm');
  ?>

Upload de fichier

upload.htm

  <html>
  <head>
  <title>Formulaire pour envoyer un fichier</title>
  </head>
  <body>
  <form action="send_fichier.php" method="post" enctype="multipart/form-data">
  Votre fichier : <input type="file" name="mon_fichier">
                <input type="hidden" name="MAX_FILE_SIZE" value=200000000000>
                <input type="submit" value="Envoyer">
  </form>
  </body>
  </html>

send_fichier.php

  <html>
  <head>
  <title>Page de récupération du fichier</title>
  </head>
  <body>
  <?php
  // On test si les variable sont défnies
  if (isset($_FILES['mon_fichier']['name']) && isset($_FILES['mon_fichier']['size']) && isset($_FILES['mon_fichier']['tmp_name']) && isset($_FILES['mon_fichier']['type']) && isset($_FILES['mon_fichier']['error'])) {
    // On affiche les différentes valeurs relatives a notre fichier
    echo 'Nom d\'origine : '.$_FILES['mon_fichier']['name'].'<br />';
    echo 'Taille : '.$_FILES['mon_fichier']['size'].'<br />';
    echo 'Nom sur le serveur : '.$_FILES['mon_fichier']['tmp_name'].'<br />';
    echo 'Type de fichier : '.$_FILES['mon_fichier']['type'].'<br />';
    echo 'Code erreur : '.$_FILES['mon_fichier']['error'].'<br />';
  
    // Ci-dessous on enregistre le fichier dans son répertoire définitif
    $dir_destination = '/var/www/test-php';
    move_uploaded_file($_FILES['mon_fichier']['tmp_name'], $dir_destination.'/'.$_FILES['mon_fichier']['name']);
  }
  else {
          echo 'Nos variables ne sont pas déclarées.';
  }
  ?>
  </body>
  </html>