c'est quoi le mieux?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : c'est quoi le mieux?

par ephemere » 14 mars 2006, 17:06

en fait c'est bizare si je vire le "or die(mysql_error())" j'ai plus le message d'erreur! par contre il ne reconnait jamais le bon mot de passe...

pkoi!! mais pkoimoi!!

PS: je débauche et je n'ai pas le net chez moi (oui je sais c'est ringard) donc rdv demain 8h mais continuez a poster je lirai tous ça demain matin si mon cerveau arrive à se réveiller.. :D

par ephemere » 14 mars 2006, 16:53

Je confirme le mot de passe de ma base est bien configuré dans dmw, et ma requête seule ne marche pas.

par mere-teresa » 14 mars 2006, 16:48

$req = mysql_query($sql)or die(mysql_error());
if (mysql_num_rows($req) === 1)
ligne 1 : exécute la requête $sql et met le pointeur dans $req (ou met l'erreur MySQL si erreur)
ligne 2 : si une et une seule ligne de résultat est trouvée par la requête

par ephemere » 14 mars 2006, 16:42

ok je vai faire tout ça mais avant pourriez vous m'expliquer les deux lignes suivantes:
$req = mysql_query($sql)or die(mysql_error());
if (mysql_num_rows($req) === 1)
je déteste bidouiller des trucs que je comprend pas!

Autre chose, le serveur qui héberge ma base est protégé par mot de passe...peut être que le problème vient de la...comment faire pour indiquer le bon mot de passe dans le code...si c'est possible bien sur..?

par mere-teresa » 14 mars 2006, 16:23

Dans DMW tu as paramétré le login/pass pour ta base de données?

Vérifie.
Affiche ta requête (avec echo $requete;)
Teste la toute seule.

par ephemere » 14 mars 2006, 16:07

ben...je lui ai pas dit que je voulai que qui que ce soit se connecte...je veux juste comparer les données du formulaire avec celles de ma base pour vérifier les login/password..

Et dreamweaver reconnait bien ma base puisque j'y accede a partir de dreamweaver!!

j'ai pas mis autre chose que le bout de code donné par mario

Jcomprend pas! :shock:

par mere-teresa » 14 mars 2006, 15:53

...alors maintenant ça me met:
Access denied for user 'ODBC'@'localhost' (using password: NO)
....comment ça j'ai pas le droit c'est MOOOAAAA THE big boss
Comment lui as tu dit qui se connectait à la BDD ? (login, pass, etc...)

par mere-teresa » 14 mars 2006, 15:36

Ok voila la m---e que j'ai réussi à pondre...(j'ai même pas été foutu de vous le mettre en couleur 8-[..comment on fait?)
J'estime qu'il ya entre 10 et 15 errreur 8) ...a vous!
<?php
$login = $_POST['login'];
$password = $_POST['password'];

"SELECT "Login_user", "Password_user";"
"FROM "user";" 
"WHERE "Login_user" = "$login" AND "Password_user" = "$password""

if (mysql_num_rows($req) === 1)
{
   echo 'Bienvenue '.$login;
}
else
{
   echo 'Login inconnu';
} 
?>
Pour les couleurs, c'est le bouton PHP, entre Quote et Code (ou mettre les BBCode [ php ] ton code [ /php ]

Sinon mario a raison, l'ordre est :

1- On récupère les infos du formulaire.
2- On construit la requête.
2bis - En phase de dév on affiche la requête et on la copie-colle dans PHPMyAdmin.
3- On pose la requête au serveur MySQL.
4- On exploite les résultats.

par ephemere » 14 mars 2006, 15:28

...alors maintenant ça me met:
Access denied for user 'ODBC'@'localhost' (using password: NO)

....comment ça j'ai pas le droit c'est MOOOAAAA THE big boss

Au passage si vous pouviez me dire comment on colle un bout de code en couleur...merki

par mario » 14 mars 2006, 15:17

<?php 
$login = $_POST['login']; 
$password = $_POST['password']; 

$sql = "SELECT Login_user, Password_user FROM user WHERE Login_user = '".$login."' AND Password_user = '".$password."'"; 

$req = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($req) === 1) 
{ 
   echo 'Bienvenue '.$login; 
} 
else 
{ 
   echo 'Login inconnu'; 
} 
?> 
sorry, j'ai oublié d'exécuter la requête (voir ligne mysql_query)

par ephemere » 14 mars 2006, 15:16

merci mario
alors maintenant il n'ya plus d'erreur de syntaxe mais j'ai beau tapper 20 fois un bon login et le pass qui va avec ça m'affiche toujours "login inconnu"!
soit ya une erreur dans la clause if, ce qui m'étonnerait, soit dreamweaver n'envoi pas la requète à ma table parcque la liaison n'est pas faite....pourtant elle est bien affichée dans la fenêtre base de donnée!
hmmm...comprend po!

par mario » 14 mars 2006, 14:56

<?php
$login = $_POST['login'];
$password = $_POST['password'];

$sql = "SELECT Login_user, Password_user FROM user WHERE Login_user = '".$login."' AND Password_user = '".$password."'";

if (mysql_num_rows($req) === 1)
{
   echo 'Bienvenue '.$login;
}
else
{
   echo 'Login inconnu';
} 
?>
pas besoin de mettre des " entre les nom de champ MySQL.

par ephemere » 14 mars 2006, 14:51

Ok voila la m---e que j'ai réussi à pondre...(j'ai même pas été foutu de vous le mettre en couleur 8-[..comment on fait?)
J'estime qu'il ya entre 10 et 15 errreur 8) ...a vous!
<?php
$login = $_POST['login'];
$password = $_POST['password'];

"SELECT "Login_user", "Password_user";"
"FROM "user";"
"WHERE "Login_user" = "$login" AND "Password_user" = "$password""

if (mysql_num_rows($req) === 1)
{
echo 'Bienvenue '.$login;
}
else
{
echo 'Login inconnu';
}
?>

par ephemere » 14 mars 2006, 14:31

Ok merci j'ai compris ce que je ne comprenai pas...c'est un grand pas en avant
! j'essaye ça et je reviens au premier problème :wink:

par Ryle » 14 mars 2006, 14:16

Le SQL est un langage conçu spécialement pour retrouver des informations dans ta base de données. A chaque fois que tu lances une requête, il va parcourir toute la table (c'est pas tout à fait vrai, mais ça ira pour l'exemple ;)) à la recherche des enregistrements qui correspondent à ta recherche.

En gros, c'est directement lui qui va boucler et te retourner les lignes qui vont bien (quand il y en a) :)

Voici ce que donne la requête de Mario en français :
"SELECT champ1, champ2, champ3 " = Sélectionne les champs champ1, champ2 et champ3
"FROM table_utilisateur" = de la table table_utilisateur
"WHERE login = '".$login."'" = pour lesquels le champ login à la valeur de $login
" AND pass = '".$pass."'"; = et le champ pass à la valeur de $pass

Il ne devrait donc te retourner qu'un seul enregistrement (voire pas du tout) et il ne te reste plus qu'à l'exploiter comme bon te semble :)