Problème Système de connexion | PHP
Esdee
-
Esdee -
Esdee -
Bonjour, :] !
Cela va fait environs 2 / 3 heures que je cherches sur google tout comme personnelement (moi même) d'où pourrait venir mes problèmes.
Comme dis dans le titre, j'ai un petit problème avec mon système de connexion sur mon site. Je m'explique.
Je créé un compte sans aucune problème sur mon site.
Mais une fois que je tente de me connecter, au lieu d'être redirigé vers ma page 'membre.php', ca ne fait que me rediriger vers ma page 'Connexion.php' (qui est présent dans la balise <form>).
Bon, ceci n'a pas l'air très parlant :/.
Je vais donc vous montrer mon script en entier.
Et vais mettre, en Italique, la partie qui me semble incorrècte (pour que vous evitiez d'analyser tout mon code :))>
/// PARTIS "HTML":
Bon, voilà tout. J'ai raccourcis supprimer un maximum de code n'étant pas très utile (textes, quelques balises, etc..). Donc si il y a quelques petitees erreurs, ce n'est rien ^^.
Donc, merci de votre aide :).
Rappel de mon problème: Quand je tente de me connecter, ca ne fait qu'actualiser ma page sans me connecter :x ...
Bonne soirée !
Cela va fait environs 2 / 3 heures que je cherches sur google tout comme personnelement (moi même) d'où pourrait venir mes problèmes.
Comme dis dans le titre, j'ai un petit problème avec mon système de connexion sur mon site. Je m'explique.
Je créé un compte sans aucune problème sur mon site.
Mais une fois que je tente de me connecter, au lieu d'être redirigé vers ma page 'membre.php', ca ne fait que me rediriger vers ma page 'Connexion.php' (qui est présent dans la balise <form>).
Bon, ceci n'a pas l'air très parlant :/.
Je vais donc vous montrer mon script en entier.
Et vais mettre, en Italique, la partie qui me semble incorrècte (pour que vous evitiez d'analyser tout mon code :))>
<?php /* Parcour du formulaire de connexion. */ if (isset($_POST['Connexion']) && $_POST['Connexion'] == 'Connexion') { if ((isset($_POST['Pseudo']) && !empty($_POST['Pseudo'])) && (isset($_POST['Mot_de_Passe']) && !empty($_POST['Mot_de_Passe']))) { // Connexion à la base de donnée. include("Connexion_Base.php"); // Selection à partir de la bdd. $sql = 'SELECT count(*) FROM membre WHERE Pseudo="'.mysql_escape_string($_POST['Pseudo']).'" AND Mot_de_Passe="'.mysql_escape_string($_POST['Mot_de_Passe']).'" '; $req = mysql_query($sql) or die('<p><div align="center"><font color="#CB0000"><strong><u>Erreur Fatale:</u> Un erreur c\'est imposée dans la base de donnée SQL.<br /></font><u>Script erroné:</u> '.$sql.'<br /><u>Explications:</u> '. mysql_error() . '</strong></div></p>'); $data = mysql_fetch_array($req); mysql_free_result($req); mysql_close(); // Connexion réussie if ($data[0] == 1) { session_start(); $_SESSION['Pseudo'] = $_POST['Pseudo']; header ('Location: membre.php'); exit(); } // Connexion faussée elseif($data[0] == 0) { $erreur = 'erreur'; } else { $erreur = 'erreur' } } else { $erreur = erreur'; } } ?>
/// PARTIS "HTML":
<!-- Début script : Contenu --> <h1>Connexion...</h1> Présentation, etc.. <?php if (isset($erreur)) echo '$erreur'; <p> <form action="Connexion.php" method="post"> <p> Nom d'Utilisateur : <input type="text" name="Pseudo" value="<?php if (isset($_POST['Pseudo'])) echo htmlentities(trim($_POST['Pseudo'])); ?>"> </p> <p> Mot de Passe : <input type="password" name="Mot_de_Passe" value="<?php if (isset($_POST['Mot_de_Passe'])) echo htmlentities(trim($_POST['Mot_de_Passe'])); ?>"> </p> <p> <div align="center"> <input type="submit" name="Connexion" value="Connexion"> </div> </p> </form> </p>
Bon, voilà tout. J'ai raccourcis supprimer un maximum de code n'étant pas très utile (textes, quelques balises, etc..). Donc si il y a quelques petitees erreurs, ce n'est rien ^^.
Donc, merci de votre aide :).
Rappel de mon problème: Quand je tente de me connecter, ca ne fait qu'actualiser ma page sans me connecter :x ...
Bonne soirée !
A voir également:
- Problème Système de connexion | PHP
- Gmail connexion - Guide
- Restauration systeme windows 10 - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- D'où peut venir un problème de connexion internet sur un ordinateur ? - Guide
24 réponses
Pourquoi faire:
Ton $data[0] serait mieu en
window XP
if ($data[0] == 1) { session_start(); $_SESSION['Pseudo'] = $_POST['Pseudo']; header ('Location: membre.php'); exit(); }
Ton $data[0] serait mieu en
mysql_num_rows($sql) > 0
window XP
Ah merci :) ! Ca a l'air de marcher 'un peu mieux' ^^.
Mais maintenant j'ai une message d'erreur qui apparait :/.
elseif($data[0] == 0)
{
$erreur = 'erreur';
}
Le message d'erreur souligné s'affiche, je ne sais pourquoi :/.
J'ai bien vérifié si j'insérais les bonnes coordonnées de connection, mais ca persiste :S.
Mais maintenant j'ai une message d'erreur qui apparait :/.
elseif($data[0] == 0)
{
$erreur = 'erreur';
}
Le message d'erreur souligné s'affiche, je ne sais pourquoi :/.
J'ai bien vérifié si j'insérais les bonnes coordonnées de connection, mais ca persiste :S.
Oui, désoler, j'ai oublié de précisé que j'avais fait le changement ^^'.
Donc, toujours ce message d'erreur :( .. Je déséspère :S..
Donc, toujours ce message d'erreur :( .. Je déséspère :S..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est donc que votre sortie de requete est vide, faite un echo de votre requete et passé la directement dans mysql. Vous aurez surement la réponse.
Résultat: Aucune problème.
Ca ne m'affiche aucun message d'erreur, et ca m'affiche bien tous les compts créés sur ma base de donnée :O ..
Ca ne m'affiche aucun message d'erreur, et ca m'affiche bien tous les compts créés sur ma base de donnée :O ..
Toujours le même problème :'(.
Enfet, si ca peut aider, j'ai 6 champs dans ma table 'membre', ca vient peut être de là .. ?
Enfet, si ca peut aider, j'ai 6 champs dans ma table 'membre', ca vient peut être de là .. ?
Moi je ferais plutot cela:
$sql = 'SELECT Pseudo, Mot_de_passe FROM membre WHERE Pseudo="'.mysql_real_escape_string($_POST['Pseudo']).'" '; $req = mysql_query($sql); $data = mysql_fetch_array($req); if(!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Pass'] ) { session_start(); $_session['user'] = $_POST['Pseudo']; ....... }else { le code pas bon}
$sql = 'SELECT Pseudo, Mot_de_passe FROM membre WHERE Pseudo="'.mysql_real_escape_string($_POST['Pseudo']).'" '; $req = mysql_query($sql); $data = mysql_fetch_array($req); if (!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Mot_de_Passe']))
Voilà le message d'erreur de la part de pHP :/ >
Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ')' in XXX on line 34
J'ai pourtant corrigé une petit erreur (de parenthèse), mais cela n'y change rien :/.
Désoler, j'ai oublié de préciser que la (ligne.34) est celle en gras et italique.
(
)
(
if (!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Mot_de_Passe']))
)
tu as dans une parenthese en trop:
if (!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Mot_de_Passe'])) remplace par: if (!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Mot_de_Passe']) { le code }
Toujours le même problème =/.
Mais ce que je ne comprend pas:
Avant
Mais ce que je ne comprend pas:
if (!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Mot_de_Passe'])
Avant
$data, on a bien une parenthèse, ne faudrait-il pas la fermer à la fin de la ligne ?
Controle tes sorties de requete avec un print_r() sur pseudo et mot_de_passe.
et controle bien que $data['mot_de_pass'] soit bien égal à $_POSt['mot_de_pass']
et controle bien que $data['mot_de_pass'] soit bien égal à $_POSt['mot_de_pass']
Ah, un peu de nouveau !
J'ai remplacé:
Par:
J'ai fait ces modifications aux deux reprises, le message d'erreur ne s'affiche plus :].
Ensuite, j'ai testé l'égalité de $_Post et $data, à prioris, tout semble être corrècte.
Je vais voir ce que je peux faire avec le print_r() [Bien que je n'ai pas vraiment compris ce que je dedvais faire, je vais quand même tester quelque chose].
Ah ! Et enfet!
Je vous remercie de vous occuper de mon problème [depuis 1-2 jours déjà] ;). C'est très aimables.
J'ai remplacé:
if (!empty($data['Pseudo'] && $data['Mot_de_passe'] == $_POST['Mot_de_Passe'])
Par:
if (@!empty ($data['Pseudo']) && ($data['Mot_de_passe']) == ($_POST['Mot_de_Passe']))
J'ai fait ces modifications aux deux reprises, le message d'erreur ne s'affiche plus :].
Ensuite, j'ai testé l'égalité de $_Post et $data, à prioris, tout semble être corrècte.
Je vais voir ce que je peux faire avec le print_r() [Bien que je n'ai pas vraiment compris ce que je dedvais faire, je vais quand même tester quelque chose].
Ah ! Et enfet!
Je vous remercie de vous occuper de mon problème [depuis 1-2 jours déjà] ;). C'est très aimables.
J'actualise :].
Résultat:
Pour le premier script, le texte 'OK' est bien affiché, donc ca a l'air bon.
Pour le second script, $result (1,2,3,4) ont tous pour valeur 1 (affichées aussi).
Donc, à prioris, aucun problème de ce côté là.
<?php if ($data['Mot_de_Passe'] == $_POST['Mot_de_Passe']) echo '<h1>OK</h1>'; $result1 = print_r ($_POST['Pseudo']); $result3 = print_r ($data['Pseudo']); $result2 = print_r ($_POST['Mot_de_Passe']); $result4 = print_r ($data['Mot_de_Passe']); echo $result1 . '<br>' . $result3 . '<br><br>' . $result2 . '<br>' . $result4; ?>
Résultat:
Pour le premier script, le texte 'OK' est bien affiché, donc ca a l'air bon.
Pour le second script, $result (1,2,3,4) ont tous pour valeur 1 (affichées aussi).
Donc, à prioris, aucun problème de ce côté là.