Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour,

je rencontre un problème avec un script.

Malgré la bdd et les identifiants corrects, je n'arrive pas à le faire fonctionner.

Le script me retourne l'erreur $message.=$iden_echouee; qui signifie "identification échouée"

Peut etre il y a t'il une erreur de programmation ?

Je pense que ça bug là :

if (isset($_POST['identification']))

{

if (empty($_POST['passe']) || empty($_POST['pseudo']))

{

$message.=$champs_non_remplis_login;

}

$verification="select pseudo,passe from pds_bannieres_membres where pseudo=\"$_POST[pseudo]\" and passe=\"$_POST[passe]\" and valide=1 ";

$sql=mysql_query($verification);

$num_rows=mysql_num_rows($sql);

if ($num_rows==0)

{

$message.=$iden_echouee;

}

if ($message=='')

{

if ($_POST['retenir']==on)

{

$expire = 365*24*3600; // on défini la durée du cookie, 1 an

setcookie("pseudo_pds_ban","$_POST[pseudo]",time()+$expire);

setcookie("passe_pds_ban","$_POST[passe]",time()+$expire);

print "<script language=javascript>window.location=\"membres/membres.php\"</script>";

}

else

{

setcookie("pseudo_pds_ban","$_POST[pseudo]");

setcookie("passe_pds_ban","$_POST[passe]");

print "<script language=javascript>window.location=\"membres/membres.php\"</script>";

}

}

}

<modérateur : merci de rédiger tes messages dans un français correct>

Modifié par goldrazor
Posté

Remplace la ligne

$sql=mysql_query($verification);

par

$sql=mysql_query($verification)or die('Erreur dans la connexion MySQL :<br />'.mysql_error().'');

Si "Erreur dans la connexion MySQL" s'affiche, donne nous le message d'erreur qui est à la ligne suivante.

Posté

Merci, mais aucun message d'erreur apparait, sauf celui de la message box quidit "l'identification a échouée" :sad:

Posté

Alors remplace ce que je t'ai donné par ça :

$sql=mysql_query($verification)or die($message.='Erreur dans la connexion MySQL :<br />'.mysql_error().'';);

Posté

Toujours pareil, aucun message d'erreur sauf le msgbox qui dit "Votre identification a échoué" :sad:

Posté

Donc la requête fonctionne correctement, ça veut dire qu'aucun enregistrement n'est retourné, et donc tout bêtement que... tes identifiants sont incorrects.

Visiblement, ils ne sont pas cryptés, tu peux donc facilement vérifier dans ta base de données si tu entres les bons...

Posté

tu te fais une petit

echo $verification;

Ca t'affichera ta requete.

Tu fais un copier-coller dans phpmyadmin et tu veras ce que ta requete te donne.

Hervé

Posté

Je verifie et pourtant ce sont les bons identifiants.

Peut etre que c'est mon ordi qui déconne.

Voici le compte du site http://www.PromoClic.com/ (désolé pour la pub)

pseudo : flashkiss

passe : test

Merci de me dire si chez toi, ca fait pareil.

Posté

Effectivement j'ai la même erreur, mais ce sont bien les identifiants qui ont un problème...

Fais ce qu'Hervé suggère, et regarde si un enregistrement est effectivement renvoyé.

Posté

comme ceci ?

$verification="select pseudo,passe from pds_bannieres_membres where pseudo=\"$_POST[pseudo]\" and passe=\"$_POST[passe]\" and valide=1 ";
echo $verification;

Car je veux pas etre chiant, mais ca affiche rien du tout :-/

Posté

Quand tu as un problème de ce type la meilleur solution est de voir ce que tu envois comme requete et voir ce qu'elle te rend.

De plus tu veras directement si tes login/ pass sont juste dans ta requete.

Peut être une petite idee, remplace ta requete par :

$verification="select pseudo,passe from pds_bannieres_membres where pseudo='$_POST[pseudo]' and passe='$_POST[passe]' and valide='1'";

Hervé

Posté

C'est gentil webadev de me venir en aide. Malheureusement, malgrés ce changement de requete, il y a toujours ce msgbox qui m'indique que mon identification a échoué.

Posté

Salut

Ce n'est certainement pas moi qui t'aiderait en PHP, mais au-délà de l'alerte Javascript tu as surtout un message d'erreur PHP selon lequel tu aurais un problème d'en-têtes dans ton code ("headers already sent")

Généralement ce message provient d'un include foireux.. donc essaie peut-être déjà de voir de ce côté-là..

Warning: Cannot modify header information - headers already sent by (output started at /home.3/promocli/www/login.php:6) in /home.3/promocli/www/login.php on line 124

Warning: Cannot modify header information - headers already sent by (output started at /home.3/promocli/www/login.php:6) in /home.3/promocli/www/login.php on line 12

Hope this helps !

Posté (modifié)

En ce qui concerne l'erreur en php, tu dois avoir un caractere qui s'affiche avant la creation de ta session un truc du style.

C'est gentil webadev de me venir en aide. Malheureusement, malgrés ce changement de requete, il y a toujours ce msgbox qui m'indique que mon identification a échoué.

Tu as fais ce que je t'ai dis avec l'affichage de ta requete ?

PhpMyAdmin t'a donné quoi ?

EDIT 1 :

On a pas tout le script à quel moment tu fais intervenir ta voite Alert ?

Car à mon avis c'est à ce niveau que cela ce situe.

EDIT 2 :

Remplace

print "<script language=javascript>window.location=\"membres/membres.php\"</script>";

Par

header("Location: http://http://www.promoclic.com/membres/membres.php");
exit();

Petit conseil : Ajoute un index.html dans ton repertoire /membres/

EDIT 3 :

Autre conseil : utilise les sessions si le gars ne veut pas retenir son login/pass

Donne nous le code de ta page membres.php

Je suis sur a 99% que le problème vient de la, vu qu'on est redirigé dessus donc ca vérifie ta condition : $message==''

Hervé

Modifié par webadev
Posté

Après avoir testé avec goldrazor, la requête SQL est correcte et retourne bien l'utilisateur demandé, le problème est autre part...

Cf le message d'Hervé et celui de Dudu.

Posté

Webadev, quand je fais la modification au niveau du code, je me retrouve avec le problème cité par dudu.

Pour la construction du site, j'ai volontairement pas mis d'index dans le repertoire membres ainsi que dans d'autre repertoire. mais ca ne saurai tarder ;-)

Voici le code de la page membres.php

<?
//On inclut les fichiers necessaires
include ("../config.php");
include ("../protection.php");
include ("../langues.php");
include ("../fonctions.php");
include ("../haut.php");

//On vérifie si la page est appelée avec la fonction suspendre
if (isset ($_GET['suspendre']))
{
$update="update pds_bannieres_membres set suspendre=$_GET[suspendre] where pseudo=\"$_COOKIE[pseudo_pds_ban]\" and passe=\"$_COOKIE[passe_pds_ban]\"";
$sql=mysql_query($update);
}

//on inclut la fonction d'affichage
affichage();

//On inclut le début du tableau membres
debut_tableau_membres();

//On affiche la page
print "<center><b>Bienvenue dans votre espace membre <font color=red>$_COOKIE[pseudo_pds_ban]</font><br><br></center><hr width=50><br><br>";
$selection="select * from pds_bannieres_membres where pseudo=\"$_COOKIE[pseudo_pds_ban]\" and passe=\"$_COOKIE[passe_pds_ban]\"";
$sql=mysql_query($selection);
while ($a_row=mysql_fetch_assoc($sql))
{
print "Il vous reste actuellement <font color=red>$a_row[credits]</font> crédits. Vous avez affiché <font color=red>$a_row[affichages_envoyes]</font> bannières pour <font color=red>$a_row[affichages_recus]</font> bannières affichées.<br><br>";
print "<hr width=50>Vous avez généré <font color=red>$a_row[clics_envoyes]</font> clics et en avez reçu <font color=red>$a_row[clics_recus]</font><br><br>";
//On vérifie si le compte est supendu ou non
if ($a_row['suspendre']==1)
{
print $fin_membres_desactive;;
}
else
{
print $fin_membres_active;
}
}

//On inclut la fin du tableau des membres
fin_tableau_membres();

//On inclut le ficher bas.php
include ("../bas.php");
?>

Il y a t'il une erreur sur cette page ?

Merci ;)

Posté

Apparemment je crois avoir trouvé la solution.

J'ai inclu le template dans les fichiers haut.php et bas.php, chose que je n'avais pas fait. J'avais carrement inclu le script au milieu du template.

Je remercie toutes les personnes ayant participé de prés ou de loin à cette discussion et j'espere que celle ci profitera pour d'autres débutants comme moi lol

A bientot j'espere, mais bon je suis pas pressé ;-)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...