PHP Récupérer deux variables d'une fonction
Résolu
maverickz
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
maverickz Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
maverickz Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Second post de la journée, seconde question, promis dès que je peux je contribue aussi ;-)
Je me lance, j'ai un fichier PHP contenant des fonctions (functions.php) et j'aimerais pouvoir faire inter-agir une de ces fonctions avec un système de vérification de login (login.php).
Pour cela j'ai une base de donnée avec les identifiants du user que je récupère via la fonction loginUser avec $login et $pass passés en paramètres.
J'aimerais donc faire refaire passer ces éléments/variables après traitement sur la page login.php (via le return?)
La fonction du fichier functions.php
----------------------------------------
function loginUser($login,$pass) {
MySQLConnect(); // connexion a la DB.
$request = mysql_query('SELECT * FROM user WHERE login='.$login. 'AND pass='.$pass);
while($result = mysql_fetch_array($request)) {
$tab[$login] = $result['login'];
$tab[$pass] = $result['pass'];
}
return $tab;
mysql_close();
}
Je ne suis déjà pas tout a fait certain qu'elle soit correcte surtout au niveau du $tab[$variable] car j'ai une erreur de type.
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource".
Sinon, voilà le contenu du fichier login.php qui est sensé devoir récupérer "$login" et "$pass" de l'autre page et les comparer avec les $_POST['login'] et $_POST['pass'] que l'user a introduit dans le formulaire.
<html>
<head><title>User Login</title></head>
<body>
<form method="post" action="login.php"/>
Login :<input type="text" name="login"/><br/>
Pass : <input type="password" name="pass"/><br/>
<input type="submit" value="Send"/>
<input type="reset" value="Clear"/>
</form>
</body>
</html>
<?php
session_start();
require('../func/functions.php');
if (isset($_POST['login']) && isset($_POST['pass'])) {
$login = $_POST['login'];
$pass = $_POST['pass'];
loginUser($login,$pass);
if (($tab[$login]==$login) && ($tab[$pass]==$pass)) {
header('Location: main.php');
}
else {
echo "Wrong User/pass";
}
}
J'ai essayé d'être le plus clair possible, d'avance, je vous remercie pour votre coup de pouce ;-)
Second post de la journée, seconde question, promis dès que je peux je contribue aussi ;-)
Je me lance, j'ai un fichier PHP contenant des fonctions (functions.php) et j'aimerais pouvoir faire inter-agir une de ces fonctions avec un système de vérification de login (login.php).
Pour cela j'ai une base de donnée avec les identifiants du user que je récupère via la fonction loginUser avec $login et $pass passés en paramètres.
J'aimerais donc faire refaire passer ces éléments/variables après traitement sur la page login.php (via le return?)
La fonction du fichier functions.php
----------------------------------------
function loginUser($login,$pass) {
MySQLConnect(); // connexion a la DB.
$request = mysql_query('SELECT * FROM user WHERE login='.$login. 'AND pass='.$pass);
while($result = mysql_fetch_array($request)) {
$tab[$login] = $result['login'];
$tab[$pass] = $result['pass'];
}
return $tab;
mysql_close();
}
Je ne suis déjà pas tout a fait certain qu'elle soit correcte surtout au niveau du $tab[$variable] car j'ai une erreur de type.
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource".
Sinon, voilà le contenu du fichier login.php qui est sensé devoir récupérer "$login" et "$pass" de l'autre page et les comparer avec les $_POST['login'] et $_POST['pass'] que l'user a introduit dans le formulaire.
<html>
<head><title>User Login</title></head>
<body>
<form method="post" action="login.php"/>
Login :<input type="text" name="login"/><br/>
Pass : <input type="password" name="pass"/><br/>
<input type="submit" value="Send"/>
<input type="reset" value="Clear"/>
</form>
</body>
</html>
<?php
session_start();
require('../func/functions.php');
if (isset($_POST['login']) && isset($_POST['pass'])) {
$login = $_POST['login'];
$pass = $_POST['pass'];
loginUser($login,$pass);
if (($tab[$login]==$login) && ($tab[$pass]==$pass)) {
header('Location: main.php');
}
else {
echo "Wrong User/pass";
}
}
J'ai essayé d'être le plus clair possible, d'avance, je vous remercie pour votre coup de pouce ;-)
A voir également:
- PHP Récupérer deux variables d'une fonction
- Fonction si et - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
- Deux ecran pc - Guide
- Récupérer mon compte facebook désactivé - Guide
12 réponses
Pour l'erreur verifies tes codes connexion bdd
function loginUser($login,$pass) { MySQLConnect(); // connexion a la DB. $request = mysql_query("SELECT * FROM user WHERE login='".$login."' AND pass='".$pass."'"); if(mysql_num_rows($request)>0){ //on en a trouve un $result = mysql_fetch_array($request); $tab['login'] = $result['login']; $tab['pass'] = $result['pass']; }else{ $tab['login'] = "no_fond"; $tab['pass'] = "no_fond"; } mysql_close(); return $tab; } <?php session_start(); require('../func/functions.php'); if (isset($_POST['login']) && isset($_POST['pass'])) { $login = mysql_escape_string($_POST['login']);// on protege ! $pass = mysql_escape_string($_POST['pass']); loginUser($login,$pass); if (($tab['login']==$login) && ($tab['pass']==$pass)) { header('Location: main.php'); } else { echo "Wrong User/pass"; } }
mets
$request = mysql_query("SELECT * FROM user WHERE login='".$login."' AND pass='".$pass."'")or die ("pb avec la requette ".mysql_error());
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir Alain,
Merci de ta réponse ;-)
Mon code connexion :
// Permet de ne pas avoir à réécrire toute la procédure de connexion à une base MySQL.
function MySQLConnect(){
include ('db.php'); // Fichier où sont contenu les informations d'identification.
$Connect = mysql_connect("$mysql_host","$mysql_login","$mysql_pass") or die ('Connexion impossible a la base');
mysql_select_db("$mysql_db", $Connect) or die ('Selection impossible de la table');
}
ou le contenu de l'include de db.php est
<?php
$mysql_host="localhost";
$mysql_login="root";
$mysql_pass="";
$mysql_db="db";
Sinon j'ai toujours un warning avec le mysql_fetch_row
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\prog\func\functions.php on line 39
et une variable $tab introuvable dans login.php sur cette ligne :
if (($tab['login']==$login) && ($tab['pass']==$pass)) {
Notice: Undefined variable: tab in C:\Program Files\EasyPHP 2.0b1\www\prog\users\login.php on line 26
Wrong User/pass
apparament il ne reconnait pas les $tab[] provenant de l'autre page
J'ai pu éradiquer la notice en fessant passer $tab=login($login,$pass);
mais je ne suis pas sur que l'idée soit bonne ;-) en tout cas il ne veut pas faire le "header" du "if"
Une idée ? Quoi qu'il en soit merci beaucoup pour ton aide il y a déjà moins d'erreur qu'avant :-)
Merci de ta réponse ;-)
Mon code connexion :
// Permet de ne pas avoir à réécrire toute la procédure de connexion à une base MySQL.
function MySQLConnect(){
include ('db.php'); // Fichier où sont contenu les informations d'identification.
$Connect = mysql_connect("$mysql_host","$mysql_login","$mysql_pass") or die ('Connexion impossible a la base');
mysql_select_db("$mysql_db", $Connect) or die ('Selection impossible de la table');
}
ou le contenu de l'include de db.php est
<?php
$mysql_host="localhost";
$mysql_login="root";
$mysql_pass="";
$mysql_db="db";
Sinon j'ai toujours un warning avec le mysql_fetch_row
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\prog\func\functions.php on line 39
et une variable $tab introuvable dans login.php sur cette ligne :
if (($tab['login']==$login) && ($tab['pass']==$pass)) {
Notice: Undefined variable: tab in C:\Program Files\EasyPHP 2.0b1\www\prog\users\login.php on line 26
Wrong User/pass
apparament il ne reconnait pas les $tab[] provenant de l'autre page
J'ai pu éradiquer la notice en fessant passer $tab=login($login,$pass);
mais je ne suis pas sur que l'idée soit bonne ;-) en tout cas il ne veut pas faire le "header" du "if"
Une idée ? Quoi qu'il en soit merci beaucoup pour ton aide il y a déjà moins d'erreur qu'avant :-)
spécial il me mets directement : pb avec la requette La table 'db.user' n'existe pas
La il se fait un peu tard je regarderai un peu demain matin ;-)
merci en tout cas
La il se fait un peu tard je regarderai un peu demain matin ;-)
merci en tout cas
Donc ca veut dire que soit ta base ne s'appelle pas db soit tu n'as pas de table qui s'appelle user
attention majuscules minuscules !
attention majuscules minuscules !
Mieux vaut une image qu'un grand discours, en tout cas un grand merci de consacrer ton temps a mon problème, si je peux te le rendre dans un autre domaine informatique n'hésite pas ;-)
http://img124.imageshack.us/img124/8757/screenphp.jpg
http://img124.imageshack.us/img124/8757/screenphp.jpg
PAF *tilt* rien qu'a voir le screenshot , je me rends compte qu'il me manque un "s" a USER, ça fait gros mec foireux qui ne sait pas relire son code ;-) , désolé
Néanmoins la redirection du header ne fonctionne toujours pas, bon on va dire que la redirection je la fait passer en excuse de l'heure tardive et qu'on verra demain pour cela ;-)
Néanmoins la redirection du header ne fonctionne toujours pas, bon on va dire que la redirection je la fait passer en excuse de l'heure tardive et qu'on verra demain pour cela ;-)
PAFF *tilt* rien qu'a voir le screenshot , je me rends compte qu'il me manque un "s" a USER, ça fait gros mec foireux qui ne sait pas relire son code ;-) , désolé
Néanmoins la redirection du header ne fonctionne toujours pas, bon on va dire que la redirection je la fait passer en excuse de l'heure tardive et qu'on verra demain pour cela ;-)
Néanmoins la redirection du header ne fonctionne toujours pas, bon on va dire que la redirection je la fait passer en excuse de l'heure tardive et qu'on verra demain pour cela ;-)