PhP et BDD comment faire?

Résolu/Fermé
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008 - 8 mai 2008 à 10:15
 Nico595 - 23 janv. 2010 à 16:39
Bonjour,
Je suis actuellement entrain de réaliser un site internet pour un projet je le réalise en php avec dreamweaver, et je voudrais savoir comment pouvoir mettre en relation ma base de données avec ma page php.
Ma page php est très basique elle possède seulement un espace pour rentrer un nom d'utilisateur ainsi qu'un autre emplacement pour le mot de passe et un bouton rentrer, ainsi je voudrai que l'utilisateur qui fait partie de ma base de données user puisse acceder a l'acceuil du site et dans le cas contraire afficher un message d'erreur g crée une table user:

CREATE TABLE `cekciwebmaster`.`user` (
`nom_user` VARCHAR( 15 ) NOT NULL ,
`password` VARCHAR( 20 ) NOT NULL ,
`id_user` INT NOT NULL AUTO_INCREMENT ,
PRIMARY KEY ( `id_user` )
) ENGINE = MYISAM

et à partir de la je ne c'est pas comment en supposant que je m'y soit bien pri jusqu'a présent quelqu'un aurait-il des suggestions ou même un tuto pour les nuls très bien détaillées aà me proposer?????
A voir également:

35 réponses

DZTeam Messages postés 25 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 8 mai 2008
8 mai 2008 à 10:25
Bonjour kikoi1 Notre petit génie :p
La gestion des membres ce fait avec une LOGIN + uNE REDIRECTION
quand le membre met son nom_USER & sont Password et apré il va ou ? faut pensé à sa aussi chère kikoi1 .
voila un code que j'ai crée sa peut t'aidé

// Connexion.kikoi1.php

<?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 "<br><br><center><font color='#990000'>Erreur Mr kiKoi1 ce pseudo (et/ou mot de passe) est incorrect!</font></center><br>";
}else{
//connexion établie
$mail = $row[3];
$meme = $row;
//-----------------VERSION 1.1-----------------
$_SESSION['pseudo']=$pseudo;
$_SESSION['mail']=$mail;
$_SESSION['meme']=$meme;
//---------------------------------------------
//session_register("pseudo"); VERSION 1.0 nécessité d'avoir register_gloabals=on
//session_register("mail");
//session_register("meme");

echo "Connexion établie...";
echo "<script language='javascript'>document.location='espace_membre.php?page=1'</script>";
}
}
?>

// Formulaire.html pour Mr kikoi1 ^^

<form action="espace_membre.php?page=1" method="post">
<table align="center" class="texte">
<tr><td>Pseudo: </td><tD><input type="text" name="pseudo"></tD></tr>
<tr><td>Mot de passe: </td><tD><input type="password" name="mdp"></tD></tr>
<tr><td><a href="espace_membre.php?page=6"><font size="1">oublié?</font></a></tD></tr>
<tr><tD colspan="2" align="center"><input type="submit" value="Envoyer"></tD></tr>
<tr><tD colspan="2" align="center"><a href="espace_membre.php?page=2"><font size="1">S'inscrire</font></a></tD></tr>
</table>
</form>

x.0185@hotmail.fr si tu n'a pas pigé kek chose @+
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
8 mai 2008 à 10:45
Mille merci j'v essayer sa de suite ;)
0
DZTeam Messages postés 25 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 8 mai 2008
8 mai 2008 à 10:48
Derien amigo ^^
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 09:29
Bon j'ai essayé le code mais je dois oublier quelque chose enfin je vous montre le code de ma page index, je n'arrive pas à la page acceuil.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
// Connexion.kikoi1.php

<?php
mysql_connect("?", "identifiant", "mdp"); //connection a mysql
mysql_select_db("user"); //Séléction de la base user
if(isset($nom_user) & !empty($nom_user) & isset($password) & !empty($password))
{

$nom_user=addslashes(htmlspecialchars($_POST[nom_user]));
$password=addslashes(htmlspecialchars($_POST[password]));


//connecter();
$query="SELECT * FROM `user` WHERE `nom_user` LIKE '$nom_user' and `password` LIKE '$password'";
$result=@mysql_query($query);
$num=@mysql_num_rows($result);
$row=@mysql_fetch_row($result);
if($num==0){
echo "<br><br><center><font color='#990000'>Erreur Mr kiKoi1 ce nom_user (et/ou mot de passe) est incorrect!</font></center><br>";
}else{
//connexion établie
$mail = $row[3];
$meme = $row;
//-----------------VERSION 1.1-----------------
$_SESSION['nom_user']=$nom_user;
$_SESSION['mail']=$mail;
$_SESSION['meme']=$meme;
//---------------------------------------------
//session_register("nom_user"); VERSION 1.0 nécessité d'avoir register_gloabals=on
//session_register("mail");
//session_register("meme");

echo "Connexion établie...";
//echo "<script language='javascript'>document.location='espace_membre.php?page=1'</script>"­;
}
}
?>

// Formulaire.html pour Mr kikoi1 ^^

<form action="index.php" method="post">
<table align="center" class="texte">
<tr><td>nom_user: </td><tD><input type="text" name="nom_user"></tD></tr>
<tr><td>Mot de passe: </td><tD><input type="password" name="password"></tD></tr>
<tr><td><a href="acceuil.php"><font size="1">oublié?</font></a></tD></tr>
<tr><tD colspan="2" align="center"><input type="submit" value="Envoyer"></tD></tr>
<tr><tD colspan="2" align="center"><a href="acceuil.php"><font size="1">S'inscrire</font></a></tD></tr>
</table>
</form>

</body>
</html>

J'ai ajouter quelque modification au code précédent mais sa n'a pas l'air de vouloir fonctionner. Si quelqu'un pouvait m'aider??

P.S: j'ai rajouter un user : utilisateur avec un mdp: mdp dans ma table user si sa px aider...
0

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

Posez votre question
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 10:07
Bjr

Hum ca ne va pas au niveau de la récupération des variables passées par POST

Tu le fais à l'envers


Ce code ...

if(isset($nom_user) & !empty($nom_user) & isset($password) & !empty($password)) 
{ 

$nom_user=addslashes(htmlspecialchars($_POST[nom_user])); 
$password=addslashes(htmlspecialchars($_POST[password])); 


... est complètement faux !

Les variables $nom_user et $password doivent être initialisées AVANT de faire les tests en récupérant leur valeur respective dans le tableau $_POST[]

De plus dans ton test il faut 2 symboles & pour faire un ET/AND et pas un seul & qui correspond à un opérateur binaire !!!

Enfin il faut mettre des guillemets ou des quotes lorsque tu récupères une variable directement par son nom dans $_POST[] Ex $_POST['nom_user']


Voici un ex

<html>
<head>
</head>
<body>
<?php 
$nom_user = isset($_POST['nom_user']) ?  addslashes(htmlspecialchars($_POST['nom_user'])) : null; 
$password = isset($_POST['password']) ?  addslashes(htmlspecialchars($_POST['password'])) : null; 
if(!empty($nom_user) && !empty($password)) 
{ 
	echo "<p>nom_user =".$nom_user."</p>\n";
	echo "<p>password =".$password."</p>\n";
}
else
{
	echo "<p>nom_user = NON DEFINI !</p>\n";
	echo "<p>password = NON DEFINI !</p>\n";
}
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post">
<input type="text" id="nom_user" name="nom_user" value="">
<input type="text" id="password" name="password" value="">
<input type="submit" value"Valider">
</form>
</body>
</html>




0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 10:10
Oki je vais essayer par contre j'ai une question. Je ne vois pas à quelle moment il y a connexion avec la base de données???
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 10:32
Dans moN ex je ne me connecte pas avec la BDD : c'était juste pour te signaler les erreurs

Va y étape par étape : une fois que ta page fonctionne "dans le vide" (sans BDD) alors ensuite tu peux ajouter la connexion à MySQL

Pareil pour les sessions : n'essai pas tout faire en même temps !

Pour la BDD ca semble juste sauf ta query : pourquoi tu utilises des LIKE ?

$query="SELECT * FROM `user` WHERE `nom_user` = '".$nom_user."' and `password` = '".$password."'";

Enfin c'est vrai que tu peux inclure directement les variables php simples dans une chaîne encadrées par des guillemets ex

echo "ceci est le $password";

et php va les remplacer par leur valeur mais c'est un truc à se planter !

Je préfère et de loin écrire : echo "ceci est le ".$password;
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 10:38
Oki c noté
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 10:45
Le code parait exploitable, merci. Maintenant je voudrais mettre en relation la page php et le la BDD afin d'accéder à la page acceuil.php comment doit-je faire?
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 11:57
Voici un autre ex avec la BDD

ATTENTION ! J'utilise des focntions PHP pour faire plus propre

Pense à bien initialiser les variables globales qui commencent par $cfg_ avec tes propres paramètres

Dans le fonction mysql_select_user si ta table ne se nomme pas user alors modifie la requête

<?php
$cfg_hostname="localhost";
$cfg_username="root";
$cfg_password="";
$cfg_database="demo";
$mysql_link=null;

function mysql_connecter()
{
	global $cfg_hostname,$cfg_username,$cfg_password,$mysql_link,$cfg_database;
	
	if (!$mysql_link) 
	{
		$link = mysql_connect($cfg_hostname, $cfg_username, $cfg_password) or die("Impossible de se connecter au serveur MySql : ".$cfg_hostname." !");
		
		mysql_select_db($cfg_database,$link) or die("Impossible de sélectionner la base de données : ".$cfg_database." !");
		$mysql_link = $link;
	}	
	return $mysql_link;
}


function mysql_select_user($nom_user, $password)
{
	$result = 0;
	if(!empty($nom_user) && !empty($password)) 
	{ 
		$link = mysql_connecter();
		$query="SELECT * FROM `user` WHERE `nom_user` = '".$nom_user."' and `password` = '".$password."'"; 

		$result = @mysql_query($query); 
		if (!$result)
		{
			echo "query = ".$query."\n";
			echo "mysql_errno = ".mysql_errno($link)."\n";
			echo "mysql_error = ".mysql_error($link)."\n";	
			exit;
		}	
	}
	return $result;
}
?>

<html>
<head>
</head>
<body>
<?php 
$nom_user = isset($_POST['nom_user']) ?  addslashes(htmlspecialchars($_POST['nom_user'])) : null; 
$password = isset($_POST['password']) ?  addslashes(htmlspecialchars($_POST['password'])) : null; 
if(!empty($nom_user) && !empty($password)) 
{ 
	$result = mysql_select_user($nom_user,$password);
	if (mysql_num_rows($result)==0)
	{
		echo "Vous n'avez pas été reconnu ! Vérifiez vos identifiants ...";
	}
	else
	{
		$row = mysql_fetch_array($result);
		echo "Bienvenue ".$row["nom_user"]." votre id dans la table user est ".$row["id_user"];
	}
}
else
{
	if (isset($_POST['nom_user']) || isset($_POST['password'])) 
	{
		echo "Vous devez renseigner votre nom d'utilisateur et votre mot de passe pour vous connectez !";
	}
}
?>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post">
Username <input type="text" id="nom_user" name="nom_user" value=""></br>
Password <input type="text" id="password" name="password" value="">
<input type="submit" value"Valider" >
</form>
</body>
</html>
--

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 12:24
Merci je vais essayer cela
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 13:05
C bon sa fonctionne sa se connecte correctement a la BDD, merci.
Une dernière question et je pense que mon pb sera resolu c'est une fois que notre identifiant est exacte ainsi que notre mot de passe comment renvoyer sur la page d'acceuil? et si quelqu'un pouvai m'expliquer cette histoire de cookies et session... SVP
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 13:56
Décidemment !

<?php
session_start();
session_unset();

$cfg_hostname="localhost";
$cfg_username="root";
$cfg_password="";
$cfg_database="demo";
$mysql_link=null;

function mysql_connecter()
{
	global $cfg_hostname,$cfg_username,$cfg_password,$mysql_link,$cfg_database;
	
	if (!$mysql_link) 
	{
		$link = mysql_connect($cfg_hostname, $cfg_username, $cfg_password) or die("Impossible de se connecter au serveur MySql : ".$cfg_hostname." !");
		
		mysql_select_db($cfg_database,$link) or die("Impossible de sélectionner la base de données : ".$cfg_database." !");
		$mysql_link = $link;
	}	
	return $mysql_link;
}


function mysql_select_user($nom_user, $password)
{
	$result = 0;
	if(!empty($nom_user) && !empty($password)) 
	{ 
		$link = mysql_connecter();
		$query="SELECT * FROM `user` WHERE `nom_user` = '".$nom_user."' and `password` = '".$password."'"; 

		$result = @mysql_query($query); 
		if (!$result)
		{
			echo "query = ".$query."\n";
			echo "mysql_errno = ".mysql_errno($link)."\n";
			echo "mysql_error = ".mysql_error($link)."\n";	
			exit;
		}	
	}
	return $result;
}


function controle_access($nom_user, $password,$url_absolue)
{
	$result = mysql_select_user($nom_user,$password);
	if (mysql_num_rows($result)==0)
	{
		return false;
	}
	else
	{
		$_SESSION["nom_user"] = $nom_user;
		$_SESSION["password"] = $password;		
		header("Location: ".$url_absolue);
		exit;
	}	
}

?>
<?php 
$nom_user = isset($_POST['nom_user']) ?  addslashes(htmlspecialchars($_POST['nom_user'])) : null; 
$password = isset($_POST['password']) ?  addslashes(htmlspecialchars($_POST['password'])) : null; 
if(!empty($nom_user) && !empty($password)) 
{ 
	// L'url fournit doit être absolue  
	$url_absolue = "[http://]".$_SERVER['HTTP_HOST']."/php/login/page_securisee.php";
	
	//$url = "https://www.google.fr/?gws_rd=ssl";
	$result = controle_access($nom_user,$password,$url_absolue);
	
	if (!$result)
	{
		echo "Vous n'avez pas été reconnu ! Vérifiez vos identifiants ...";
	}
}
?>
<html>
<head>
</head>
<body>
<?php 
if (isset($_POST['nom_user']) || isset($_POST['password'])) 
{
	echo "Vous devez renseigner votre nom d'utilisateur et votre mot de passe pour vous connectez !";
}
?>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post">
Username <input type="text" id="nom_user" name="nom_user" value=""></br>
Password <input type="text" id="password" name="password" value="">
<input type="submit" value"Valider" >
</form>
</body>
</html>


ATTENTION :
Modifie $url_absolue = "[http://]".$_SERVER['HTTP_HOST']."/php/login/page_securisee.php";

dans le code et remplace la partie /php/login par ton propre chemin d'accès à ta page.

Ca peut donner $url_absolue = "[http://]".$_SERVER['HTTP_HOST']."/mon_chemin/page_securisee.php";



Ensuite enregistre ce qui suis dans une page que tu nommes page_securisee.php

<?php
session_start();
if (!isset($_SESSION["nom_user"]))
{
	header("HTTP/1.0 403 Forbidden");
	exit;
}
?>
<html>
<head>
<title>Page sécurisée réservée aux personnes identifiées</title>
<script language="JavaScript">
<!--
//-->
</script>
</head>
<body>
Bonjour : <? echo $_SESSION["nom_user"];?>
<p>Vous êtes sur la page sécurisée réservée aux seuls membres dûments identifiés !</p>
</body>
</html>




0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 14:30
J'obtien un message d'erreur :

Warning: session_start() [function.session-start]: open(/mnt/103/sda/0/3/cekciwebmaster/sessions/sess_70af49a584a9d5201db78dad6e315576, O_RDWR) failed: No such file or directory (2) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/103/sda/0/3/cekciwebmaster/index_final.php:9) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/103/sda/0/3/cekciwebmaster/index_final.php:9) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 10

Warning: Unknown(): open(/mnt/103/sda/0/3/cekciwebmaster/sessions/sess_70af49a584a9d5201db78dad6e315576, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/103/sda/0/3/cekciwebmaster/sessions) in Unknown on line 0


voila mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Accès securisé pour Site Comité d'entreprise KCI Medical</title>
</head>

<body>
<?php
session_start();
session_unset();

$cfg_hostname="localhost";
$cfg_username="root";
$cfg_password="";
$cfg_database="";
$mysql_link=null;

function mysql_connecter()
{
global $cfg_hostname,$cfg_username,$cfg_password,$mysql_link,$cfg_database;

if (!$mysql_link)
{
$link = mysql_connect($cfg_hostname, $cfg_username, $cfg_password) or die("Impossible de se connecter au serveur MySql : ".$cfg_hostname." !");

mysql_select_db($cfg_database,$link) or die("Impossible de sélectionner la base de données : ".$cfg_database." !");
$mysql_link = $link;
}
return $mysql_link;
}


function mysql_select_user($nom_user, $password)
{
$result = 0;
if(!empty($nom_user) && !empty($password))
{
$link = mysql_connecter();
$query="SELECT * FROM `user` WHERE `nom_user` = '".$nom_user."' and `password` = '".$password."'";

$result = @mysql_query($query);
if (!$result)
{
echo "query = ".$query."\n";
echo "mysql_errno = ".mysql_errno($link)."\n";
echo "mysql_error = ".mysql_error($link)."\n";
exit;
}
}
return $result;
}


function controle_access($nom_user, $password,$url_absolue)
{
$result = mysql_select_user($nom_user,$password);
if (mysql_num_rows($result)==0)
{
return false;
}
else
{
$_SESSION["nom_user"] = $nom_user;
$_SESSION["password"] = $password;
header("Location: ".$url_absolue);
exit;
}
}

?>
<?php
$nom_user = isset($_POST['nom_user']) ? addslashes(htmlspecialchars($_POST['nom_user'])) : null;
$password = isset($_POST['password']) ? addslashes(htmlspecialchars($_POST['password'])) : null;
if(!empty($nom_user) && !empty($password))
{
// L'url fournit doit être absolue
$url_absolue = "[http://]".$_SERVER['HTTP_HOST']."/acceuil.php";

//$url = "https://www.google.fr/?gws_rd=ssl";
$result = controle_access($nom_user,$password,$url_absolue);

if (!$result)
{
echo "Vous n'avez pas été reconnu ! Vérifiez vos identifiants ...";
}
}
?>
<html>
<head>
</head>
<body>
<?php
if (isset($_POST['nom_user']) || isset($_POST['password']))
{
echo "Vous devez renseigner votre nom d'utilisateur et votre mot de passe pour vous connectez !";
}
?>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post">
Username <input type="text" id="nom_user" name="nom_user" value=""></br>
Password <input type="text" id="password" name="password" value="">
<input type="submit" value"Valider" >
</form>
</body>
</html>
</body>
</html>
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 14:34
Oui c'est normal !

Déplace cette partie du code php depuis

<?php
session_start();
session_unset();


jusqu'à


$_SESSION["nom_user"] = $nom_user;
$_SESSION["password"] = $password;
header("Location: ".$url_absolue);
exit;
}
}

?>



Et place le au tout début du ficher avant

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0



0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 14:46
J'ai effectuer le changement mais j'obtien toujours les mêmes messages:


Warning: session_start() [function.session-start]: open(/mnt/103/sda/0/3/cekciwebmaster/sessions/sess_fd8e977563b0cce16c952e185a9ec24b, O_RDWR) failed: No such file or directory (2) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/103/sda/0/3/cekciwebmaster/index_final.php:2) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/103/sda/0/3/cekciwebmaster/index_final.php:2) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 2


Warning: Unknown(): open(/mnt/103/sda/0/3/cekciwebmaster/sessions/sess_fd8e977563b0cce16c952e185a9ec24b, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/103/sda/0/3/cekciwebmaster/sessions) in Unknown on line 0



voila les codes:

<?php
session_start();
session_unset();

$cfg_hostname="localhost";
$cfg_username="root";
$cfg_password="";
$cfg_database="";
$mysql_link=null;

function mysql_connecter()
{
global $cfg_hostname,$cfg_username,$cfg_password,$mysql_link,$cfg_database;

if (!$mysql_link)
{
$link = mysql_connect($cfg_hostname, $cfg_username, $cfg_password) or die("Impossible de se connecter au serveur MySql : ".$cfg_hostname." !");

mysql_select_db($cfg_database,$link) or die("Impossible de sélectionner la base de données : ".$cfg_database." !");
$mysql_link = $link;
}
return $mysql_link;
}


function mysql_select_user($nom_user, $password)
{
$result = 0;
if(!empty($nom_user) && !empty($password))
{
$link = mysql_connecter();
$query="SELECT * FROM `user` WHERE `nom_user` = '".$nom_user."' and `password` = '".$password."'";

$result = @mysql_query($query);
if (!$result)
{
echo "query = ".$query."\n";
echo "mysql_errno = ".mysql_errno($link)."\n";
echo "mysql_error = ".mysql_error($link)."\n";
exit;
}
}
return $result;
}


function controle_access($nom_user, $password,$url_absolue)
{
$result = mysql_select_user($nom_user,$password);
if (mysql_num_rows($result)==0)
{
return false;
}
else
{
$_SESSION["nom_user"] = $nom_user;
$_SESSION["password"] = $password;
header("Location: ".$url_absolue);
exit;
}
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Accès securisé pour Site Comité d'entreprise KCI Medical</title>
</head>

<body>
<?php
$nom_user = isset($_POST['nom_user']) ? addslashes(htmlspecialchars($_POST['nom_user'])) : null;
$password = isset($_POST['password']) ? addslashes(htmlspecialchars($_POST['password'])) : null;
if(!empty($nom_user) && !empty($password))
{
// L'url fournit doit être absolue
$url_absolue = "[http://]".$_SERVER['HTTP_HOST']."/espace_membre/acceuil.php";

//$url = "https://www.google.fr/?gws_rd=ssl";
$result = controle_access($nom_user,$password,$url_absolue);

if (!$result)
{
echo "Vous n'avez pas été reconnu ! Vérifiez vos identifiants ...";
}
}
?>
<html>
<head>
</head>
<body>
<?php
if (isset($_POST['nom_user']) || isset($_POST['password']))
{
echo "Vous devez renseigner votre nom d'utilisateur et votre mot de passe pour vous connectez !";
}
?>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="post">
Username <input type="text" id="nom_user" name="nom_user" value=""></br>
Password <input type="text" id="password" name="password" value="">
<input type="submit" value"Valider" >
</form>
</body>
</html>
</body>
</html>
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 15:11
Tu testes où exactement ?

Sur un PC local ? Sur Internet ?

Tu utilises Windows ou Linux ?

Ferme ton navigateur relance le puis
teste juste ceci

<?php
session_start();
?>
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 15:15
Je test sur internet directement sur le serveur les pages st heberger chez free et je sui sous windows XP pro Pack SP2.

et voila le résultat du test:

Warning: session_start() [function.session-start]: open(/mnt/103/sda/0/3/cekciwebmaster/sessions/sess_b81f36192efc63b9d491ba0a61e6ec2d, O_RDWR) failed: No such file or directory (2) in /mnt/103/sda/0/3/cekciwebmaster/test.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/103/sda/0/3/cekciwebmaster/test.php:2) in /mnt/103/sda/0/3/cekciwebmaster/test.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/103/sda/0/3/cekciwebmaster/test.php:2) in /mnt/103/sda/0/3/cekciwebmaster/test.php on line 2

Warning: Unknown(): open(/mnt/103/sda/0/3/cekciwebmaster/sessions/sess_b81f36192efc63b9d491ba0a61e6ec2d, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/103/sda/0/3/cekciwebmaster/sessions) in Unknown on line 0

voila le code:
<?php
session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
</body>
</html>
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
9 mai 2008 à 15:27
Alors ca viendt de chez Free

Essai le code suivant

<?php
phpinfo();
?>

Et lance le sur le serveur Free ca va te donner la config de php

Regarde si les sessions sont activées
0
kikoi1 Messages postés 43 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 10 décembre 2008
9 mai 2008 à 15:37
voila la config de free:

Session Support enabled
Registered save handlers files user

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /mnt/103/sda/0/3/root/sessions /cache/sessions
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
0