Erreur bizarre - Besoin d'explication avec formulaire [Résolu]

Erreur bizarre - Besoin d'explication avec formulaire [Résolu] - PHP - Programmation

Marsh Posté le 19-08-2005 à 18:18:52    

Salut,
 
je suis en train de faire un formulaire avec session, avec une gestion d'erreur en php et non pas en javascript comme il y en a plein sur le net
donc le code :
 
Formualire.php :
 

Code :
  1. <? session_start();
  2. //Vérifie si le formulaire a déja été valider ou pas  
  3. if(!isset($_SESSION['contact']['ok']) || !$_SESSION['contact']['ok'])
  4.    $temp='lala';//si Non alors utilise les variables temporaire  
  5. else
  6.    $temp='contact';//si oui utilise les variables déja enregistré  
  7. ?>
  8. <form action="page.php" method="post">
  9.    <input name="code" type="text" id="code" value="<? if(isset($_SESSION[$temp]['code'])) echo $_SESSION[$temp]['code'];?>" />
  10.    <input type="submit" name="Submit" value="Envoyer" />
  11. </form>
  12. **** Pour débuggage ****
  13. <p>$_SESSION['contact']['ok']=<? echo @$_SESSION['contact']['ok'];?></p>
  14. <p>$_SESSION['temp']['code']=<? echo @$_SESSION['temp']['code'];?></p>
  15. <p>$temp=<? echo @$temp;?></p>
  16. <p>$_SESSION = <? print_r($_SESSION);?> </p>


 
 
Page.php :

Code :
  1. <? session_start();
  2. //stock la variable temporairement  
  3. $_SESSION['lala']['code']=addslashes($_POST['code']);
  4. //test le formulaire  
  5. if(isset($_POST['code']) && $_POST['code']!=0 && (int)$_POST['code'] )
  6. {
  7.    $_SESSION['contact']['code']=$_POST['code'];
  8.    $_SESSION['contact']['ok']=true;
  9.    //redirection vers autre page  
  10. }
  11. else
  12.   header('Location: formulaire.php');
  13. ?>
  14. **** Pour Débuggage ****
  15. <p>$_SESSION = <? print_r($_SESSION);?> </p>


 
Eh bien en local ca fonctionne mais dès que je le met sur free, si je tape autre chose que de nombre il retourne sur le formulaire (ce qui est normal),
mais il m'affiche "t" au  lieu de ce que j'avais taper précédemment !!!
Là je comprend pas...
 
Voici le lien http://zecreations.free.fr/speedminton/formulaire.php


Message édité par zzarbi974 le 24-08-2005 à 02:38:46

---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 19-08-2005 à 18:18:52   

Reply

Marsh Posté le 19-08-2005 à 18:28:05    

encore toi? le rigolo qui voulait coder un commerce electronique? [:dawa]
 
 
 
 

Code :
  1. (int)$_POST['pseudo']

:heink:  
 
 


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 19-08-2005 à 18:28:41    

erreur de chez HFR: double post. le serveur n'effectue plus de redirection après submit :sweat:


Message édité par pmusa le 19-08-2005 à 18:30:47

---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 19-08-2005 à 18:36:54    

pmusa a écrit :

encore toi? le rigolo qui voulait coder un commerce electronique? [:dawa]
 
 
 
 

Code :
  1. (int)$_POST['pseudo']

:heink:


Oui encore moi!
et je fait un test de nombre pour l'exemple, c'est plus simple...
 
Et pour mon commerce électronique je le finirai bien, j'ai trouver bcp d'info, et un autre forum ou quelqu'un m'a répondu positivement !


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 19-08-2005 à 18:50:09    

Citation :


je fait un test de nombre pour l'exemple


t'es sur? [:dawa]


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 19-08-2005 à 18:57:27    

pmusa a écrit :

Citation :


je fait un test de nombre pour l'exemple


t'es sur? [:dawa]


En fait j'ai écrit le code quand j'ai écrit le sujet, donc j'aurais pu aussi à la place faire un test de longueur ou une regex ou n'importe quoi d'autre, c'est le premier truc qui m'ai passé par la tête !
et comme je sais que les gens qui vont essayer il vont mettre un pseudo et donc que ca va fonctionner normalement, donc j'ai préférer faire ce test comme ça je suis sur qu'il vont bien voir le même  problème que moi.
 
edit : Je viens de constater un truc, lorsqu'on qu'on valide un nombre par exemple 123, donc ca fonctionne normalement, mais quand on fait précédent il est sensé afficher 123 vu que la varible _SESSION['contact']['ok'] est à vrai et que 123 est bien dans _SESSION['contact']['pseudo'] eh bien il affiche 1


Message édité par zzarbi974 le 19-08-2005 à 19:02:43

---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 19-08-2005 à 19:19:42    

is_int($_POST['pseudo']) c'est pas mieux pour tester si c'est un entier?


---------------
intralase surgery [:cerveau love]
Reply

Marsh Posté le 19-08-2005 à 19:34:49    

Surement je les utilise rarement, mais ça change rien a mon problème


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 19-08-2005 à 19:58:02    

un input de type pseudo ??????? Gnii !!!
C'est quoi comme version d'html ou d'xhtml ça ????
En tout cas, moi, j'ai jamais vu ça. Par contre, je conais les input de type text.

Reply

Marsh Posté le 19-08-2005 à 20:23:55    

omega2 a écrit :

un input de type pseudo ??????? Gnii !!!
C'est quoi comme version d'html ou d'xhtml ça ????
En tout cas, moi, j'ai jamais vu ça. Par contre, je conais les input de type text.


Oups merci, Voilà c'est corrigé dsl j'avais pas vu !
Mais ca change toujours rien !


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 19-08-2005 à 20:23:55   

Reply

Marsh Posté le 19-08-2005 à 20:32:22    

Zut.
Au fait, free n'a pas réglé ses serveurs avec les addslashes automatiques?
Je continus à d'autres causes possible.

Reply

Marsh Posté le 19-08-2005 à 20:49:35    

omega2 a écrit :

Zut.
Au fait, free n'a pas réglé ses serveurs avec les addslashes automatiques?
Je continus à d'autres causes possible.


Oui je sais, mais je ne crois pas que ce soit çà le problème j'ai essayé sur un autre serveur, qui lui est réglé avec addslahes, mais c pareil !
Y a que en local que ça fonctionne


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 00:28:22    

Je croiyais qu'il y avait plein d'expert dans ce forum, pour dire qu'on est pas expérimenté y en a plein mais pour aider...


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 00:31:19    

J'veux bien t'aider, parcontre ça te les briserait d'editer le truc laba en haut a fur et a mesure qu'on te dit ou ça plante? Pour qu'on y voit un peu plus clair


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-08-2005 à 09:00:33    

Même les experts ne conaissent pas tout.
T'imagines la masse de conaissance que ca représente de tout conaitre de php avec l'incidence de tous les réglages du php.ini sur toutes les fonctions?
J'en ai presque la tête qui tourne rien qu'en m'imaginant ça. ;)
 
Ceci dit, pour ton probléme, moi, je suis dépassé.

Reply

Marsh Posté le 23-08-2005 à 09:15:21    

On peut pas tester ton truc en ligne, y'a du warning.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 23-08-2005 à 14:31:13    

sielfried a écrit :

On peut pas tester ton truc en ligne, y'a du warning.


Ca c'est pas de ma faute c'est free qui plane...
 
Bon sinon c'est bon j'ai trouver la solution...
Aparrament on ne peut pas utiliser la variable de session : $_SESSION['temp']
Elle doit être surêment définie ailleur ou tout juste interdite d'utilisation...
Y a vraiment, tojour est-il que je ne savais pas ça...
Donc si on remplace dans le code $_SESSION['temp'] par $_SESSION['lala'] par exemple ben sa fonctionne...
 
Comme free déconne sur les sessions je sais pas trop pkoi, vous pouvez le tester ici :
http://www.speedminfrance.fr/formulaire.php


Message édité par zzarbi974 le 23-08-2005 à 14:34:03

---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 15:57:56    

Pour voir si c'est defini ailleur tu fait un print_r($_SESSION)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-08-2005 à 17:14:44    

esox_ch a écrit :

Pour voir si c'est defini ailleur tu fait un print_r($_SESSION)


DAns mon premier post j'ai remis a jour le code, et j'ai rajouter des ligne de "débugage" pour voi ce qu'il y a dans les varaible et je fais bien un print_r($_SESSION)
et apparament c'est vide cependant c'est ptet juste qu'on a pas le droit d'utiliser un variabble de session qui se nomme temp...
A part ça je vois pas...
Ce serait bien de savoir quand même pkoi ça pose problème...


Message édité par zzarbi974 le 23-08-2005 à 17:16:25

---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 24-08-2005 à 02:41:47    

J'ai enfin trouvé c'est pas compliqué en fait le serveur "confond" à sa façon la variable $temp et la variable $_SESSION['temp'].
Car j'ai utilisé $_SESSION['pseudo'] et plus haut sur la meme page j'ai mis pseudo="ahejcpaskoi"; et la sa m'a fait les même erreurs
 
Enfin bref qui connaissait cette erreur ???


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 24-08-2005 à 08:56:08    

C'est normal si register_globals est à on dans la configuration php.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-08-2005 à 10:17:04    

Vire le @ avant $_SESSION et vire le (int). On est en php, il y a pas de castage possible


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-08-2005 à 12:06:12    

sielfried a écrit :

C'est normal si register_globals est à on dans la configuration php.


En fait oui j'avais pas pensé que le serveur était encore configuré comme ça...


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 24-08-2005 à 14:48:03    

esox_ch a écrit :

Vire le @ avant $_SESSION et vire le (int). On est en php, il y a pas de castage possible


J'avais oublias de te répondre...
Si je vire le @ dés qu'on arrive sur la page, vu que la variable nexiste pas il va me raporter une erreur...
Enfin si le serveur est configuré correctemment... cad avec register_gloab = off et error_reporting = E_ALL
 
Au fait pour l'histoire de mon panier il est en béta-test ici http://www.speedminfrance.fr/panier/, il y a encore plein d'erreur de français...
Et il test pas toute les entré comme il faut j'avais un autre truc en préparation, mais sinon il fonctionne correctement!


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 24-08-2005 à 14:54:10    

zzarbi974 a écrit :

J'avais oublias de te répondre...
Si je vire le @ dés qu'on arrive sur la page, vu que la variable nexiste pas il va me raporter une erreur...
Enfin si le serveur est configuré correctemment... cad avec register_gloab = off et error_reporting = E_ALL


 
Bah vérifie qu'elle existe avec isset().


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-08-2005 à 15:41:29    

Ben en fait au début de ma page y avait çà :

Code :
  1. if(!isset($_SESSION['contact']['ok']) || !$_SESSION['contact']['ok']) 
  2.    $temp='temp';//si Non alors utilise les variables temporaire   
  3. else 
  4.    $temp='contact';


 
et esnuite plus loin dans la page je fais afficher :
echo $_SESSION[$temp]['code'];
 
Donc comme en haut je met $temp='temp';
Et ensuite jlui dit d'afficher $_SESSION['temp']['code'] eh ben la sa fait conflit...
Donc en fait c'est moi qui affecte 'tempt' à $temp ....
Enfin bref c'est réglé maintenant Merci pour votre aide


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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