problème de recuperation de donnés dans la base sql

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 : problème de recuperation de donnés dans la base sql

par abricot » 08 janv. 2007, 12:37

Coucou Ryle et merci pour ta sympathie! Je me suis inscris! Je n'oublierais pas tout ce que tu m'as dis à propos des règles du forum!
Voici l'adresse du site : http://membres.lycos.fr/pervercity

Je tiens à preciser qu'il date de 2003, je n'y ai plus touché depuis! Y'a pas mal de liens morts :/ J'ai juste reparé l'identification, y'a plein de conneries dedans, lol bon amusement

par Ryle » 05 janv. 2007, 18:32

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
T'as plus qu'à t'inscrire pour le faire toi même les prochaines fois. :)


Ps : aller... envoi l'url ;)

par abricot » 05 janv. 2007, 18:13

Youpiiii merci ryle ton code est super intelligent, je n'y aurais jamais pensé! Faut vraiment que je developpe mon cerveau, lol! Ca marche! Tu veux visiter le site?

par Ryle » 05 janv. 2007, 18:07

C'est parce que le parametre register_globals de ton fichier de configuration php.ini te le permet, il considère que toutes les variables sont accessibles par leur nom qu'elles proviennent de Get, Post, de la Session ou d'un Cookie (ce qui est pas terrible d'un point de vue sécurité, vaut quand même mieux spécifier d'où on la prend :))

Et pour gérer tes deux résultats, il te suffit de mettre deux mysql_fetch, ou encore mieux, de ne faire qu'une seule requête qui te ramene nick et mot de passe et de comparer ensuite en php :
$sql = "SELECT nick, pass, ... FROM table WHERE nick = '...' ";
$res = mysql_query($sql); // execution
if($res = mysql_fetch_array($res)) { // traitement du résultat
  // au moins 1 resultat pour ce nick
  if($res['pass'] == $_POST['pass'])
    // mot de passe ok
  else
    // mot de passe incorrect
}
else {
  // pas de résultat pour ce nick
}

par abricot » 05 janv. 2007, 17:58

salut ajoloca,

question très pertinente! effectivement je me suis posé la même question, ces 2 variables ne sont pas déclarés dans cette page pourtant elles sont recuperés... j'ai essayé de les déclarer comme suit :

Code : Tout sélectionner

$nick2 = $_POST['nick2'];
ca ne change rien, elle existe autant en les declarant que sans les declarer, lol!

par Ajoloca » 05 janv. 2007, 17:53

Bonjour,
En plus de la remarque de Ryle, d'où viennent les variables $nick2 et $pass ???

par abricot » 05 janv. 2007, 17:53

salut ryle et merci d'avoir corrigé.

mais comment gerer mes 2 results? avant ca marchais tres bien comme ca!

par Ryle » 05 janv. 2007, 17:48

Modération :
abricot, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message. Je l'ai fait pour toi sur ce message :)


Par ailleurs regarde la doc de mysql_fetch_array() tu ne l'utilise pas correctement (tu ne dois lui passer qu'un resultset en paramètre) :)

par zigz4g » 05 janv. 2007, 17:42

Tu a une nouvelle version de PHP ?
Ta page est codé en quelle version (PHP 3, 4, 5) ?

problème de recuperation de donnés dans la base sql

par abricot » 05 janv. 2007, 17:37

bonjour à tous

alors voilà je ne suis pas tres bon en php, j'ai un gros bouquin que je lis petit à petit, j'ai un petit problème d'identification dans mon site (un vieux site que j'avais fais en 2003 et qui marche plus bien, je le refais)
donc l'utilisateur met son nom et son mot de pass les donnés sont recuperés sur une autre page don voici le début du code :
<?php

session_start();

session_destroy();

session_start();

?>

<?php

$c = mysql_connect("localhost", "****", "") or die ("impossible de se co a la bdd");

mysql_select_db("pervercity_db",$c) or die ("peu pa selectionner la bdd");

$verifid = "SELECT * FROM ircnautes WHERE nick='$nick2'";
$verifpass = "SELECT * FROM ircnautes WHERE nick='$nick2' AND pass='$pass'";

$p = mysql_query($verifid) or die ("la requete verifid n'a pu etre executee");
$p2 = mysql_query($verifpass) or die ("la requete verifpass n'a pu etre executee");

$tbl = mysql_fetch_array($p, $p2);

mysql_close();

echo "{$tbl['nick']}"; // <---- N'affiche aucun resultat pourtant dans la table le nick est bien présent