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
Nico595 - 23 janv. 2010 à 16:39
A voir également:
- PhP et BDD comment faire?
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
- Php echo image ✓ - Forum PHP
35 réponses
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:46
9 mai 2008 à 15:46
Regarde ici
http://www.commentcamarche.net/forum/affich 2741726 php session start bug
Ceci explique peut être cela :-)
http://www.commentcamarche.net/forum/affich 2741726 php session start bug
Ceci explique peut être cela :-)
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:48
9 mai 2008 à 15:48
Bien vue ceci expliqe cela :) j'te remercie pour les tuyau et surtout pour la patience.
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:58
9 mai 2008 à 15:58
Bon continuons dans notre explorations diabloques du php et de la BDD maintenant je n'ai plus de probleme aux niveaux de ma page index_final.php il apparait normalement les espaces afin de rentrer le nom et le mdp cependant (ben oui ya un cpt si sa marchait du premier coup tout le tps sa serait trop facile) donc cependant quand je valide mon identifiant et mdp j'obtiens le message d'erreur suivant:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'172.20.244.241' (using password: YES) in /mnt/103/sda/0/3/root/index_final.php on line 17
Impossible de se connecter au serveur MySql : sql.free.fr !
voila le code je tiens a souligner qu'auparavant il se connectai au serveur mysql (pour ceux qui prenne le probleme en route...):
<?php
session_start();
session_unset();
$cfg_hostname="sql.free.fr";
$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>
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'172.20.244.241' (using password: YES) in /mnt/103/sda/0/3/root/index_final.php on line 17
Impossible de se connecter au serveur MySql : sql.free.fr !
voila le code je tiens a souligner qu'auparavant il se connectai au serveur mysql (pour ceux qui prenne le probleme en route...):
<?php
session_start();
session_unset();
$cfg_hostname="sql.free.fr";
$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>
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 à 16:14
9 mai 2008 à 16:14
A mon avis le username n'est pas root
De plus il faut aussi entrer le mot de passe que Free t'as communiqué
Vérifie aussi que l'adresse sql.free.fr est la bonne !
De plus il faut aussi entrer le mot de passe que Free t'as communiqué
Vérifie aussi que l'adresse sql.free.fr est la bonne !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
9 mai 2008 à 16:17
9 mai 2008 à 16:17
non c'est pas root c'est cekciwebmaster l'adresse c'est bien sql.free.fr et le mot de passe est bon aussi j'ai verifier... Une autre suggestions??
En plus sa fonctionnait avan qu'on essaye sessions start()
En plus sa fonctionnait avan qu'on essaye sessions start()
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 à 16:23
9 mai 2008 à 16:23
Alors pourquoi dans ton code je vois
$cfg_hostname="sql.free.fr";
$cfg_username="root";
$cfg_password=" ";
?????? pour le password ok
et surtout le message d'erreur t'indique bien que tu tentes de te connecter avec root !
$cfg_hostname="sql.free.fr";
$cfg_username="root";
$cfg_password=" ";
?????? pour le password ok
et surtout le message d'erreur t'indique bien que tu tentes de te connecter avec root !
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
9 mai 2008 à 16:25
9 mai 2008 à 16:25
Voila le message d'erreur
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'cekciwebmaster'@'172.20.244.241' (using password: YES) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 17
Impossible de se connecter au serveur MySql : sql.free.fr !
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 à 16:42
9 mai 2008 à 16:42
La je vois pas
T'es pas déjà connecté à la base via phpmydamin ?
Essai :
Pour t'affranchir des sessions
T'es pas déjà connecté à la base via phpmydamin ?
Essai :
<?php $cfg_hostname="sql.free.fr"; $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; } mysql_connecter(); ?>
Pour t'affranchir des sessions
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
9 mai 2008 à 16:45
9 mai 2008 à 16:45
Autan pour moi c'était le mot de passe qui était pas correcte
Maintenant j'obtiens ce message:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/103/sda/0/3/cekciwebmaster/index_final.php:72) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 58 l'url que j'ai rentrer est la suivante pour l'url absolue:
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']."/cekciwebmaster.free.fr/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 ...";
}
}
?>
Maintenant j'obtiens ce message:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/103/sda/0/3/cekciwebmaster/index_final.php:72) in /mnt/103/sda/0/3/cekciwebmaster/index_final.php on line 58 l'url que j'ai rentrer est la suivante pour l'url absolue:
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']."/cekciwebmaster.free.fr/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 ...";
}
}
?>
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
9 mai 2008 à 17:11
9 mai 2008 à 17:11
Ce message d’erreur indique que vous tenter d’écrire des entêtes HTML, alors que le corps de la page a déjà été enrichi.
Mais je comprends pa comment faire pour corriger l'erreur.
Mais je comprends pa comment faire pour corriger l'erreur.
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 à 17:11
9 mai 2008 à 17:11
Reprend mon code en poste n°13
Il faut faire le controle d'accès avant la première instruction de ta page c'est-à-dire avant
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Si tu veux le header est ce que le navigateur recoit en premier avant le code HTML de la page : une fois que le début de la page est envoyé tu n'as plus le droit d'envoyer un autre header c'est pourquoi ca plante
Il faut faire le controle d'accès avant la première instruction de ta page c'est-à-dire avant
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Si tu veux le header est ce que le navigateur recoit en premier avant le code HTML de la page : une fois que le début de la page est envoyé tu n'as plus le droit d'envoyer un autre header c'est pourquoi ca plante
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
9 mai 2008 à 17:13
9 mai 2008 à 17:13
oki j'essaye
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
9 mai 2008 à 17:28
9 mai 2008 à 17:28
Oki c'est bon sa fonctionne cependant si je rentre directement l'url de la page d'acceuil disons https://free.fr/espace/acceuil.php j'y accède sans qu'il y est besoin d'authentification c a d sans que l'on est besoin de passer par https://free.fr/index_final.php a quoi c'est du???
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 à 17:33
9 mai 2008 à 17:33
Au début de ta page est-ce que tu as bien mis
<?php
session_start();
if (!isset($_SESSION["nom_user"]))
{
header("HTTP/1.0 403 Forbidden");
exit;
}
?>
Si oui ferme toutes tes fenêtres de navigation efface le cache et essai de nouveau d'entrer directement l'adresse
<?php
session_start();
if (!isset($_SESSION["nom_user"]))
{
header("HTTP/1.0 403 Forbidden");
exit;
}
?>
Si oui ferme toutes tes fenêtres de navigation efface le cache et essai de nouveau d'entrer directement l'adresse
Merci Php pour ce topic tres explicite.
Je cherche a afficher les donnees de la table relatives a la session ouverte mais je n y arrive pas.
En récupérant
<? echo $_SESSION["nom_user"];?>
cela fonctionne parfaitement mais si je créé une nouvelle variable dans la table t1 et que je souhaite l afficher cela donne
<? echo $_SESSION["t1"];?>
mais ca ne donne rien, comment je peux le déclarer cette nouvelle variable dans ton script afin de l afficher dans la page de destination.
Merci pour ton aide.
Je cherche a afficher les donnees de la table relatives a la session ouverte mais je n y arrive pas.
En récupérant
<? echo $_SESSION["nom_user"];?>
cela fonctionne parfaitement mais si je créé une nouvelle variable dans la table t1 et que je souhaite l afficher cela donne
<? echo $_SESSION["t1"];?>
mais ca ne donne rien, comment je peux le déclarer cette nouvelle variable dans ton script afin de l afficher dans la page de destination.
Merci pour ton aide.
kikoi1
Messages postés
43
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
10 décembre 2008
10 mai 2008 à 12:50
10 mai 2008 à 12:50
Oki sa marche merci.