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 !

11 réponses

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
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
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
tu la fait comment ta redirection ?
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
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
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
vindicien Messages postés 136 Statut Membre 33
 
t'as essayé de mettre ton bloc php en tout premier ?
0
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
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