OVH Cloud OVH Cloud

probleme dans la creation de cookie

4 réponses
Avatar
angelique
bonjour,

je rencontre un problème avec un cookie qui apparemment ne se crée
pas.
voilà mon script :

if ( !$_COOKIE['toto'] ) {
// cryptage du mot de passe
$passe = crypt ($passe,"af");
// verification de l'utilisateur
$parametres = "$login&$passe";
verif_utilisateur($parametres);
// temps limite a l'utilisation
$expiration = 0;
// on cree le cookie
setcookie("toto",$parametres,$expiration,"/");
} else {
// on compare les variables avec celles du cookie
verif_utilisateur($_COOKIE['identifiant']);
}

L'utilisateur entre un login et un mot de passe dans le formulaire
d'une page html qui l'envoie sur la page contenant ce script, si aucun
cookie contenant ces données n'est trouvé, il le crée, sinon il
compare les variables entrées avec celles du cookie existant.
Dans toutes les pages suivantes, il cherche le cookie pour autoriser
l'accès grâce à la fonction verif_utilisateur, sinon il signale qu'il
y a une erreur d'dentification.
Le problème c'est que dans les pages suivantes, j'ai fait un test, il
ne trouve pas ce cookie !
Je précise que tout marche très bien quand je suis sur mon serveur
local mais en ligne impossible ! Quelqu'un pourrait il m'aider ?
Merci merci

angelica
http://www.angelica-fashion.com/boutique *****

4 réponses

Avatar
angelique
Est-ce que le fait que l'expiration est à "0" ne causerais pas un problème?


Je ne pense pas, je l'utilise souvent, il permet de définir la durée
de vie du cookie tant que le navigateur reste ouvert, et c'est
exactement ce que je veux.

Par contre, le cookie se crée lorsque je le place plus haut dans ma
page, soit juste après les include, soit après les variables, soit
après le commentaire (car au dessus du code qui crée le cookie j'ai
cette partie là) :

-----------------------------------------------------------------------------------------
<?
include ("connection.php");
include ("fonctions.php");

if ( !ini_get('register_globals')) {
$login = $_POST["login"];
$passe = $_POST["passe"];
}

/* --------------- Creation du Cookie -------------- */
< mon code de création se trouve ici >
-----------------------------------------------------------------------------------------

Incroyable non ? une solution ? étrange bug...

angelica
http://angelica-fashion.com/boutique *****

Avatar
Jedi121
angelica wrote:
Par contre, le cookie se crée lorsque je le place plus haut dans ma
page, soit juste après les include, soit après les variables, soit
après le commentaire (car au dessus du code qui crée le cookie j'ai
cette partie là) :

------------------------------------------------------------------------------
-----------

<?
include ("connection.php");
include ("fonctions.php");

if ( !ini_get('register_globals')) {
$login = $_POST["login"];
$passe = $_POST["passe"];
}

/* --------------- Creation du Cookie -------------- */
< mon code de création se trouve ici >
------------------------------------------------------------------------------
-----------


Incroyable non ? une solution ? étrange bug...


Il vaut mieux le mettre tout en haut car si un de tes "include" ou une des
fonctions avant renvoit quelque chose sur la sortie standard (genre une erreur,
un warning, etc.) ton cookie ne passera pas (il doit être le premier sur la
sortie standard).

Avatar
angelique
Il vaut mieux le mettre tout en haut car si un de tes "include" ou une des
fonctions avant renvoit quelque chose sur la sortie standard (genre une erreur,
un warning, etc.) ton cookie ne passera pas (il doit être le premier sur la
sortie standard).


Rien à faire... dès qu'il est dans la condition (et même si j'enlève
la fonction verif) il ne crée rien... Un bug de php chez l'hébergeur ?
Ce même script fonctionne très bien sur mon site perso pourtant !

angelica
http://www.angelica-fashion.com/boutique ****

Avatar
charly
Si ton hébergeur le supporte, prq ne pas utiliser une session ?
session_start();
session_register('admin');
Si $login=="bonLogin" && $pass=="bonPass"
$admin="codesecret de la mort qui tue"

avant tout appel à une fonction ou une page admin, tu vérifies que la
vairaible $admin existe et contienne la valeur "code secret de la mort
qui tue"

Tu définis la valeur de admin dans un seul fichier sur lequel tu fais un
include, comme ca tu peux le changer facilement sans modifier toutes tes
sources...

Sinon ,HTAccess

Good luck :)