CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Probleme connexion site

The-End62
The-End62
Niveau 7
24 août 2009 à 18:24:09

Bonjour,

Je précise que j'entre en BTS IG et que mes connaissances sur le PHP sont encore assez limité.

Voila j'ai crée un site internet mais je bute sur le script de connexion au site.
C'est a dire que je veut que le script aille voir dans la base de donnée si le mot de passe correspond au pseudo (que l'utilisateur aurait crée préalablement avant dans un formulaire d'inscription)

Quand je tape un login et le mot de passe correspondant ça "a l'air de marché" (redirection vers la page News) sauf que quand on tape un mauvais mot de passe la redirection/connexion se fait quand meme vers la page News au lieu de la page Index comme prédéfini dans le script (voir ci dessous).

Ma table Utilisateur comporte : pseudo,mdp,datenaiss, mail, cp, sexe

Voici le script de connexion

<?php
$pseudo=$_POST['pseudo'];
$mdp=$_POST['mdp'];

mysql_connect("mysql5-18","*****","*****");
mysql_select_db('*****');

$reqverifpseudo="SELECT pseudo FROM UTILISATEUR WHERE pseudo=$pseudo";
$reqverifmdp="SELECT mdp FROM UTILISATEUR WHERE mdp=$mdp";

$resultreqpseudo=mysql_query($reqverifpseudo);
$resultreqmdp=mysql_query($reqverifmdp);

if ($pseudo['pseudo']==$resultreqpseudo AND $mdp['mdp']==$resultreqmdp)
{
header('location:news.php');
}
else
header('location:index.php');

?>

Merci d'avance pour l'aide que vous pourez m'apporter

godrik
godrik
Niveau 30
24 août 2009 à 19:59:53

mmm, il y a plusieurs chose qui ne vont pas dans ce code.

$pseudo=$_POST['pseudo'];
puis
$pseudo['pseudo']

$pseudo est une chaine de caractere maintenant, plus un tableau.
pareil pour mdp.

Ta requete sql est bizarre egalement, ce que tu veux c'est
"SELECT mdp FROM utilisateur WHERE pseudo=$pseudo" parceque tu veux verifier le couple (pseudo, mdp). Dans ce que tu fais, tu verifie qu'il y a un utilisateur de pseudo $pseudo et un mot de pass $mdp dans la base, mais tu ne verifie pas qu'ils sont associe.

Finalement, il faut echapper les parametres en entres des requetes sql avec mysql_real_escape_string ( http://us.php.net/manual/en/function.mysql-real-escape-string.php ) afin d'eviter l'injection SQL.

_skip
_skip
Niveau 10
24 août 2009 à 21:43:00

Je rajoute juste :
ne pas oublier les miniquotes quand on recherches des chaines :

... WHERE name = Georges (faux)
... WHERE name = 'Georges' (juste)

Pour ce qu'a dit Godrick sur l'importance d'échappement des paramètres :

http://us2.php.net/manual/en/security.database.sql-injection.php

Et ensuite, sache qu'avec un tel code, si le type tape l'url de la page de news directement dans son browser, il contourne l'identification.

The-End62
The-End62
Niveau 7
24 août 2009 à 22:29:36

Ok merci de vos réponse. Oui il faut faire des sessions le probleme c'est que je ne sais pas encore en faire. J'essaierait d'aprendre ca plus tard. En faite la connexion n'est pas si importante que ca. Mais j'y songerait ;)

"$pseudo est une chaine de caractere maintenant, plus un tableau.
pareil pour mdp. "

Ca change quoi ? car je n'es pas tellement compris.

A force de refaire le script je fais n'importe quoi en faite ^^

deepblue
deepblue
Niveau 16
24 août 2009 à 22:58:12

$pseudo = $_POST['pseudo'];
$mdp = $_POST['mdp'];

$_POST = array
$pseudo = chaine de caractère (pioché dans l'array $_POST à l'index 'pseudo')

Donc : if ($pseudo['pseudo']==$resultreqpseudo AND $mdp['mdp']==$resultreqmdp) ne convient pas
if ($pseudo == $resultreqpseudo AND $mdp == $resultreqmdp) convient :ok:

Si tu ne comprends pas trop, après avoir posté ton formulaire, fait :

echo '<pre>', var_dump($_POST, $pseudo, $mdp);

The-End62
The-End62
Niveau 7
24 août 2009 à 23:51:37

Ah ok j'ai compris en faite :ok: Merci de ton aide.

Ca marche =) Tout ca pour une histoire de '' ^^

Comme quoi il faut bien relire attentivement sont script ( le probleme c'est qu'a force on ne voit plus les erreurs ^^)

The-End62
The-End62
Niveau 7
25 août 2009 à 00:18:07

Hum en faite non, dans les deux cas ca redirige vers la page "Index" :\

Voici mon script :

<?php
$pseudo=$_POST['pseudo'];
$mdp=$_POST['mdp'];

mysql_connect("*****","*****","*****");
mysql_select_db('******');

$reqverifpseudo="SELECT mdp FROM UTILISATEUR WHERE pseudo='$pseudo'";
$reqverifmdp="SELECT pseudo FROM UTILISATEUR WHERE mdp='$mdp'";

$resultreqpseudo=mysql_query($reqverifpseudo);
$resultreqmdp=mysql_query($reqverifmdp);

if ($pseudo == $resultreqpseudo AND $mdp == $resultreqmdp)
{

header('location:http://www.staymetal.fr/news.php
');
}
else

header('location:http://www.staymetal.fr/index.ph
p');

?>

_skip
_skip
Niveau 10
25 août 2009 à 08:37:47

if ($pseudo == $resultreqpseudo AND $mdp == $resultreqmdp)

Cette vérification tient pas la route...

tu compares une chaîne de caractères et un resultSet brut. Tu dois extraire l'information qui t'intéresse dans le résultat de mysql_query. Ce n'est pas quelque chose que tu peux utiliser simplement comme ça...

PS: C'est là qu'on voit à quel point le typage c'est du porte-nawak en PHP.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment