Suicide imminent...

Résolu
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007 - 30 juin 2005 à 11:42
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007 - 4 juil. 2005 à 16:37
Bonjour à tous, j'aurai besoin d'un peu d'aide paske je sèche une peu là...



Voilà, j'ai un portail web qui gère les sessions et j'aimerais
implémenter des cookies pour une identification auto (le cas de base)
sauf que je galère...



J'ai une page index avec saisie pseudo & pass



Une page espace membre :

?php

session_start();



///////////////////

require("config.inc.php");

include("$functions/functions.inc.php");

//$page= $_GET[page];//ce n'était pas correct.



//-----------------VERSION 1.1-----------------

if(isset($page)){

if(!is_numeric($page)){

echo "Erreur la variable $page doit être un entier!";

exit;

}

}

//---------------------------------------------



switch($page)//on fait appel à la page que l'on a besoin

{

case '1': @include("$repertoire/connecter.php");break;

case '2': @include("$repertoire/inscription.php");break;

case '3': @include("$repertoire/membres.php");break;

case '4': @include("$repertoire/deconnecter.php");break;

case '5': include("$repertoire/infos_perso.php");break;

case '6': include("$repertoire/retour_mdp.php");break;

case '7': include("$repertoire/MesAbonnements.php");break;

default: @include("$repertoire/connecter.php");break;

}

?>



une page login.

<?php

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(isset($pseudo) & !empty($pseudo) & isset($mdp) & !empty($mdp))

{



$pseudo =addslashes(htmlspecialchars($_POST[pseudo]));

$mdp=addslashes(htmlspecialchars($_POST[mdp]));





connecter();

$query="SELECT * FROM `membres` WHERE `pseudo` LIKE '$pseudo' and `mdp` LIKE '$mdp'";

$result=@mysql_query($query);

$num=@mysql_num_rows($result);

$row=@mysql_fetch_row($result);

if($num==0){

echo "

<center>Erreur ce pseudo (et/ou mot de passe) est
incorrect!</center>
";

}else{

//connexion établie

$mail = $row[3];

$meme = $row;

//-----------------VERSION 1.1-----------------

$_SESSION['pseudo']=$pseudo;

$_SESSION['mail']=$mail;

$_SESSION['meme']=$meme;

//-------------Cookies-----------------

/* $expire = 365*24*3600;

setcookie("pseudo","$pseudo",time()+$expire,"/","");

setcookie("mdp","$mdp",time()+$expire,"/",""); */

session_start();

header("Location: espace_membre.php?page=3");

//session_register("mail");

//session_register("meme");

echo "<script language='javascript'>document.location='espace_membre.php?page=3'</script>";

}

}

?>



et une page membre ( infos personnelles, etc...)

J'ai longtemps cherché sur le net, et ya plein de modèles mais qui correspondent pas à l'architecture de mon site.

J'aimerais juste créer un cookies qui stockera les infos du membres
pour qu'il ne doivent pas saisir son pseudo & pass manuellement.



J'ai vraiment besoin d'aide je perds du temps inutilement.



je vous remercie.

51 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 juil. 2005 à 14:46
ton envoi de cookie de fait après du code html...

normal que ça ne passe pas, ça fait apel à du header...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
3
mictif Messages postés 105 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 14 février 2013 2
1 juil. 2005 à 14:52
if ($HTTP_COOKIE_VARS['pseudo'] || $HTTP_COOKIE_VARS['mdp'])

{

session_start();



pour quoi un "ou" ? (||) et pas un et (&&) ici ?

parce si il a que le mdp ou que le pseudo ca va planter non?

enfin je dis ca mais bon le php c'est pas trop mon truc!
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 juil. 2005 à 11:33
La durée de vie n'est pas utile (si elle n'est pas précisée le cookie
n'est plus valide après fermeture du navigateur), par contre la valeur
ici oui

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juil. 2005 à 16:32
je croyais que tu avais initialisé tes variables avant, or, tu ne
l'avais pas fait, donc, ta vérification se faisait dans le vide...



if(isset($_POST['pseudo']) && isset($_POST['mdp']))


voila, la, ça devrait ignorer tout ton code php qui suit si la presonne
n'a pas posté de pseudo ou de mot de passe (c'est à ça que devait
servir la ligne non ?)


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
30 juin 2005 à 15:15
je ne vois pas ce qui bloque...



je ne comprends pas non plus pourquoi tu as toutes ces @....



@include est débile, si il manque un fichier à ton site, alors t'es dans la merde, autant le remplacer par require...




In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007
30 juin 2005 à 15:21
C'est parce que j'avais récupéré le script du squelette d'un site qui tourne ma foi bien, et que c'était comme ça de base.



J'ai essayé de cette manière aussi mais ça passe pas, vous savez pas pourquoi le cookie est même pas crée ?

Je reposte mon code mieux présenté :



c koi l'blem dans mon code ?



///////Index :///////

si y trouve le pseudo et mot de passe dans le cookie

if ($HTTP_COOKIE_VARS['pseudo'] || $HTTP_COOKIE_VARS['mdp'])

{

session_start();

session_register('pseudo');

session_register('mdp');

///redirection vers la page membre

header("Location: espace_membre.php?page=3");

}

///sinon affiche l'accueil et les champs pour se logger/////





///////Page connexion/////////////

if(isset($pseudo) & !empty($pseudo) & isset($mdp) & !empty($mdp))

{



$pseudo=addslashes(htmlspecialchars($_POST[pseudo]));

$mdp=addslashes(htmlspecialchars($_POST[mdp]));





connecter();

$query="SELECT * FROM `membres` WHERE `pseudo` LIKE '$pseudo' and `mdp` LIKE '$mdp'";

$result=@mysql_query($query);

$num=@mysql_num_rows($result);

$row=@mysql_fetch_row($result);

if($num==0){

echo "

<center>Erreur ce pseudo (et/ou mot de passe) est



incorrect!</center>
";

}else{

//connexion établie

$mail = $row[3];

$meme = $row;



//-------------Cookies-----------------

$expire = 365*24*3600;

setcookie("pseudo","$pseudo",time()+$expire,"/","");

setcookie("mdp","$mdp",time()+$expire,"/","");

//-----------------VERSION 1.1-----------------

$_SESSION['pseudo']=$pseudo;

$_SESSION['mail']=$mail;

$_SESSION['meme']=$meme;



//session_register("mail");

//session_register("meme");

echo "<script language='javascript'>document.location='espace_membre.php?page=3'</script>";



////////ma page espace membres qui gère toutes mes pages//////////

<?php

session_start();



///////////////////

require("config.inc.php");

include("$functions/functions.inc.php");

//$page=$_GET[page];//ce n'était pas correct.



//-----------------VERSION 1.1-----------------

if(isset($page)){

if(!is_numeric($page)){

echo "Erreur la variable $page doit être un entier!";

exit;

}

}

//---------------------------------------------



switch($page)//on fait appel à la page que l'on a besoin

{

case '1': @include("$repertoire/connecter.php");break;

case '2': @include("$repertoire/inscription.php");break;

case '3': @include("$repertoire/membres.php");break;

case '4': @include("$repertoire/deconnecter.php");break;

case '5': include("$repertoire/infos_perso.php");break;

case '6': include("$repertoire/retour_mdp.php");break;

case '7': include("$repertoire/MesAbonnements.php");break;

default: @include("$repertoire/connecter.php");break;

}

?>
0
marcel_boulette Messages postés 21 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 26 septembre 2005
30 juin 2005 à 15:23
Salut,
Je pense pas que ça soit une bonne idée d'enregistrer les login/mdp dans un cookie, après il suffit de copier le cookie pour usurper définitivement l'identité de quelqu'un d'autre.



Par contre tu peux enregistrer le PHPSESSID dans un cookie, auquel tu ajoute l'adresse ip du poste pour plus de sécurité. Ensuite tu vérifie que l'ip est la même que précédement. Mais ça reste une méthode pas très sûre.

Ciao
Louis
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
30 juin 2005 à 15:28
les sessiosn sont suprimés sur le serveur au bout d'un certain temps,
et ça ne change rien, que l'on copie le cookie de session ou celui de
login...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007
30 juin 2005 à 15:29
ça reste le plus simple pour moi, vu que je débute en php. De plus,
pour ce que je fais je ne pense pas subir les attaques véloces de
hackers (j'espère).

Je parcours le net pour trouver un topic avec un problème similaire ou quelque chose qui s'apparente mais je galère en fait.

Personne n'a une idée pour mon problème ?

Pour rappel , je n'arrive pas à créer de cookies malgré mes multiples essais
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
30 juin 2005 à 16:20
j'ai toujours pas compris pourquoi ça ne fonctionnait pas...

c'est quoi le message d'erreur ?


session_register('pseudo');

session_register('mdp');



doit être remplacé par :



$_SESSION['pseudo']=$HTTP_COOKIE_VARS['pseudo'];

$_SESSION['mdp']=$HTTP_COOKIE_VARS['mdp'];



In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 juin 2005 à 20:19
Salut,



"$_SESSION['pseudo']=$HTTP_COOKIE_VARS['pseudo'];

$_SESSION['mdp']=$HTTP_COOKIE_VARS['mdp'];"



>



$_SESSION['pseudo']=$_COOKIE['pseudo'];

$_SESSION['mdp']=$_COOKIE['mdp'];





"Salut,
Je pense pas que ça soit une
bonne idée d'enregistrer les login/mdp dans un cookie, après il suffit
de copier le cookie pour usurper définitivement l'identité de quelqu'un
d'autre."



Bah si tu codes le pass en md5() ça ira, après ok avec un
brute-force c'est possible, mais tu ne peux pas récupérer les cookies
d'un autre site par internet, en gros il faut qu'une personne physique
vienne sur ton ordi récupérer le cookie ^^


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007
1 juil. 2005 à 09:28
ça marche toujours pas...le cookie n'est même pas créé !
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 juil. 2005 à 11:14
ceci marche parfaitement



setcookie('login', $login, time()+2592000); //délai d'un mois

setcookie('password', $password, time()+2592000);



ici, tu as une erreur : on utilises window.location.href et non document.location

<script language='javascript'>document.location='espace_membre.php?page=3'</script>";


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 juil. 2005 à 12:15
" ici, tu as une erreur : on utilises window.location.href et non document.location

<script language='javascript'>document.location='espace_membre.php?page=3'</script>";



Pense aussi aux doubles quotes dans les attributs et au type="text/javascript" à la place du language :



echo '<script type="text/javascript">document.location.href="espace_membre.php?page=3"</script>';



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 juil. 2005 à 12:23
c'est encore corect quand on fait du html... ça peut paraitre embétant, mais c'est un détail...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 juil. 2005 à 12:30
autant le préciser, le HTML c'est dépassé maintenant...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007
1 juil. 2005 à 14:04
Voici mon code aprés toutes vos indications, mais je précise que ça ne marche toujours pas :



///////// Mon fichier Index ///////////



<?

if ($HTTP_COOKIE_VARS['pseudo'] || $HTTP_COOKIE_VARS['mdp'])

{

session_start();

$_SESSION['pseudo']=$HTTP_COOKIE_VARS['pseudo'];

$_SESSION['mdp']=$HTTP_COOKIE_VARS['mdp'];

//session_register('pseudo');

//session_register('mdp');

header("Location: espace_membre.php?page=3");

}

else

{

?>

// code html

<?

}

?>



////////// Mon fichier connecter ///////



<?php

if(isset($pseudo) & !empty($pseudo) & isset($mdp) & !empty($mdp))

{



$pseudo=addslashes(htmlspecialchars($_POST[pseudo]));

$mdp=addslashes(htmlspecialchars($_POST[mdp]));





connecter();

$query="SELECT * FROM `membres` WHERE `pseudo` LIKE '$pseudo' and `mdp` LIKE '$mdp'";

$result=@mysql_query($query);

$num=@mysql_num_rows($result);

$row=@mysql_fetch_row($result);

if($num==0){

echo "

<center>Erreur ce pseudo (et/ou mot de passe) est



incorrect!</center>
";

}else{

//connexion établie

$mail = $row[3];

$meme = $row;



//-------------Cookies-----------------

setcookie('pseudo', $pseudo, time()+2592000); //délai d'un mois

setcookie('mdp', $mdp, time()+2592000);

$expire = 365*24*3600;



//-----------------VERSION 1.1-----------------

$_SESSION['pseudo']=$pseudo;

$_SESSION['mail']=$mail;

$_SESSION['meme']=$meme;





echo "<script



language='javascript'>window.location.href='espace_membre.php?page=3'</script>";

}

}

?>



//////// et enfin mon espace membre ///////////

<?php

session_start();



///////////////////

require("config.inc.php");

include("$functions/functions.inc.php");



if(isset($page)){

if(!is_numeric($page)){

echo "Erreur la variable $page doit être un entier!";

exit;

}

}

//---------------------------------------------



switch($page)//on fait appel à la page que l'on a besoin

{

case '1': @include("$repertoire/connecter.php");break;

case '2': @include("$repertoire/inscription.php");break;

case '3': @include("$repertoire/membres.php");break;

case '4': @include("$repertoire/deconnecter.php");break;

case '5': include("$repertoire/infos_perso.php");break;

case '6': include("$repertoire/retour_mdp.php");break;

case '7': include("$repertoire/MesAbonnements.php");break;

default: @include("$repertoire/connecter.php");break;

}

?>



Merci les gars pour le temps que vous m'accordez.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 juil. 2005 à 14:11
Si tu commençais par remplacer <? par <?php et suivre les
recommandations qui t'ont été faites plus haut (à savoir que
$_HTTP_COOKIE_VARS est dépassé)



ensuite remplacer le javascript de redirection par la fonction header('location:page.php');



si t'as une erreur de header tu mets tout en haut "ob_start();" et tout en bas "ob_end_flush();"



bref une fois ceci fait indique-nous quelle est ton erreur.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
crazykamel Messages postés 103 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 30 avril 2007
1 juil. 2005 à 14:36
Mon problème c'est que je n'arrive pas à créer de cookies qui me
stockeraient mon login & pass pour ne pas devoir s'authentifier à
chaque fois. pourtant ya 3 lignes de code pour les cookies, et je ne
vois pas ce que j'ai oublié.



Ci dessous avec les modifs demandés :



///////// Mon fichier Index ///////////



<?php

if ($HTTP_COOKIE_VARS['pseudo'] || $HTTP_COOKIE_VARS['mdp'])

{

session_start();

$_SESSION['pseudo']=$_COOKIE['pseudo'];

$_SESSION['mdp']=$_COOKIE['mdp'];

header('Location: espace_membre.php?page=3');

}

else

{

?>

///code html ///

<?php

}

?>



////////// Mon fichier connecter ///////



<?php

if(isset($pseudo) & !empty($pseudo) & isset($mdp) & !empty($mdp))

{



$pseudo=addslashes(htmlspecialchars($_POST[pseudo]));

$mdp=addslashes(htmlspecialchars($_POST[mdp]));





connecter();

$query="SELECT * FROM `membres` WHERE `pseudo` LIKE '$pseudo' and `mdp` LIKE '$mdp'";

$result=@mysql_query($query);

$num=@mysql_num_rows($result);

$row=@mysql_fetch_row($result);

if($num==0){

echo "

<center>Erreur ce pseudo (et/ou mot de passe) est
incorrect!</center>
";

}else{

//connexion établie

$mail = $row[3];

$meme = $row;



//-------------Cookies-----------------

setcookie('pseudo', $pseudo, time()+2592000); //délai d'un mois

setcookie('mdp', $mdp, time()+2592000);



//-----------------VERSION 1.1-----------------

$_SESSION['pseudo']=$pseudo;

$_SESSION['mail']=$mail;

$_SESSION['meme']=$meme;



//session_register("mail");

//session_register("meme");

header('Location: espace_membre.php?page=3');

}

}

?>



//////// et enfin mon espace membre ///////////

<?php

session_start();



///////////////////

require("config.inc.php");

include("$functions/functions.inc.php");



if(isset($page)){

if(!is_numeric($page)){

echo "Erreur la variable $page doit être un entier!";

exit;

}

}

//---------------------------------------------



switch($page)//on fait appel à la page que l'on a besoin

{

case '1': @include("$repertoire/connecter.php");break;

case '2': @include("$repertoire/inscription.php");break;

case '3': @include("$repertoire/membres.php");break;

case '4': @include("$repertoire/deconnecter.php");break;

case '5': include("$repertoire/infos_perso.php");break;

case '6': include("$repertoire/retour_mdp.php");break;

case '7': include("$repertoire/MesAbonnements.php");break;

default: @include("$repertoire/connecter.php");break;

}

?>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 juil. 2005 à 14:56
En plus il faut utiliser isset ET COMME DEJA DIT DEUX FOIS remplacer $HTTP_COOKIE_VARS par $_COOKIE



c'est pas compliqué... Ensuite pour créer un cookie utilise setcookie,
si le cookie ne se crée pas : ob_start(); tout en haut de la page et
ob_end_flush(); tout en bas, ça te permettra d'envoyer du code html
avant de créer le cookie.

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous