Comment executer cela en PHP ?

lilburrows Messages postés 690 Statut Membre -  
lilburrows Messages postés 690 Statut Membre -
Bonsoir !
Je vous explique, j'ai une page et je veux que la 40ème personne qui la visite soit redirigée vers une autre page.
C'est à dire en cliquant sur le lien *lien1* les 39 premières personnes vont voir la page *page1*, et la 40ème personne qui clique sur ce lien sera redirigée vers une autre page *page2*.

Je ne sais pas du tout comment interpréter ceci, en plus de cela je suis un débutant mais je sais exactement ce que je veux. Je remercie toutes les personnes qui prennent le temps de m'aider.
Bonne soirée à tous !
Configuration: Windows Vista
Firefox 3.5.4

11 réponses

  1. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    tu peut faire comme un compteur de visite tout simple , en utilisant un fichier texte ici il s'appele clic.txt et il est dans le meme repertoire

    $fp = fopen ("visite.txt", "r+"); 
     //a+ positionne a la fin du fichier 
     $fda= fopen ("clic.txt", "a+");  
      
     $nb_visites = fgets ($fp, 11);  
    //$nb_visites sera ta variable à prendre en compte pour rediririger ton visiteur
     $nb_visites = $nb_visites + 1;  
      fseek ($fp,0); 
     fputs ($fp, $nb_visites);  
     //ecrire dans le fichier texte avec un retour chariot chr(10)..
     fputs ($fda, $text)).chr(10); 
    //on ferme
    fclose ($fp); 
    fclose ($fda);
    

    ensuite tu peut rediriger comme ça
    en php
    if($nb_visites==40)
    {
    header('loaction:tapge');
    //a voir si tu veut remettre a zero ton fichier clic txt
    }
    

    ou alors en javascript
    if($nb_visites==40)
    {
    echo'<script type="javascript>
    window.location.replace('tapage');
    </script>';
    
    }
    
    0
  2. lilburrows Messages postés 690 Statut Membre 61
     
    Merci lewis34 mais entre temps on m'as aiguillé sur une autre solution semblable à la tienne, j'ai mit ceci :

    <?php
    $monfichier = fopen('compteur.txt', 'r+');
    
    $pages_vues = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
    if($pages_vues == 39)
    header('Location: dsoneiwin_v.php');
    $pages_vues++; // On augmente de 1 ce nombre de pages vues
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $pages_vues); // On écrit le nouveau nombre de pages vues
    
    fclose($monfichier);
    ?>


    Et j'ai créé un "compteur.txt" tout fonctionne mais je ne suis pas redirigé, saurais-tu pourquoi ?
    Merci encore !
    0
  3. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    tu la fait comment ta redirection ?
    0
  4. lilburrows Messages postés 690 Statut Membre 61
     
    if($pages_vues == 39)
    header('Location: dsoneiwin_v.php');

    Dès que le nombre est de 39 je veux qu'il me redirige mais ça fonctionne pas
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    ça ne fonctionne pas ?? comment ça..

    a tu des erreurs ?
    si elle ne s'affiche pas regarde dans le fichier error.log de ton apache

    a tu essayé en javascript ?
    0
  7. lilburrows Messages postés 690 Statut Membre 61
     
    Aucune erreur, ça ne me redirige pas pourtant à première vu le code est bon, j'ai une autre redirection php que j'ai installé sur un autre page (c'est un formulaire qui redirige vers une page de remerciement) et j'ai le même problème.

    C'est bizarre pourtant le formulaire je l'ais fait sur un générateur et il fonctionne à merveille ! Si tu es une autre idée, si c'est faisable en mélangeant du javascript ou autre je veux bien.

    Merci encore
    0
  8. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    est ce qu'avant ton header il y a du code qui s'affiche par hasard 'style echo'qqch..' ?
    0
  9. vindicien Messages postés 136 Statut Membre 33
     
    Un header doit être tout en haut de ta page. Ca signifie qu'avant tu ne dois avoir aucun code HTML, et pas non plus de echo etc.
    0
  10. lilburrows Messages postés 690 Statut Membre 61
     
    Non ca reste seulement sur la même page, et oui c'est tout en haut comme ceci...

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    	
    <?php
    $monfichier = fopen('compteur.txt', 'r+');
    
    $pages_vues = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
    if($pages_vues == 39)
    header('Location: dsonei_0211.php'); // redirection
    $pages_vues++; // On augmente de 1 ce nombre de pages vues
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $pages_vues); // On écrit le nouveau nombre de pages vues
    
    fclose($monfichier);
    ?>
    
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    
    ETC...
    0
    1. vindicien Messages postés 136 Statut Membre 33
       
      t'as essayé de mettre ton bloc php en tout premier ?
      0
  11. lilburrows Messages postés 690 Statut Membre 61
     
    Non mais il y a pas de raison puisque les autres "commandes" marchent, c'est juste la redirection
    0
  12. lilburrows Messages postés 690 Statut Membre 61
     
    Ca y est ce code fonctionne...

    <?php
    $monfichier = fopen('compteur.txt', 'r+');
    
    $pages_vues = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
    if($pages_vues == 39)
    {
    header('Location : dsonei_0211.php');
    exit();
    }
    $pages_vues++; // On augmente de 1 ce nombre de pages vues
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $pages_vues); // On écrit le nouveau nombre de pages vues
    
    fclose($monfichier);
    ?>


    Sauf que au moment de la redirection au lieu de changer de page il m'affiche une page blanche
    0