[PHP] probleme avec if else + cookies

probleme avec if else + cookies [PHP] - PHP - Programmation

Marsh Posté le 19-03-2003 à 14:38:15    

J'ai un prbleme que je comrend pas trop la...
 
J'ai fais un truc dans ce style :
 

Code :
  1. if(isset($ck))
  2.    { incrementer le tableau... }
  3. else
  4.    { setcookie("ck"...)


 
mais il y a un blem il me trouve une erreur dans "{ incrementer le tableau... }" alors que le cookie n'existe pas encore... j'ai verifier, ce cookie n'existe pas alors il ne devrait pas executer cette partie du script nan ?
 
Aidez moi svp, je comprend pas la, je devrait pas utiliser isset ?


Message édité par Big-Foot le 19-03-2003 à 14:40:40
Reply

Marsh Posté le 19-03-2003 à 14:38:15   

Reply

Marsh Posté le 19-03-2003 à 15:00:28    

si il te trouve une erreur, c'est qu'il doit y en avoir une :whistle:  
 
maintenant si tu nous donnais cette erreur avec le code qui va avec, peut-être qu'on pourrait en dire plus ;)

Reply

Marsh Posté le 19-03-2003 à 15:19:10    

mais en fait si il y a une erreur, c'est car il peu pas prendre une valeur ki est dans le cookie en fait il doit se connecter a la bdd et inscrir kek chose dans la table dans la ligne ki a la valeur qui est dans le cookie, alors en fait si il y avait le cookie il y aurait pas d'erreur...

Reply

Marsh Posté le 19-03-2003 à 15:27:57    

$ck est bien defini puisque isset renvoie 1 ... si tu affichais sa valeur, tu comprendrais pe mieux .  :pfff: , on peut pas deviner ce que tu veux faire ...

Reply

Marsh Posté le 19-03-2003 à 15:46:17    

mais si le cookie n'existe pas, il est creer a la fin du script, il devrait renvoyé 0 non ?

Reply

Marsh Posté le 19-03-2003 à 15:51:54    

dabord maintenant en php, on utlise $_GET, $_POST ...
 
if (isset($_COOKIE["ck"]))
 utiliser cookie
else
 creer cookie
 
car dans ton cas, ck est deja defini je ne sais ou.

Reply

Marsh Posté le 19-03-2003 à 16:06:15    

Big-Foot a écrit :

mais en fait si il y a une erreur, c'est car il peu pas prendre une valeur ki est dans le cookie en fait il doit se connecter a la bdd et inscrir kek chose dans la table dans la ligne ki a la valeur qui est dans le cookie, alors en fait si il y avait le cookie il y aurait pas d'erreur...


je comprend rien là :sarcastic:  
 
mais si tu as une erreur de code dans le then, c'est normal qu'il te crée pas le cookie puisque les entêtes sont renvoyées pour afficher le message d'erreur dont tu parles dans ton premier post:

il me trouve une erreur dans "{ incrementer le tableau... }"


 
Quel est ce message d'erreur?

Reply

Marsh Posté le 19-03-2003 à 18:43:24    

le code (un peu racourci)
 

Code :
  1. mysql_connect("localhost", "root", "" );
  2. mysql_select_db("bdd" );
  3. if (isset($ck_dz_visitor))
  4.         {
  5.  mysql_query("UPDATE counter-cookie SET nb_visits = nb_visits+1 WHERE comp_name = $ck_dz_visitor" );
  6. }
  7. else         {
  8.          setcookie("ck_dz_visitor", $comp_name, time() +3000 ,"/" );
  9.         }
  10.   mysql_close();


 
l'erreur :
 

Citation :

Parse error: parse error, unexpected T_STRING in c:\program files\easyphp\www\1\counter.php on line 42


 
ce qui correspond dans le script ici a :

Code :
  1. mysql_query("UPDATE counter-cookie SET nb_visits = nb_visits+1 WHERE comp_name = $ck_dz_visitor" );


Reply

Marsh Posté le 19-03-2003 à 19:22:27    

je me reexplique : pourquoi il detekt la fonction du cookie, alors que celui ci n'existe pas ?

Reply

Marsh Posté le 19-03-2003 à 19:45:07    

Big-Foot a écrit :

je me reexplique : pourquoi il detekt la fonction du cookie, alors que celui ci n'existe pas ?


 
il te signale que tu as une erreur dans ton code... même si il doit pas passer par ce bout de code, c'est comme ça [:proy] (Tout ton script doit être nickel, même les bouts non utilisés)
 
essaye de mettre la ligne 42 en commentaire (parfois l'erreur est une ou deux lignes au dessus de celle indiquée par le message ;) )

Reply

Marsh Posté le 19-03-2003 à 19:45:07   

Reply

Marsh Posté le 19-03-2003 à 19:52:12    

mais c'est normal qu'il y ai une erreur, car si le cookie n'existe pas encore, il ne peu pas trouver le nom du pc dans le tableau...
ou bien est ce qu'il me parle d'une erreur de syntaxe ?

Reply

Marsh Posté le 19-03-2003 à 19:59:15    

j'ai mi la ligne 42 en commentaire, alors il me trouve une erreur a la lign 43 ou il y que ca :  }
 
apres quand j'ai mi tous ce qui se trouve dans cette partie du script en commentaire, il trouve une erreur la :  
 setcookie("ck_dz_visitor", $comp_name, time() +3000 ,"/" );

Reply

Marsh Posté le 19-03-2003 à 20:05:52    

Big-Foot a écrit :

j'ai mi la ligne 42 en commentaire, alors il me trouve une erreur a la lign 43 ou il y que ca :  }
 
apres quand j'ai mi tous ce qui se trouve dans cette partie du script en commentaire, il trouve une erreur la :  
 setcookie("ck_dz_visitor", $comp_name, time() +3000 ,"/" );


 
donnes plutot les lignes 40 & 41 (php signale l'erreur quand il la trouve... donc elle est soit à la ligne indiquée soit une ou deux lignes au-dessus ;) )
 
c'est la même erreur??


Message édité par dropsy le 19-03-2003 à 20:06:29
Reply

Marsh Posté le 22-03-2003 à 17:02:50    

deso de pas avoir repondu rapidement...
 
alors voila les environ de l'erreur (en commentaire n°de la ligne 42) :
 

Code :
  1. if (isset($ck_dz_visitor))      {
  2. if (exist_ip == FALSE)
  3.  {
  4.  ip_temp_and_visit()
  5.  mysql_query("UPDATE counter-cookie SET nb_visits = nb_visits+1 WHERE comp_name = $ck_dz_visitor" ); // 42 mysql update -- ajoute +1 (tab cookie, type - nb_visits)  
  6.  }
  7. }


 
quand j'ai mis tous le contenu du 2eme if si dessus en commentaire, il me trouve erreur ligne 51, et c'est le meme type d'erreur :
 

Citation :

Parse error: parse error, unexpected T_STRING in c:\program files\easyphp\www\1\counter.php on line 51


 
ma lign 50 / 51 :
 

Code :
  1. else
  2. {


 
mais de toute facon si il y a une erreur au debut il y en aura apres, pask mon scrip il fonction(devrait) comme ca :
if (cookie existe) ajouter donné
else creer cookie


Message édité par Big-Foot le 22-03-2003 à 22:02:47
Reply

Marsh Posté le 23-03-2003 à 14:46:00    

alors vous voyez pas une erreur de syntaxe ou meme de logique ?
aide moi svp, parsque moi je trouve rien...


Message édité par Big-Foot le 23-03-2003 à 16:56:51
Reply

Marsh Posté le 25-03-2003 à 18:39:52    

help please

Reply

Marsh Posté le 25-03-2003 à 19:51:31    

ouvre les yeux !!
 
{
     if ($exist_ip == FALSE)
      {
        ip_temp_and_visit() ;

Reply

Marsh Posté le 25-03-2003 à 19:53:58    

Tu peux refaire un petit speech précis avec ton problème et ton code... parce que dans le fouilli des messages, on comprend rien!

Reply

Marsh Posté le 26-03-2003 à 13:17:23    

:hello: merci, deosolé j'avais beaucoup modifier et simplifier ce code alors j'aivais pas remarqué cette erreur. En tout cas maintenent il "fonctionne", il fait pas encore la moitié de ce que je lui demande, mais en tous cas il n'affiche pas d'erreur

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed