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

[Zone membre]Script de connexion

lbajul
lbajul
Niveau 10
24 avril 2006 à 19:55:53

Salut à tous !
Voilà, mon script de connexion ne marche pas. Je sollicite votre aide pour résoudre ce probnlème. Mais tout d´abord, voilà mon script :

connexion.php :

<?
mysql_connect(´localhost´,´user´,´ :) ´);
mysql_select_db(´database´);

if (isset($_POST[´connect_pseudo´]) AND isset($_POST[´connect_pass´]))
{
$connect = mysql_query("SELECT * FROM membres WHERE pseudo=".$_POST[´connect_pseudo´]);
$donnees = mysql_fetch_array($connect);
$pseudo = $_POST[´connect_pseudo´];

if (empty($_POST[´connect_pass´]) OR empty($_POST[´connect_pseudo´]))
{
echo ´<span style="color:red">Les 2 champs sont obligatoires.</span><br>´;
}

if (!isset($donnees))
{
echo ´<span style="color:red">Ce pseudo n\´existe pas.</span><br>´;
?>
<meta http-equiv="refresh" content=´2; url="index.php"´>
<?
}
else if ($_POST[´connect_pass´] != $donnees[´password´])
{
echo ´<span style="color:red">Ce n\´est pas le bon mot de passe.</span><br>´;
?>
<meta http-equiv="refresh" content=´2; url="index.php"´>
<?
}
}
if (isset($_COOKIE[´pseudo´]))
{
?>
<form action="index.php?suppr_cookie=1" method="post">
<center>
<input type="text" value="<? echo $_COOKIE[´pseudo´];?>" size="15" readonly>
<input type="password" value="<? echo $_COOKIE[´pass´]; ?> " size="15" readonly><br>
<a href="">Mon compte</a><br>
<input type="submit" value="Déconnexion">
</center>
<?
}
else
{
?>
<form action="index.php" method="post">
<center>
<input type="text" name="connect_pseudo" value="Votre pseudo" OnFocus="this.value=´´;" size="15"><br>
<input type="password" name="connect_pass" value="Password" OnFocus="this.value=´´;" size="15"><br>
<input type="checkbox" name="auto_connect">Automatique<br>
<input type="submit" value="Connexion" Onclick="javascript:alert(´Attention ! \nNe divulgez jamais votre mot de passe ! \nMême pas à un admin !´ )">
<a href="inscription.php">Inscription</a>
</center>
</form>
<?
}
?>

index.php (pour la création de cookies) :

<?
mysql_connect(´localhost´, ´user´, ´ :) ´);
mysql_select_db(´database´);

$pseudo = mysql_query("SELECT * FROM membres WHERE pseudo=".$_POST[´connect_pseudo´]);

if (isset($_POST[´connect_pseudo´]) AND isset($pseudo) AND isset($_POST[´auto_connect´]))
{
$timestamp_expire = time() + 10000*24*3600;
setcookie(´pseudo´, ´´.$_POST[´connect_pseudo´].´´, $timestamp_expire);
setcookie(´pass´, ´´.$_POST[´connect_pass´].´´, $timestamp_expire);
?>
<meta http-equiv="refresh" content=´0; url="index.php"´>
<?
}
else if (isset($_GET[´suppr_cookie´]))
{
setcookie(´pseudo´, ´´, time() + 10000*24*3600, ´/´);
setcookie(´pass´, ´´, time() + 10000*24*3600, ´/´);
?>
<meta http-equiv="refresh" content=´0; url="index.php"´>
<?
}
else if (isset($_POST[´connect_pseudo´]) AND $_POST[´connect_pseudo´] == $donnees[´pseudo´] AND $_POST[´connect_pass´]== $donnees[´password´] AND !i sset($_POST[´auto_connect´]))
{
setcookie(´pseudo´, ´´.$_POST[´connect_pseudo´].´´);
setcookie(´pass´, ´´.$_POST[´connect_pass´].´´);
?>
<meta http-equiv="refresh" content=´0; url="index.php"´>
<?
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
...etc...

connexion.php en couleur :
http://simmstein.be/phpcode/?rub=wall&amp;nom=WjfHFHWd&amp;type=php
index.php en couleur :
http://simmstein.be/phpcode/?rub=wall&amp;nom=NLUA5dQg&amp;type=php

Dans ma base de données, j´ai crée 2 membres : lbajul et admin. Que j´essaye l´un ou l´autre, ça m´affiche toujours "Ce n´est pas le bon mot de passe."; je ne comprend pas, pouvez vous me dire où est l´erreur ?

PS : j´ai mis les bons identifiants pour la connexion à la BDD.

Merci d´avance !
Cordialement, lbajul.

lbajul
lbajul
Niveau 10
25 avril 2006 à 09:43:00

:up: Personne pour m´aider :snif: ?

lbajul
lbajul
Niveau 10
26 avril 2006 à 09:46:31

:up:
Vraiment personne ??

deepblue
deepblue
Niveau 16
26 avril 2006 à 10:59:25

while(donnees = mysql_fetch_array($connect))
$pass = $donnees[´password´];

...
...
...

elseif ($_POST[´connect_pass´] != $pass)

ça devrait marcher

cyril381
cyril381
Niveau 9
26 avril 2006 à 11:05:12

pseudo=".$_POST[´connect_pseudo´]);

c´ets normal que pseudo n´a pas ´$´?

deepblue
deepblue
Niveau 16
26 avril 2006 à 11:18:10

tu enleves ça :
$donnees = mysql_fetch_array($connect);

tu le remplace par :
while($donnees = mysql_fetch_array($connect))
$pass = $donnees[´password´];

...

et tu remplaces ton elseif par :
elseif ($_POST[´connect_pass´] != $pass)

deepblue
deepblue
Niveau 16
26 avril 2006 à 11:19:53

Cyril381 > retourne apprendre le php :snif2: si tu le connaissais un petit peu, tu saurais de quoi il retourne !

lbajul
lbajul
Niveau 10
26 avril 2006 à 14:17:30

Merci beaucoup, je vais tout de suite essayer ça.

lbajul
lbajul
Niveau 10
26 avril 2006 à 14:29:45

:snif2: ça ne marche toujours pas :snif2:

J´ai pourtant mis ce que tu m´as dis :

if (isset($_POST[´connect_pseudo´]) AND isset($_POST[´connect_pass´]))
{
$pseudo = $_POST[´connect_pseudo´];
$connect = mysql_query("SELECT * FROM membres ORDER BY id WHERE pseudo=".$pseudo);
while($donnees = mysql_fetch_array($connect))
$pass = $donnees[´password´];

if (empty($_POST[´connect_pass´]) OR empty($_POST[´connect_pseudo´]))
{
echo ´<span style="color:red">Les 2 champs sont obligatoires.</span><br>´;
}

if (!isset($connect))
{
echo ´<span style="color:red">Ce pseudo n\´existe pas.</span><br>´;
?>
<meta http-equiv="refresh" content=´2; url="index.php"´>
<?
}
elseif ($_POST[´connect_pass´] != $pass)
{
echo ´<span style="color:red">Ce n\´est pas le bon mot de passe.</span><br>´;
?>
<meta http-equiv="refresh" content=´2; url="index.php"´>
<?
}
}
...

En couleur :
http://simmstein.be/phpcode/?rub=wall&amp;nom=OMjhFw8b&amp;type=php

Je pense que ça vient du while. Normalement après il faut mettre { et } pour définir la boucle
(par exemple :
while ($donnees = mysql_fetch_array($connect))
{
...
}
).
Mais ici je ne vois pas, je pensais que c´était indispensable... corrigez moi si je me trompe.

lbajul
lbajul
Niveau 10
26 avril 2006 à 14:36:19

Désolé pour le triple post, mais c´est juste pour préciser que je n´ai pas fais de copier/coller du code que tu m´as donner deepblue (jv.com remplace les guillemets), et pour dire aussi que maintenant, ça ne m´affiche plus "Ce n´est pas le bon mot de passe." mais ça me met une erreur MySQL :
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in connexion.php on line 10

deepblue
deepblue
Niveau 16
26 avril 2006 à 15:01:28

$connect = mysql_query("SELECT * FROM membres WHERE pseudo=$pseudo ORDER BY id ");

lbajul
lbajul
Niveau 10
26 avril 2006 à 15:40:30

J´ai changer cela mais ça ne marche toujours pas. :snif: J´ai rajouter "OR DIE (´Erreur SQL´)" et ça m´affiche "Erreur SQL".
Où est donc le problème ? Je ne pense pas que ça vient de ma table SQL...

id int(11) auto_increment
pseudo varchar(30)
password varchar(10)
email varchar(50)
ban int(2)

et une seule entrée pour cette table :
1 lbajul ******** test@test.fr 0

PS : j´ai crée un champ "ban" pour le bannissement, il a pour valeur 1 si la personne est bannie. Je ne sais pas si cette technique est efficace car s´il y a beaucoup d´inscrits et beaucoup de bannis, les pseudos des bannis restent quand même dans la table, et celle-ci est alors encombrée.
Connaîtriez-vous une méthode plus simple pour bannir un membre ?

lbajul
lbajul
Niveau 10
26 avril 2006 à 15:41:59

Ha et merci beaucoup à toi, deepblue, d´essayer de résoudre mon problème.

lbajul
lbajul
Niveau 10
27 avril 2006 à 16:12:58

Personne n´est en vacances à part moi ou quoi ??

J´ai toujours pas résolu mon problème...
Merci d´avance à ceux qui voudront bien m´aidé :-)))

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