Cookies

Bonjour les gens !
Bein voilà, je ne comprends plus rien au PHP là, plus d’idée ni rien …

J’ai créé une page qui identifie l’internote garce a un identifiant et un mot de passe.
Ce que je pense faire, c’est creer un cookie pour que l’internote ne doit pas se reconnecter a chaque clique …
Explication du soucis :
Il faut mettre la jolie ligne de code tout en haut, donc le naviguateur ne peut rien lire avant de lire le depot du cookies !

        setcookie(nomCookie, contenance);

Enfin, je ne sais pas … Comment on créé un cookie contenant des frappes de l’internote ?!

Merci

Ah la fameuse authentification par cookie :smiley:

Donc je te file le principe mais n’ayant pas de code de fournis je te laisse l’intégrer :smiley:

Au démarrage de ta page tu vérifie si un cookie existe si c’est le cas alors tu prends l’authentification qui y est présente et tu vérifie si c’est la bonne dans ce cas là tu authentifie ton user et tu le laisse continuer. Si l’authentification est mauvaise tu le renvois sur une page de login.

Sur ta page de login (accessible dans tous les cas pas d’authentification sinon on arrive au serpent qui se mord la queue je veux me logger donc faut que j’accède au formulaire de login mais pour y accéder faut être loggé bref impossible) tu lui demande de s’authentifier. Si c’est bon tu créé le cookie sinon ben tu renvois une erreur et tu lui redemande le login.

Mais oué d’accord mais comment je lui envoie le cookie ?
Car il faut aucun code devant setcookie.
Ah ! A moins que je créé une autre page, qui ne genere rien ?!
J’essaie.

Code :

 } else {

    $pseudo = htmlentities ($_POST['account']);

    $code = htmlentities ($_POST['password']);

    if (check_pass($pseudo, md5($code))==true) {
	include('cook.php');

        show_information_user($pseudo);
	echo $_COOKIE['user'];

    } else {

      ?>

      <font color=red><b>Identifiants Invalides.</b></font>

Comme tu peux le voir, si l’internote marque un bon mot de pass & login, il accede a ses infos et la page ‘cook.php’ est inclus.
Dans la page cook.php :

<?php
setcookie(user, $pseudo, md5($code));
echo $_COOKIE["user"];
?>

Setcookie pour envoyer le cookie, et echo pour voir si ca fonctionne :stuck_out_tongue:
Après, je ne sais pas si ca va marcher. Je fais des tests.

Merci

Ok, alors voila le probleme :
Je fais mon fichier a coté, cook.php.
Contenance :

<?php
setcookie(user, "BLA BLA");
echo $_COOKIE["user"];
?>

Comme tu peux le voir, “BLA BLA” est là. Et quand j’actualise maa page je vois bien BLA BLA.
MAIS quand je veux enregistrer une variable de la page précédente, il n’y a rien a faire j’arrive pas !
Si je fais :

<?php
include('formu.php'); // Ou un require ...
setcookie(user, $pseudo);
echo $_COOKIE["user"];
?>

Qu’est ce que ca va faire :

  1. Il y aura une infinité d’include sur la page, car formu.php include cook.php et cook.php include formu.php voila le bordel …
    C’est le plus gros déjà.
    Admettons que je trouve une combine a cette include, j’ai toujours eu un probleme avec l’include, c’est que la page précedente ce place plus bas. Elle vire pas ! :’(

Bon …
yukserv.dnsalias.com
Va faire un tour, clique tu verras …

Yukiz, Merci.

Bonjour,
je pense qu’il vaut mieux que tu mettes ton setcookie dans ton formulaire formu.php, avec action="" pour poster vers lui-même, et un teste $pseudo/$pass qui si correcte, lance le setcookie. ça serait ma solution, sans oublier que tu dois savoir si le navigateur client accepte les cookies.
Normalement tu peux enregistrer une variable en session, si elle est != 0 alors que $pseudo/$post ont été postés, tu le vois avant même de vérifier la validité du couple.

Sinon si tu tiens à l’include/require, essaye un global $pseudo aprés l’include et avant le setcookie.

[quote=“Yukiz”]Mais oué d’accord mais comment je lui envoie le cookie ?
Car il faut aucun code devant setcookie.[/quote]Non ce n’est pas qu’il faut aucun code c’est qu’il ne faut aucun code qui affiche des données sur la page c’est une grosse différence.

Donc tu peux très bien commencer par récupérer des données stockées en post de faire des traitements PHP de stocké ton cookie et seulement ensuite d’afficher ta page.

Par contre j’ai un peu de mal à comprendre ta structure je trouve qu’il y a beaucoup d’include dans ce que tu fait. Tu dois pouvoir optimiser tout ça.
Tu développe en PHP4 ou PHP5?

[quote]
Donc tu peux très bien commencer par récupérer des données stockées en post de faire des traitements PHP de stocké ton cookie et seulement ensuite d’afficher ta page.[/quote]

Pour que tout soit claire je dois :
Dans ma page formu.php creer un fichier texte contenant les infos,
Si tout est bon ca passe alors a cook.php qui créé le cookie.
Une fois le cookies créé la page s’affiche ?!
Mais … ouff lol

j’en sais rien moi !
Je sais que je tappe sur google ‘comment faire ca’ Je trouve du code je le place et c’est OK, aussi non quand je connais deja je le met cash …

J’ai un peu de mal à te suivre :smiley:

Donc je vais essayer d’expliquer différemment histoire de voir si on a bien tous les 2 compris la même chose :smiley:

Lors que tu arrive au niveau de ton système d’administration tu arrive à un formulaire d’authentification du genre login/pass.

L’user s’authentifie et post le formulaire. Tu récupère les données du formulaire que tu compare avec les données que tu as stocké je ne sais où bdd xml ou autre. si c’est ok tu créé un cookie sinon tu retourne au formulaire.

Et ensuite sur toutes tes pages protégées tu vérifie qu’il existe un cookie et qu’il contient les bonnes infos si c’est le cas tu affiche le contenu de ta page protégée sinon tu renvois au formulaire ou à un message d’erreur.

[quote=“Ashgenesis”]J’ai un peu de mal à te suivre :smiley:
Lors que tu arrive au niveau de ton système d’administration tu arrive à un formulaire d’authentification du genre login/pass.

L’user s’authentifie et post le formulaire. Tu récupère les données du formulaire que tu compare avec les données que tu as stocké je ne sais où bdd xml ou autre. si c’est ok tu créé un cookie sinon tu retourne au formulaire.
[/quote]
Et je le marque ou la creation de cookies ?! Dans le fichier qui verifie les données ? Je vais tester mais je crois que j’ai deja essayé !

A tout de suite.

Index.php[code]<?php
if (!empty($_POST)) {
$userLogin = “login”; //on récupère le login si besoin bref on se débrouille pour récupérer les bonnes infos
$userPass = “pass”; //idem pour le mot de passe

if($_POST['login-name'] === $userLogin && $_POST['pass-name'] === $userPass) {
  setcookie('id', sha1($userLogin . $userPass));
  header('Location: http://127.0.0.1/ashgenesis/temp/file.php');
} else {
  throw new Exception('Invalide :D');
}

}

?>

Système de login [/code] file.php [code]<?php echo $_COOKIE["id"]; ?>[/code]

Voilà un code qui fonctionne c’est crade mais c’est juste pour le principe reste à toi de combiner tout ca comme tu veux :wink: