PhP et BDD comment faire?
Résolu
kikoi1
Messages postés
43
Statut
Membre
-
Nico595 -
Nico595 -
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?????
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:
- PhP et BDD comment faire?
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
35 réponses
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 :-)
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>
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
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()
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 !
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 !
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
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 ...";
}
}
?>
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.
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
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???
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.