Page 1 sur 1

Compteur

Posté : 05 nov. 2013, 23:47
par Benji861905
Mon code de compteur compte le nombre de clique mais ne redirige pas... HELP svp
<?php
 
    $id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
    // ouverture de connexion mysql
    $usr = '...';
    $db = '...';
    $pwd = '...';
    $host = '...';
 
    mysql_connect($host, $usr, $pwd);
    mysql_select_db($db);
     
    $req = sprintf("UPDATE liens SET compteur=(compteur +1) WHERE id='%d';",$id);
 
    if (mysql_query($req))
    {
        // compteur incrémenté, on récupère l'URL et on envoie la page
        $req_url = sprintf("SELECT url FROM liens WHERE id='%d';",$id);
 
        $url = mysql_query($req_url);
		if (mysql_num_rows($url) == 1);
        {
            header("Location : ".$url);
        };
    };
	var_dump($id, $req, $req_url, $url);
    mysql_close( );
?>

Re: Compteur

Posté : 06 nov. 2013, 10:02
par sirakawa
Le manuel dit :"N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include ou require, et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards."

Re: Compteur

Posté : 06 nov. 2013, 10:07
par Mazarini
Hypothèse 1 : tu ne passes pas par l'appel de la fonction header()
Hypothèse 2 : $url ne contient pas ce qu'il faut.

edit :
Hypothèse 3 : cf sirakawa
Mais je parie sur l'hypothèse 2

Re: Compteur

Posté : 06 nov. 2013, 22:33
par Benji861905
Il y a bien quelque chose dans $url
Image

Il n'y a pas de fonctions html avant mon code comme tu peur le voir :)

Re: Compteur

Posté : 07 nov. 2013, 18:44
par Benji861905
Merci, voila le bon code:
<?php
 
    $id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
    // ouverture de connexion mysql
    $usr = '...';
    $db = '...';
    $pwd = '...';
    $host = '...';
 
    mysql_connect($host, $usr, $pwd);
    mysql_select_db($db);
 
    $req = sprintf("UPDATE liens SET compteur=(compteur +1) WHERE id='%d';",$id);
 
    if (mysql_query($req))
    {
        // compteur incrémenté, on récupère l'URL et on envoie la page
        $req_url = sprintf("SELECT url FROM liens WHERE id='%d';",$id);
 
        $url = mysql_query($req_url);
                if (mysql_num_rows($url) == 1)
        {
            $data = mysql_fetch_array($url);
			header("Location: http://".$data['url']);
        };
    };
        var_dump($id, $req, $req_url, $url);
    mysql_close( );
?>