Visiter Uprate

Un cookie est un fichier texte (sur l'ordinateur du client) de taille limitée (65ko) permettant de stocker certaines informations.



Il est important de savoir que la gestion du cookie doit se faire avant d'écrire une donnée dans le document HTML, attention aux espaces malencontreusement écris au début du fichier.

  • Création du cookie:

  • On va pouvoir écrire et lire dans un cookie très simplement en PHP. L'envoie du cookie se fait par la commande setcookie().
    Toutes les données envoyées au cookie sont systématiquement retournées au script PHP et sont transformés en variables.

    int setcookie(string name, string value, int expire, string path, string domain, int secure);


  • Seul le paramètre name est obligatoire:

    1. name est le nom du cookie, c'est une chaîne de caractères privée de ":" ;"," et " ".
    2. value est la valeur du cookie
    3. expire est la date d'expiration du cookie
    4. path est le répertoire dans lequel le cookie est valide
    5. domain est le nom de domaine du site
    6. secure indique que le cookie ne doit être transmis que par une connexion sécurisée HTTPS



    Perdu !!! Mais 972 visiteurs(euses) ont fait un 421




  • Voila le script du jeu avec les modifications (les cookies et le code javascript):

  • <?
    /* pour initialiser le générateur de nombres aléatoires a la seconde
    srand(date("s"));*/

    // on choisira de l'initialiser à la micro-seconde
    srand((double)microtime()*1000000);
    // nombre aléatoire entre 1 et 6
    $x=rand(1,6); // générateur de nombre aléatoire pour le 1er dé
    $y=rand(1,6); // générateur de nombre aléatoire pour le 2ème dé
    $z=rand(1,6); // générateur de nombre aléatoire pour le 2ème dé

    //$x=4;$y=2;$z=1; //utile pour faire des tests<br> // afichage du résultat
    print("<img src=\"./des.php?de=$x\" ></A>");
    echo' ';
    print("<img src=\"./des.php?de=$y\" ></A>");
    echo' ';
    print("<img src=\"./des.php?de=$z\" ></A>");
    echo' ';

    // on test si on a fait un 421
    if( (($x==4)||($y==4)||($z==4))
    && (($x==2)||($y==2)||($z==2))
    && (($x==1)||($y==1)||($z==1)))
    {
    // si on à un 421
    $jx = 1;
    // si c'est la premiere fois on cree le fichier jeux.txt
    if (!is_file("jeux.txt"))
    {
    $fd = fopen("jeux.txt", "w+"); // ouverture en lecture et écriture (la fonction crée le fichier s'il n'existe pas)
    print("<B><FONT COLOR=\"green\">" . $jx ." Visiteurs(euses) a fait un 421</B></FONT><br>");
    }
    // sinon on recupere le nombre de visiteur dans le fichier, on l'incremente de 1
    else
    {
    $fd = fopen("jeux.txt", "r"); // ouverture en lecture seulement
    $jx = fgets($fd, 255); // retourne la ligne courante jusqu'à soit un retour charriot, soit la fin du fichier, soit la longueur spécifiée.
    $jx++; // on icrémente la valeur du fichier
    print("<br><B><FONT COLOR=\"green\">" . $jx ." Visiteurs(euses) ont fait un 421</B></FONT><br>");
    fclose($fd); // on ferme le fichier
    $fd = fopen("jeux.txt", "w");

    if($Nombre!=0)
    {
    //Modification du script à partire d'ici
    $Rejouer=$Nombre++;

    // on affiche un message de bienvenue
    print ("<br>$login c'est la $Nombre ème fois que vous faite un 421...");
    echo'<br><INPUT TYPE="button" VALUE="Rejouer" onClick="window.location.reload(true)">';

    ?>
    <SCRIPT language="JavaScript">
    <!--
    if(confirm('BRAVO !!! Vous avez fait un 421, pour incrémenter vos points cliquer sur "Ok"'))
    document.location.href='action.php'
    -->
    </SCRIPT
    <?
    }

    // sinon, c'est que le cookie n'existe pas
    else
    {
    print "<br>C'est la 1ère fois que vous faite un 421...";
    echo '
    <table>
    <form action="cookienom.php" method="post">
    <tr>
    <td>Votre login</td>
    <td><input type="text" name="Flogin" size=42 maxlength=42>
    <input type="submit" value="Valider" >
    </td>
    </tr>
    </form>
    </table>';

    }
    }
    // on remet a jour le fichier avec la nouvelle valeur incrémentée du compteur.
    fputs($fd, $jx); // on écrit le nombre dans le fichier
    fclose($fd);
    }
    else
    {
    if (!is_file("jeux.txt"))
    {
    $jx=0;
    $fd = fopen("jeux.txt", "w+"); // ouverture en lecture et écriture (la fonction crée le fichier s'il n'existe pas)
    print"<br><FONT COLOR=\"red\">Perdu !!! </FONT>
    }
    else
    {
    print"<br><FONT COLOR=\"red\">Perdu !!! Mais </FONT> ";
    $fd = fopen("jeux.txt", "r"); // ouverture en lecture seulement
    $jx = fgets($fd, 255); // retourne la ligne courante jusqu'à soit un retour charriot, soit la fin du fichier, soit la longueur spécifiée.
    print("<FONT COLOR=\"red\">" . $jx ." visiteurs(euses) ont fait un 421</FONT><br>");
    }
    echo'<INPUT TYPE="button" VALUE="Rejouer" onClick="window.location.reload(true)">';
    fputs($fd, $jx); // on écrit le nombre dans le fichier
    fclose($fd);
    }
    ?>


  • On utilise 2 autres fichier php pour la sauvegarde des cookies:


    1. action.php
    2. <?
      $Rejouer=$Nombre+1;
      setcookie ("Nombre", $Rejouer ,time()+365*24*3600);
      ?>



    3. cookienom.php

    <?
    setcookie ("login", $Flogin ,time()+365*24*3600); //on crée le cookie
    $Rejouer=$Nombre+1;>
    setcookie ("Nombre", $Rejouer ,time()+365*24*3600);
    ?>


    Pour finir quelques liens sur le PHP.

    Visiter Uprate