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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-COOKIE] Help me - a n'y rien comprendre :(

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP-COOKIE] Help me - a n'y rien comprendre :(

n°644352
KdZ'
Simple®
Posté le 16-02-2004 à 18:25:51  profilanswer
 

'lut les gens,
 
petit post vite fait avant que je pete un cable, ça va faire 2h que je suis sur ce pb de merde :o
 
Voila comment j'ecrit mes cookies :
 

Code :
  1. <?
  2. if(empty($_POST['Nom']) or empty($_POST['Prenom']) or empty($_POST['CodePostal']) or empty($_POST['Telephone']) or empty($_POST['SoAd']))
  3. {
  4.  setcookie('Nom',$_POST['Nom']);
  5.  setcookie('Prenom',$_POST['Prenom']);
  6.  setcookie('CodePostal',$_POST['CodePostal']);
  7.  setcookie('Telephone',$_POST['Telephone']);
  8.  setcookie('SoAd',$_POST['SoAd']);
  9.  header('Location: /contact.php?erreur=1');
  10. }
  11. else
  12. {
  13.  print('mail ok!'.$retourpp);
  14. }
  15. ?>


 
ça c'est la page de verification du form, et voila la page de form, avec je souhaite retrouver les infos deja tapées dans le form :
 

Code :
  1. <?
  2. function VerifValue($value)
  3. {
  4.  if(isset($_COOKIE[$value]))
  5.   {
  6.    $value = ('value="'.$_COOKIE[$value].'" ');
  7.    echo $value;
  8.   }
  9. }
  10. ?>


 
et j'appel ma fonction de cette maniere : <?php VerifValue("Nom" ); ?>


Message édité par KdZ' le 16-02-2004 à 18:47:57
mood
Publicité
Posté le 16-02-2004 à 18:25:51  profilanswer
 

n°644398
dropsy
et bonne chance surtout...
Posté le 16-02-2004 à 19:02:38  profilanswer
 

il est où le pbm :??:
un message d'erreur? un cookie qui se crée pas? qui se transforme en tortue mutante??

n°644414
KdZ'
Simple®
Posté le 16-02-2004 à 19:07:32  profilanswer
 

Ah autant pour moi, en fait le champs reste vide :(
 
je ne met qu'un valeur dans le champs Nom, envoyer, et rien...
 
Edit : dans mon formulaire de contact, j'ai essayer ça pour voir :
 

Code :
  1. echo $HTTP_COOKIE_VARS["Nom"];
  2. print_r($_COOKIE);


 
et voila ce que j'ai :
 
Notice: Undefined index: Nom in ...contact.php on line 46
Array ( )

 
Voila donc a croire que le cookie ne ce creer pas  [:mir45]


Message édité par KdZ' le 16-02-2004 à 19:09:21
n°644552
KdZ'
Simple®
Posté le 16-02-2004 à 20:58:04  profilanswer
 

:(

n°644555
Profil sup​primé
Posté le 16-02-2004 à 21:01:09  answer
 

essaye ca : dans ta fonction tu ajoutes  
global $_COOKIE;


Message édité par Profil supprimé le 16-02-2004 à 21:02:04
n°644565
KdZ'
Simple®
Posté le 16-02-2004 à 21:17:18  profilanswer
 

function VerifValue($value)
 {
  global $_COOKIE;
  if(isset($_COOKIE[$value]))
   {
    $value = ('value="'.$_COOKIE[$value].'" ');
    return $value;
   }
 }
 
 
ça marche toujours pas, franchement là j'y comprend rien :/
Et puis je suis en auto_global (config par default easyphp 1.7 avec magic quote à on)  [:mir45]


Message édité par KdZ' le 16-02-2004 à 22:39:11
n°644636
Profil sup​primé
Posté le 16-02-2004 à 22:38:56  answer
 

essaye ca, j'utilise cette fonction :
(a adapter pr toi je pense)
 
function lire_dans_cookie($cle) {
   
  global $_COOKIE;
  if (isset($_COOKIE[$cle])) {
    return urldecode($_COOKIE[$cle]);
  } else {
    return false;  
  }
}

n°644641
KdZ'
Simple®
Posté le 16-02-2004 à 22:41:34  profilanswer
 

Je c'est pas mais, mais ce qui m'enerve c'est que mon code est censé etre correct, et pourtant ça ne marche pas...
 
J'ai evidemment testé sous plusieurs browsers :(
 
Putain c dingue ça :o

n°644841
KdZ'
Simple®
Posté le 17-02-2004 à 00:53:41  profilanswer
 

:hello:

n°644856
naceroth
Posté le 17-02-2004 à 01:25:03  profilanswer
 

Euh, comme on n'a pas le code du formulaire, je vais juste faire une supposition :
 
Tu testes si un des différents $_POST est vide. Si oui, tu te sers des valeurs (alors que l'une au moins est vide) pour la balancer dans un cookie...Y a pas un truc qui te semble louche dans la méthode ? :)
 
(et pourquoi utiliser des cookies, à priori ce serait plutôt le boulot des sessions ça non ?)

mood
Publicité
Posté le 17-02-2004 à 01:25:03  profilanswer
 

n°644868
KdZ'
Simple®
Posté le 17-02-2004 à 01:48:04  profilanswer
 

Tu veux du code ? voila :D
page contact (form)

Code :
  1. <?php
  2. if(isset($_GET['erreur']))
  3. {
  4.  $erreur = $_GET['erreur'];
  5. }
  6. if(!empty($erreur))
  7. {
  8.  switch($erreur)
  9.   {
  10.    case 1:
  11.     print('<b>ERREUR : Un ou plusieurs champs obligatoires n\'ont pas été remplies !</b><br /><br />');
  12.    break;
  13.   }
  14. }
  15. function VerifValue($value)
  16. {
  17.  if(isset($_COOKIE[$value]))
  18.   {
  19.    $value = ('value="'.$_COOKIE[$value].'" ');
  20.    echo $value;
  21.   }
  22. }
  23. // print_r($_COOKIE);
  24. ?>
  25. <table>
  26. <form action="/scripts/VerifFormContact.php" name="FormContact" method="post" />
  27. <tr>
  28. <td><b>Nom :</b></td>
  29. <td><input type="text" name="Nom" <?php VerifValue('Nom'); ?>/></td>
  30. </tr>
  31. ...je vous passe le code basic des champs...
  32. <tr>
  33. <td colspan="2"><input type="submit" value="Envoyer" /></td>
  34. </tr>
  35. </form>
  36. </table>


 
et la page de verif :
 

Code :
  1. include('../includes/config_pages.php');
  2. if(empty($_POST['Nom']) or empty($_POST['Prenom']) or empty($_POST['CodePostal']) or empty($_POST['Telephone']) or empty($_POST['SoAd']))
  3. {
  4.  setcookie('Nom',$_POST['Nom']);
  5.  setcookie('Prenom',$_POST['Prenom']);
  6.  setcookie('CodePostal',$_POST['CodePostal']);
  7.  setcookie('Telephone',$_POST['Telephone']);
  8.  setcookie('SoAd',$_POST['SoAd']);
  9.  header('Location: /contact.php?erreur=1');
  10. }
  11. else
  12. {
  13.  print('ok');
  14. }


 
 
Voila, je suis d'accord avec toi la methode est stupide en elle meme, mais bon, si la valeur est vide, le cookie aussi donc pas bien grave, en fait je cherche un moyen pour renvoyer les valeurs dans le form  [:mir45]  
 
S'il te vient l'idée de ma balancer une autre methode (certainemen mieux) j'aimerai comprendre mon erreur ;)
 
Thx ;)


Message édité par KdZ' le 17-02-2004 à 01:50:44
n°644884
naceroth
Posté le 17-02-2004 à 02:45:31  profilanswer
 

KdZ' a écrit :


Voila, je suis d'accord avec toi la methode est stupide en elle meme, mais bon, si la valeur est vide, le cookie aussi donc pas bien grave


 
Sûrement pas, si la valeur est vide, le cookie est supprimé, nuance.
 
Bon, a part ça, j'ai recopié ton code tel quel, chez moi ça fonctionne au poil, donc ce serait plutôt du côté de la config d'easyphp qu'il faudrait chercher la cause...Tu as essayer en mettant les autres arguments facultatifs de setcookie (path et domain entre autres) ?

n°644994
KdZ'
Simple®
Posté le 17-02-2004 à 10:05:35  profilanswer
 

Ca fonctionne chez toi ? :eek:
 
Arf, et si tu essaye de supprimer un cookie qui n'existe pas ça provoque une erreur ? parce que ça peut etre le cas là.
thx ;)

n°645752
naceroth
Posté le 17-02-2004 à 17:04:14  profilanswer
 

Ouais (bon, ok, c'est pas exactement le même code, y a pas le include de la page de vérif :D).
 
Par contre, je l'avais pas vu, mais ta page de vérif se trouve pas dans le même répertoire que le form apparement, y aurait pas un problème avec les path et domain là ? (si qqn se demande pourquoi on utilise les sessions pour ce genre de truc :D)

n°646193
KdZ'
Simple®
Posté le 17-02-2004 à 23:40:12  profilanswer
 

Bon j'ai laisser tomber :D
j'ai fait directement un header() en repassant dans l'url les values des form passé en get, et ensutie dans le form, je recup les données passées en get (si y'en à)
 
ça marche tres bien :)
 
Petite question, si j'ai un gros texte (style textarea) je ne pense pas que cette merthode soit tres optimisée, vu que une url est limitée en caracteres (combien deja ?) alors, par simple curiosité, quelle serait la bonne methode ?

n°646414
naceroth
Posté le 18-02-2004 à 02:02:22  profilanswer
 

KdZ' a écrit :


j'ai fait directement un header() en repassant dans l'url les values des form passé en get, et ensutie dans le form, je recup les données passées en get (si y'en à)


 
Ouais, sauf que s'il y a un mot de passe qui est trasmis en clair  :non:  

KdZ' a écrit :


Petite question, si j'ai un gros texte (style textarea) je ne pense pas que cette merthode soit tres optimisée, vu que une url est limitée en caracteres (combien deja ?) alors, par simple curiosité, quelle serait la bonne methode ?


 
Les sessions, définitevement (elles l'étaient déjà à la base donc bon =))


Message édité par naceroth le 18-02-2004 à 02:02:52
n°647296
KdZ'
Simple®
Posté le 18-02-2004 à 15:39:08  profilanswer
 

Pas de mot de passe...
Mais je vais me renseigner sur les sessions, rapidemment, tu peux m'expliquer l'avantage que j'ai a utiliser les sessions plutot que cette methode ?
 
Je ne repasse donc plus mes variables via le header pour le retour ?

n°647460
naceroth
Posté le 18-02-2004 à 17:00:39  profilanswer
 

On va faire simple :
 
Les cookies sont stockés chez le client, trois gros désavantages :
- modifiable à volonté directement par l'utilisateur
- peut être refusé par l'utilisateur
- si on n'y prend pas garde, peut être toujours présent sur l'ordinateur de ton utilisateur après qu'il ait passé ton formulaire => pas top si il y a des données sensibles genre login/pass...
 
Les sessions fonctionnent grosso modo comme les cookies, sauf qu'elles sont stockées sur le serveur, qu'elles ont une durée de vie beaucoup plus courte (quoique 3h quand même par défaut).
 
Bon, ce n'est pas non plus la perfection ultime en matière de sécurité, mais ça demande déjà plus de connaissances

n°647601
KdZ'
Simple®
Posté le 18-02-2004 à 18:32:38  profilanswer
 

Et c'est quoi la methode de "perfection ultime en matière de sécurité" ? :D

n°647642
naceroth
Posté le 18-02-2004 à 19:00:27  profilanswer
 

ça n'existe pas :D

n°647651
KdZ'
Simple®
Posté le 18-02-2004 à 19:03:36  profilanswer
 

C'est ce que j'attendait comme reponse ;)
 
 
Bon alors on va voir pour les sessions :)

mood
Publicité
Posté le   profilanswer
 


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

  [PHP-COOKIE] Help me - a n'y rien comprendre :(

 

Sujets relatifs
[PHP] utilisation de polices TTF dans les images [Résolu][PHP MYSQL] Comment font les sites comme royaumes pour...
[PHP]connaitre le nom du répertoire courant[PHP] Problème avec imap_get_quota
appli PHP en entrée, pages HTML en sortie[PHP] interrogation IMPA très lente?
Gros pépin avec PHP sous Mandrake 9.1[PHP] Authentification avec cookies...?
HELP !! segmentation fault... besoin d'aideHELP !! segmentation fault... besoin d'aide
Plus de sujets relatifs à : [PHP-COOKIE] Help me - a n'y rien comprendre :(


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