Problème de session

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 : Problème de session

par dadadu59 » 09 août 2005, 20:32

Et dés qu'il s'est logué, le script de la page login.php l'amène directement à celle-ci :
<?
session_start();

// CONNEXION MYSQL
mysql_connect("localhost","pseudo","mot de passe");
mysql_select_db("rucheonline");

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_query("SELECT * from joueurs WHERE id='$id'") or die(mysql_error());

// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
	{
	// REDIRECTION PAGE ERREUR
	header("Location:$url_erreur");
	exit;
	}
?>
Voila, je pense qu'il manque des choses, mais je ne sais pas quoi...

Merci

par dadadu59 » 09 août 2005, 20:29

Non, j'utilise les formulaires, mais avec la méthode POST.

Voici mon script, apres que l'utilisateur ce soit identifié :
<?
$pseudo = htmlentities($_POST['pseudo']);
$m_d_p = htmlentities($_POST['m_d_p']);


// CONNEXION A LA BASE DE DONNEE
mysql_connect("localhost","pseudo","mot de passe");
mysql_select_db("rucheonline");

// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.PHP
$requete=mysql_query("SELECT pseudo FROM inscription WHERE pseudo='$pseudo' AND mdp='$m_d_p'") or die(mysql_error());

// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
	{
	// REDIRECTION VERS LA PAGE ERREUR
	header("Location:$url_erreur");
	}

// SI LE LOGIN ET MOT DE PASSE SONT EXACTES	
else
	{
	// CREATION D'UN IDENTIFIANT ALEATOIRE
	$taille = 20;
	$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
	srand(time());
	for ($i=0;$i<$taille;$i++)
		{
		$id.=substr($lettres,(rand()%(strlen($lettres))),1);
		}
		
	// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE 
	$requete=mysql_query("UPDATE joueurs SET id='$id' WHERE pseudo='$pseudo'") or die(mysql_error());
	
	// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
	header("Location:zonemembre.php?id=$id");
	}	

// DECONNEXION MYSQL
mysql_close();
?>

par Cyrano » 09 août 2005, 20:22

il faudrait avoir une idée du problème plus précse pour cerner le problème. Mais à priori, ça veut dire que tu utilises des formulaires avec la méthode GET ce qui n'est pas nécessairement la meilleure idée.

par dadadu59 » 09 août 2005, 20:15

Ah oui effectivement ca va mieux !

Mais maintenant il y a un petit problème, dans la plupart des sites où il y a un espace membre, quand on veut revenir en arrière, ca nous met qu'on ne peut pas, ou bien qu'on doit se reloguer.
Avec mon script, il suffit que je fasse copier/coller l'url (donc avec plein de lettres et de chiffres derriere) dans la barre d'adresse, et c'est comme si j'étais logué... :shock:

Donc niveau sécurité c'est pas la bonne chose, vous auriez une solution ?

par dadadu59 » 09 août 2005, 20:04

j'ssaie ca tout de suite, merci beaucoup

par Cyrano » 09 août 2005, 18:12

As-tu créé à la racine de ton site un répertoire "sessions" : sur free, c'est impératif si tu veux que tes sessions fonctionnent.

Problème de session

par dadadu59 » 09 août 2005, 18:00

Bonjour
Sur mon site web, qui est en fait un jeu en ligne, je dois utiliser la variable SESSION.
Mais quand je l'utilise, j'ai un gros problème, voici ce qui s'affiche à l'écran :

Warning: session_start(): open(/var/www/free.fr/4/d/rucheonline/sessions/sess_5f51d31bd0fe7a4146e00884fb413f01, O_RDWR) failed: No such file or directory (2) in /var/www/free.fr/4/d/rucheonline/zonemembre.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/4/d/rucheonline/zonemembre.php:2) in /var/www/free.fr/4/d/rucheonline/zonemembre.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/4/d/rucheonline/zonemembre.php:2) in /var/www/free.fr/4/d/rucheonline/zonemembre.php on line 2


Je ne comprend pas trop où est mon erreur, donc si vous pouviez m'aider ce serait le bonheur ! :D
Merci