probleme isset() avec index.php - PHP - Programmation
Marsh Posté le 15-02-2005 à 15:30:59
if(isset($_GET['login'])) |
Suivant si ton formulaire est en GET ou en POST
Marsh Posté le 15-02-2005 à 15:38:17
Je suis étonné que FlorentG n'ait pas réagi, mais ton test sur l'utilisateur est absolument à proscrire !
Tu utilises l'opérateur SQL LIKE, qui effectue une comparaison par reconnaissance de motifs.
Par exemple, si quelqu'un rentre dans le formulaire les identifiants suivants:
- login: toto
- password: %
La requête sera:
SELECT ... FROM ... WHERE login LIKE 'toto' AND pass LIKE '%'
Si l'utilisateur toto existe, la réquête fonctionnera systématiquement, et renverra les informations demandées.
Pire encore, selon la façon dont c'est organisé ici, l'utilisation des idenfitiants suivants fera réussir la requête à tous les coups même sans connaître l'utilisateur.
- login: %
- password: %
Utilise l'opérateur d'égalité '=' lorsque tu dois comparer des valeurs de login/password.
Marsh Posté le 15-02-2005 à 15:39:59
*retourne le couteau dans la plaie de Florent*
Effectivement c'est pas terrible comme systeme... je comprend meme pas pourquoi tu utilises ce truc du LIKE alors que c'est plus long a ecrire que mettre un =
Marsh Posté le 15-02-2005 à 15:41:27
en ce qui concer les login et mot de pass c'est moi qui vais les fournir (par un generateuir de mot de pass et login)
pour la fonction isset j'ai déja essayé avec POST et ça marche pas .. je vais tester avec GET .. merci pour vos réponses
Marsh Posté le 15-02-2005 à 15:50:25
Citation : pour la fonction isset j'ai déja essayé avec POST et ça marche pas .. je vais tester avec GET .. merci pour vos réponses |
le tout et de récupérer tes variables par la meme méthode que tu les fourni...
si le "method" de ton "form" est "post" alors tu fait un isset sur "POST", si le "method" est "get" alors tu fait le isset sur "GET"
Marsh Posté le 15-02-2005 à 15:50:32
Oula oula, j'ai juste regardé son isset, pas le reste (je bosse en même temps, hein )
Marsh Posté le 15-02-2005 à 15:51:15
camcam a écrit : en ce qui concer les login et mot de pass c'est moi qui vais les fournir (par un generateuir de mot de pass et login) |
Je veux bien, mais a quoi te sert le LIKE ? Pourquoi pas un simple =
[Edit : ]
FlorentG a écrit : Oula oula, j'ai juste regardé son isset, pas le reste (je bosse en même temps, hein ) |
Ouhhhh le filouu !!!! Il surf sur hd.fr au taff ... Montez la guillotine !!! *bon ok je retourne a ma révolution française*
Marsh Posté le 15-02-2005 à 15:55:01
ben .. j'ulise le LIKE parce que j'ai appri comme ça .... je vais mettre un "=" .. ça évitera les risques ..
Marsh Posté le 15-02-2005 à 16:10:49
camcam a écrit : C'est peut être le include qui pose probleme ? |
ya pas de raison...
Marsh Posté le 15-02-2005 à 16:22:20
j'ai trouvé !
Je me suis trompé dans les caractéristiques de la balise <input ..>
J'ai utilisé l'"id" comme identifiant au lieu de "name".
avec if(isset($_POST['login'])) ça marche très bien.
merci à tous.
Marsh Posté le 15-02-2005 à 16:22:54
.... C'est ce que j'ai mis dans mon premier post... N'oublie pas de lire ce qu'on te dit, et de ne pas survoler
Marsh Posté le 15-02-2005 à 16:43:59
excuse.. pour moi ton premier post faisai référence uniquemment à GET et POST .... t'aurai pu précisé que tu avais changé volontairement le nom de la variable ...!!
bref .. ça marche et je vous remerci.
Marsh Posté le 15-02-2005 à 16:45:02
re excuse ... tu pouvais pas savoir .. j'ai pas mis mon script original !!
Marsh Posté le 15-02-2005 à 16:54:07
tout est bien qui finit bien
Marsh Posté le 15-02-2005 à 15:29:03
bonjour,
Je n'arrive pas à passer dans le if(isset($variable)), sachant que je veux rappeler ma page index.php en cas d'echec...
voila à quoi ressemble index.php:
<?
include "connexion.php";
if (isset($log)){
//vérification login et pass en bdd
$resultats=mysql_query("select ... from ... WHERE login LIKE '$log' AND pass LIKE '$pass' " );
while ($lignes=mysql_fetch_array($resultats)){
session_start();
session_register('log');
session_register('pass');
header('location : admin_valide.php');
}
}else{
include("accueil.php" );
}
?>
dans accueil.php jai un formulaire du style :
<input name="login" type="text" id="log">
<input name="pass" type="password" id="pass">
<input name="confirm" type="submit" id="confirm" value="Confirmation">