Cookies impossible

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Cookies impossible

par Yes » 18 mars 2009, 15:57

Bonjour à Tous,
Je viens d'essayer mon script d'étude sur un autre serveur. Résultat nickel au premier essai pour le cookie normal et le cookie de session.
Ca ne fonctionnait pas avec PHP Version 4.3.11.
Et ca fonctionne avec PHP Version 5.1.6.
Y a t'il un moyen pour connaitre les bugs de chaque version, où ils se trouvent, leurs conséquences et comment y remédier ?

Merci beaucoup pour votre patience et votre aide. :D

par Yes » 18 mars 2009, 01:10

Bonsoir,
Mon script d'étude sur mon serveur depuis mon pc fait du cookie de session de temps en temps.
Le script d'un ami sur son serveur depuis mon pc fait le cookie de session a chaque fois.
Le difficile est de lui faire dire comment il fait... Il n'en sait trop rien, sinon que ca fonctionne.
http://www.ratatoskr.eu/accueil.php Voici l'adresse de mon script (désolé pour la pub).
Il suffit de mettre test comme pseudo et 12345 comme password. Est-ce que ca fonctionne ? ou pas ?
En attendant d'avoir accès à un autre serveur pour y tester mon script php.

J'ai aussi demandé au gestionnaire du serveur : il n'y a eu aucune intervention ni modification du serveur.

Pour préciser un peu mieux ma démarche : pour étudier précisément un point particulier, je cherche le code minimal aussi propre que possible pour le réaliser au mieux.
Dans ce cas précis : pour créer un cookie, comment le faire ?

Cet ami m'a proposé une page réalisant l'opération de valider un pseudo/pass qui fonctionne.
D'abord, ce sont 3 ou 4 pages html en 1 seule où le php s'imbrique dans le html.
Ca marche bien, mais c'est difficilement maintenable. De plus, s'il y a un changement de stratégie en terme d'accès, ca devient ingérable. De plus, si je ne suis pas capable de comprendre ce que je fais, où est mon autonomie ? Dernier point, j'aimerai ne pas devenir un petit goret du php :wink:
J'ai envie de développer mon site en php, mais sans devenir chauve en qq mois :D

par Aureusms » 17 mars 2009, 11:09

heuuuuuuuuuuu finalement, c'est de la magie ou de la sorcellerie ?
je viens de recommencer le meme exercice sur le meme serveur, sans aucune modification.
ya juste que j'ai mangé entre les deux, rebooté le pc et relancé le navigator.
Résultat ?
  • print_r( $_COOKIE ) ;
    Array ( ) 1
Bon j'hesite... je pleure à gros sanglots ? ou je fais une syncope ? :wink:
Parce que sur l'autre serveur
  • Array ( [PHPSESSID] => 79da30bd73c54d669f5d6c3cd33a9e86 )
Alors ?
Sur l'autre serveur ?
Ton site est présents sur deux serveurs ? ou veut tu dire que tu as testé ton site sur 2 PC différents ?

par Yes » 16 mars 2009, 16:17

heuuuuuuuuuuu finalement, c'est de la magie ou de la sorcellerie ?
je viens de recommencer le meme exercice sur le meme serveur, sans aucune modification.
ya juste que j'ai mangé entre les deux, rebooté le pc et relancé le navigator.
Résultat ?
  • print_r( $_COOKIE ) ;
    Array ( ) 1
Bon j'hesite... je pleure à gros sanglots ? ou je fais une syncope ? :wink:
Parce que sur l'autre serveur
  • Array ( [PHPSESSID] => 79da30bd73c54d669f5d6c3cd33a9e86 )
Alors ?

par Yes » 16 mars 2009, 10:45

Bonjour,
Un peu par curiosité, j'ai repris mon exercice avec les cookies.
  • Array ( [PHPSESSID] => dd4bdec10989cb163903a97c775311e1 [phpmvCookiesAllowed] => 1 ) 1
Le cookie de session est enregistré du premier coup !!! #-o
Et d'où sort ce phpmvCookiesAllowed ? Une recherche sur PHPfrance.net me répond No pages matched your query...
La, si vous n'avez pas d'explication, cela releve de la magie pure. :wink:

par Yes » 16 mars 2009, 01:05

Le setcookie( ) avec et sans timer, avec et sans chemin (merci Ryle, j'y aurais pas pensé :) ) ne donne rien de plus.
Après reboot, je n'arrive plus à obtenir le cookie du session_start( )... alors qu'un site ami me pose le cookie en question |*()

Qu'est-ce qu'il y a que je fais et qu'il faudrait pas ? ou que je ne fais pas et qu'il faudrait ?
Est-ce que qq'un aurait un code qui fonctionne pour que je l'essaye ?
Est-ce que qq'un aurait essayé les codes que j'ai posté pour me dire si ca fonctionne ou pas ?

Quand je pense que je n'en suis qu'au début du php... :sick:

par Ryle » 15 mars 2009, 19:23

C'est bien $_COOKIE (sans le s :))

Essaye en ajoutant également le path dans ton setCookie, et en spécifiant la racine "/" :
setcookie( "pseudo" , $pseudo , time( )+ 60*60*24, '/' ) ; 

par Yes » 15 mars 2009, 14:16

Bonjour,
Merci Aureusms de tes réponses. Une précision :
...si tu fais print_r ($_COOKIES) tu dois le voir...
le nom $_cookie est au singulier ou au pluriel ? :-k
Hier après-midi, le cookie phpsessid existait. et puis plus rien. D'autant qu'un ami me montre un exemple sur son site, et me pose bien le cookie ici. |*()
La nuit de sommeil n'a rien apporté :(
Et en reprenant un exemple d'hier, le cookie phpsessid est revenu !
  • :agenouille: Array ( [PHPSESSID] => 1fabb8b2d0168a203725630562a4be4c ) 1
Quant à ce cookie recalcitrant, il est toujours aux abonnés absents.
Je suis :fete: completement largué... ya forcément une explication ! (sous-entendu logique et rationnelle) :priere:

par Aureusms » 15 mars 2009, 02:36

Hmm :-k effectivement mais normallement l'ID de session est dans un cookies donc si tu fais print_r ($_COOKIES) tu dois le voir sinon ils sont désactivés dans ton navigateur.

Pour pseudo essaye sans le time() : Il sera valable jusqu'à fermeture du navigateur
setcookie( "pseudo" , $pseudo) ; 

par Yes » 15 mars 2009, 01:29

oui, avec
  • $sessid = session_id( ) ;
    echo 'session id = ' . $sessid ;
j'affiche l'id de la session
  • session id = 96eee9e77e662c5a48d3ea43a837e10f
J'avoue, pour moi, le mystère s'épaissit...

par Aureusms » 15 mars 2009, 01:22

Vois tu le cookies du session_start(); ? Ene ffet l'id de session est transmis via cookies. Si tu ne le vois pas cela vient de ton navigateur.

par Yes » 15 mars 2009, 01:03

Je viens de rajouter une page intermédiaire (dans l'espoir que Soeur Anne voit venir ce foutu cookie).
page0.php
<?php
$pseudo = "Helios";
setcookie( "pseudo" , $pseudo , time( )+ 60*60*24 ) ;
echo "<meta http-equiv='Refresh' content='1;URL=page1.php' />";
echo 'Vous devriez être redirigé sur une autre page dans 1 seconde.' ;
?>
page1.php
<form name="form1" method="post" action="page2.php" >
<input type="text" name="pseudo" id="pseudo">
<input type="password" name="pass" id="pass">
<input type="submit" name="button" id="button" value="Valider">
</form>
page2.php
<?php
$idpseudo = $_POST[ "pseudo" ] ;
$idpass = $_POST[ "pass" ] ;

if($idpseudo == "test" && $idpass == "12345") {
  echo 'Vous êtes bien identifié<p>' ;
  echo 'Le Cookiz a pris ? --' . $_COOKIE[ 'pseudo' ] . '--<p><p>' ;
  echo "<meta http-equiv='Refresh' content='5;URL=page3.php' />";
  echo 'Vous devriez être redirigé sur une autre page dans 5 secondes.' ;
} else { echo "<meta http-equiv='Refresh' content='0;URL=page1.php' />"; }
?>
page3.php
<?php
echo "Bienvenue sur votre page d'accueil<br>" ;
echo 'Le Cookiz a pris ? --' . $_COOKIE[ 'pseudo' ] . '--<p><p>' ; // :) ou :( ?
echo 'Lien pour se deconnecter<br>' ;
?>
Soeur Anne, ma soeur Anne, ne vois-tu point venir de cookie ? :?
Je ne vois que ton clavier qui rougeoit et ton site qui pleuroit :wink:
Bref, toujours pas de cookies...

par Yes » 14 mars 2009, 23:32

Les cookies sont acceptés, et ne sont plus supprimés avant leur expiration.
et le script est bien dans le répertoire racine ( / ).

Merci d'avoir noté l'erreur sur session_start( ). C'est corrigé.

Toujours pas de cookies :(

par Aureusms » 14 mars 2009, 23:16

start_session( ); ou session_start() ? enfin c'est pas ton sujet mais tu as une faute...
les cookies sont activé sur ton navigateur ?

par Yes » 14 mars 2009, 22:09

Merci pour la précision. J'ai modifié le source pour afficher une seconde page.
cookiz1.php :
<?php
start_session( );
$pseudo = "Helios" ;
setcookie( "pseudo" , $pseudo , time( )+ 60*60*24 ) ;
echo '<br /><a href="cookiz2.php">Rafraichir pour accéder aux coookies</a>';
?> 
cookiz2.php :
<?php
echo 'Test cookiz<p>' ;
echo 'Cookiz pseudo --' . $_COOKIE[ 'pseudo' ] . '--<p><p>' ;
echo 'print_r( $_COOKIE ) ;<p>' ;
echo print_r( $_COOKIE ) ;
?> 
Toujours pas de cookies à l'horizon.
Pourtant, en demandant à l'utilisateur de cliquer pour afficher une nouvelle page, il me semble que ca répond à ta remarque.
Que faire ? :(