Help me - a n'y rien comprendre :( [PHP-COOKIE] - PHP - Programmation
Marsh Posté le 16-02-2004 à 19:02:38
il est où le pbm
un message d'erreur? un cookie qui se crée pas? qui se transforme en tortue mutante??
Marsh Posté le 16-02-2004 à 19:07:32
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 :
|
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
Marsh Posté le 16-02-2004 à 21:01:09
essaye ca : dans ta fonction tu ajoutes
global $_COOKIE;
Marsh Posté le 16-02-2004 à 21:17:18
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)
Marsh Posté le 16-02-2004 à 22:38:56
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;
}
}
Marsh Posté le 16-02-2004 à 22:41:34
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
Marsh Posté le 17-02-2004 à 01:25:03
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 ?)
Marsh Posté le 17-02-2004 à 01:48:04
Tu veux du code ? voila
page contact (form)
Code :
|
et la page de verif :
Code :
|
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
S'il te vient l'idée de ma balancer une autre methode (certainemen mieux) j'aimerai comprendre mon erreur
Thx
Marsh Posté le 17-02-2004 à 02:45:31
KdZ' a écrit : |
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) ?
Marsh Posté le 17-02-2004 à 10:05:35
Ca fonctionne chez toi ?
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
Marsh Posté le 17-02-2004 à 17:04:14
Ouais (bon, ok, c'est pas exactement le même code, y a pas le include de la page de vérif ).
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 )
Marsh Posté le 17-02-2004 à 23:40:12
Bon j'ai laisser tomber
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 ?
Marsh Posté le 18-02-2004 à 02:02:22
KdZ' a écrit : |
Ouais, sauf que s'il y a un mot de passe qui est trasmis en clair
KdZ' a écrit : |
Les sessions, définitevement (elles l'étaient déjà à la base donc bon =))
Marsh Posté le 18-02-2004 à 15:39:08
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 ?
Marsh Posté le 18-02-2004 à 17:00:39
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
Marsh Posté le 18-02-2004 à 18:32:38
Et c'est quoi la methode de "perfection ultime en matière de sécurité" ?
Marsh Posté le 18-02-2004 à 19:03:36
C'est ce que j'attendait comme reponse
Bon alors on va voir pour les sessions
Marsh Posté le 16-02-2004 à 18:25:51
'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
Voila comment j'ecrit mes cookies :
ç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 :
et j'appel ma fonction de cette maniere : <?php VerifValue("Nom" ); ?>
Message édité par KdZ' le 16-02-2004 à 18:47:57