Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1264 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1179833
zzarbi974
Posté le 19-08-2005 à 18:18:52  profilanswer
 

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
mood
Publicité
Posté le 19-08-2005 à 18:18:52  profilanswer
 

n°1179842
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 19-08-2005 à 18:28:05  profilanswer
 

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

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

:heink:  
 
 


---------------
intralase surgery [:cerveau love]
n°1179844
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 19-08-2005 à 18:28:41  profilanswer
 

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]
n°1179847
zzarbi974
Posté le 19-08-2005 à 18:36:54  profilanswer
 

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
n°1179852
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 19-08-2005 à 18:50:09  profilanswer
 

Citation :


je fait un test de nombre pour l'exemple


t'es sur? [:dawa]


---------------
intralase surgery [:cerveau love]
n°1179867
zzarbi974
Posté le 19-08-2005 à 18:57:27  profilanswer
 

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
n°1179891
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 19-08-2005 à 19:19:42  profilanswer
 

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


---------------
intralase surgery [:cerveau love]
n°1179901
zzarbi974
Posté le 19-08-2005 à 19:34:49  profilanswer
 

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


---------------
Chouette cette Inspiron 9300
n°1179908
omega2
Posté le 19-08-2005 à 19:58:02  profilanswer
 

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.

n°1179919
zzarbi974
Posté le 19-08-2005 à 20:23:55  profilanswer
 

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
mood
Publicité
Posté le 19-08-2005 à 20:23:55  profilanswer
 

n°1179925
omega2
Posté le 19-08-2005 à 20:32:22  profilanswer
 

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

n°1179933
zzarbi974
Posté le 19-08-2005 à 20:49:35  profilanswer
 

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
n°1181897
zzarbi974
Posté le 23-08-2005 à 00:28:22  profilanswer
 

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
n°1181903
esox_ch
Posté le 23-08-2005 à 00:31:19  profilanswer
 

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
n°1181974
omega2
Posté le 23-08-2005 à 09:00:33  profilanswer
 

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é.

n°1181980
sielfried
Posté le 23-08-2005 à 09:15:21  profilanswer
 

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


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1182330
zzarbi974
Posté le 23-08-2005 à 14:31:13  profilanswer
 

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
n°1182463
esox_ch
Posté le 23-08-2005 à 15:57:56  profilanswer
 

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
n°1182609
zzarbi974
Posté le 23-08-2005 à 17:14:44  profilanswer
 

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
n°1182992
zzarbi974
Posté le 24-08-2005 à 02:41:47  profilanswer
 

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
n°1183011
sielfried
Posté le 24-08-2005 à 08:56:08  profilanswer
 

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


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1183054
esox_ch
Posté le 24-08-2005 à 10:17:04  profilanswer
 

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
n°1183198
zzarbi974
Posté le 24-08-2005 à 12:06:12  profilanswer
 

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
n°1183434
zzarbi974
Posté le 24-08-2005 à 14:48:03  profilanswer
 

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
n°1183439
sielfried
Posté le 24-08-2005 à 14:54:10  profilanswer
 

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
n°1183489
zzarbi974
Posté le 24-08-2005 à 15:41:29  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[php] Trier par ordre alphabétique [RESOLU][Resolu]inclure du c dans du c++
Afficher le formulaire suivant en CSS (sans tableaux)[php] script trop long : pb d'execution ! [RESOLU]
[ resolu ] ContextMenu sur listboxFormulaire de modification avec champ file
[RESOLU] probleme compil opengl / glut sous linux[Resolu] Echappement des caracteres speciaux
[php] formulaire envoyé sur email[VB.NET] [ Resolu ]COnvertir Dataview en string
Plus de sujets relatifs à : Erreur bizarre - Besoin d'explication avec formulaire [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR