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

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
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:48
Bien vue ceci expliqe cela :) j'te remercie pour les tuyau et surtout pour la patience.
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: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>
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 à 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 !
0

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
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()
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 à 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 !
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 à 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 !
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 à 16:42
La je vois pas

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
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 à 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 ...";
}
}
?>
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 à 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.
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 à 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
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 à 17:13
oki j'essaye
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 à 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???
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 à 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
0
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.
0
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
Oki sa marche merci.
0