Section membre, je crois qu'il me manque un petit détail...
Posté : 12 oct. 2012, 02:12
Bonjour tout le monde!
Il s'agit de mon premier post sur ce forum, alors si vous acceptez de m'aider, ce serais vraiment apprécié.
Je crois qu'il me manque quelques petites choses de logiques à comprendre au PHP...
Donc, voici mon problème. J'essai de créer une section accessible seulement aux membres d'un site web, et je vais vérifier si le pseudo et le password est présent dans la base de donnée.
Je fais différents test, si je met, exemple : if($_POST['pseudo'] == "admin").. Tout fonctionne bien. C'est lorsque j'essai d'aller chercher les données dans la BDD que ça plante.
Lorsque j'ouvre ma page "index.php" tout s'affiche bien. J'ai les champs identifiant, password et envoyer.
Lorsque j'envoie, j'ai mis une petite variable qui m'affiche OK si les champs posté on bien été stocker dans les variables. Jusque la tout va bien. Mais j'ai une erreur qui s'affiche :
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\wamp\www\Projet1\index.php on line 26
Alors la, je place ce code : or die(mysql_error())
Lorsque j'envoie le formulaire, ça me dit : No databases selected
Alors là, j'inclue la connexion a la BDD directement après l'envoie du formulaire, et ça me retourne la même erreur :
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\wamp\www\Projet1\index.php on line 26
Voici mon code PHP:
Si quelqu'un pourrait me donner un peu d'explication, ce serait vraiment très apprécié!
Il s'agit de mon premier post sur ce forum, alors si vous acceptez de m'aider, ce serais vraiment apprécié.
Donc, voici mon problème. J'essai de créer une section accessible seulement aux membres d'un site web, et je vais vérifier si le pseudo et le password est présent dans la base de donnée.
Je fais différents test, si je met, exemple : if($_POST['pseudo'] == "admin").. Tout fonctionne bien. C'est lorsque j'essai d'aller chercher les données dans la BDD que ça plante.
Lorsque j'ouvre ma page "index.php" tout s'affiche bien. J'ai les champs identifiant, password et envoyer.
Lorsque j'envoie, j'ai mis une petite variable qui m'affiche OK si les champs posté on bien été stocker dans les variables. Jusque la tout va bien. Mais j'ai une erreur qui s'affiche :
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\wamp\www\Projet1\index.php on line 26
Alors la, je place ce code : or die(mysql_error())
Lorsque j'envoie le formulaire, ça me dit : No databases selected
Alors là, j'inclue la connexion a la BDD directement après l'envoie du formulaire, et ça me retourne la même erreur :
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\wamp\www\Projet1\index.php on line 26
Voici mon code PHP:
<?php
require('config/connect.php');
require('config/fonctions.php');
// Si il y a une donnée envoyé par le champs PSEUDO et PASSWORD, on exécute la condition
if(isset($_POST['nom']) && ($_POST['password']))
{
// Ici, on stock les données envoyé dans des variables
$nom = (isset($_POST['nom']) && trim($_POST['nom']) != '') ? Verif_magicquotes($_POST['nom']) : null;
$password = (isset($_POST['password']) && trim($_POST['password']) != '') ? Verif_magicquotes($_POST['password']) : null;
// On vérifie si les variables contiennent des données
if($nom && $password != '')
{
// en change les données de variables et les sécurisent avant la requête SQL
$pseudo = mysql_real_escape_string($nom);
$pass = mysql_real_escape_string($password);
// on recherche dans la tables MEMBRES toutes (*) la ligne qui contient le PSEUDO et le PASSWORD envoyé
$requete = ("SELECT * FROM membres WHERE pseudo='".$pseudo."' AND pass='".$pass."'");
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau assosiatif du résultat
$resultat = mysql_fetch_array($requete);
$erreurConnexion = "OK";
// Si la base de donnée retourne des valeurs
if(isset($resultat['pseudo'],$resultat['pass']))
{
$erreurConnexion = "Connexion OK";
}
}
else
{
$erreurConnexion = "<span style='color:red; font-weight:bold;'>Vos identifiants sont invalides</span><br />";
}
}
?>
Voici mon formulaire :<div id="form-connexion">
<h1>Connexion</h1>
<form method="post" action="index.php">
<input type="text" placeholder="Identifiant" name="nom" class="connexion-fields" value="<?php if(isset($_POST['nom'])) echo $_POST['nom'] ?>" /><br /><br />
<input type="password" placeholder="Mot de passe" name="password" class="connexion-fields" value="<?php if(isset($_POST['password'])) echo $_POST['password'] ?>"/><br /><br />
<?php if(isset($erreurConnexion)) echo $erreurConnexion; ?>
<input type="submit" value="Se connecter" class="connexion-button" />
</form>
<p><a href="new.php">Créer un compte</a></p>
<p><a href="#">Mot de passe oublié?</a></p>
</div>
Voici mon fichier fonction :<?php
function Verif_magicquotes($chaine)
{
if(get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
function check_session()
{
if(empty($_SESSION['membre']))
{
return true;
}
}
?>
Et mon fichier de connexion :<?php
try{
$bdd = new PDO('mysql:host=localhost;dbname=projet1', 'root', '') or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');
}
catch(Exeption $e){
die('Erreur:'.$e->getMessage());
}
?>
Je suis persuadé que je ne suis vraiment pas loin, mais il me manque un petit quelque chose.Si quelqu'un pourrait me donner un peu d'explication, ce serait vraiment très apprécié!