8710 sujets

Développement web côté serveur, CMS

salut tout le monde!
Voilà, je viens au près de vous aujourd'hui pour demander votre aide parce que je suis pratiquement bloqué et ne sais plus quoi faire.
En faite, j'ai crée une page d'inscription et de connexion en PHP, les données s'enregistrent correctement dans la base de données, aucun problème avec cela. Je parvient à connecter les premier utilisateur inscrit dans la base de données, mais pour ce qui est du reste des autres utilisateurs, leur connexion est impossible à partir du deuxième utilisateur. J'ai vraiment regardé partout dans mon code, je ne parvient pas à détecter d'où vient le problème.
Je dépose mon code et j'espère que vous pourrez vraiment me venir en aide Smiley smile

formulaire html de ma page d'inscription :
upload/1542395321-73278-pagecrnation.png

Le code PHP qui contrôle le formulaire:
upload/1542395662-73278-pagephpcontrnilecrnation.png

Et en fin le code qui gère la connexion des utilisateurs:
upload/1542395852-73278-pageconnexion.png

Comme je vous l'ai dit, ce n'est que le premier utilisateur qui peux se connecter à la base de données mais le reste non. Je ne comprend vraiment pas pour quoi mon code ne fonctionne pas totalement, pourtant d'après moi il n'y pas de problème. Merci d'avance Smiley biggrin
Bonjour Chris-Jung
Tu pourrais être plus précis quand tu dis "que le deuxième utilisateur ne peux pas se connecter"
Est-ce la page qui plante, ou est-ce que les données ne fonctionnent pas.

Merci,

<?php
if (isset($_POST['send']))
{
    if(isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['password']) && !empty($_POST['password']))
    {
        $pseudo = htmlspecialchars($_POST['username']);
        $motdepasse = htmlspecialchars(md5($_POST['password']));

        $req3 = $db -> query('SELECT pseudo, motdepasse FROM registration WHERE pseudo = ' . $pseudo );
        $connect = $req3 -> fetch();

        if($connect != false && ($motdepasse == $connect['motdepasse']) )
        {
            session_start();
            $SESSION['pseudo'] = $pseudo;
            header('Location: userspace.php');
            exit();
        }
        else
        {
            echo "<h3>Nom d'utilisateur ou mot de passe incorrecte !</h3>";
        }
    else
    {
        echo "<h3>Veillez compléter tout les champs...</h3>";
    }
}
?>

Modifié par biduletruck (17 Nov 2018 - 00:46)
Il faut faire des "dumps" des "data" et faites attention à la volumétrie, sinon bonjour les timeouts de 30 sec avec Memcached!! J'attends que vous fournissiez un but de code plus explicite, mais de mémoire il est mieux d'utiliser namespaces php7 et array_walk fonction. Sinon vous pouvez toujours utiliser jQuery mais cela dépasse alors ma compréhension. Bon code !!!
Salut UBrainFr
En faite, le code fonctionne proprement, les inscriptions sont faites et insérées dans la base de données correctement. Mais le problème est au niveau de la connexion des utilisateurs. Seul le premier utilisateur parvient à se connecter, mais le reste à partir du deuxième n'y parviennent pas, mais pourtant, ils sont bien inscrits dans la base de données tout comme le premier membre...
J'espère que cela a été un peu plis claire, j'attends cordialement ce que tu as a proposé

Merci !
Bonjour biduletruck,

Merci pour ta réponse, j'ai fait exactement ce que tu m'as prescrit, mais je reçois quand même une erreur quand j'essaie de me connecter. Et l'erreur est la suivante:
Fatal error: Call to a member function fetch() on boolean in C:\wamp\www\account_registre\includes\connexion.php on line 12.

J'ai fouillé et essayé de faire quelque chose pour enlever cette erreur mais sans succès.
Je te prie de revérifier et de me venir en aide à nouveau.
Merci d'avance !
d'après le message d'erreur ce serai ici
$connect = $req3 -> fetch();

as-tu essayé avec
$connect = $req3 -> fetchAll();
Hi biduletruck,
Même avec fetchAll(), ça me renvoie une erreur disant que la variable motdepasse n'est pas défini sur la ligne 14 du code !

Merci de réessayer
après fait:



$connect = $req3 -> fetchall();
var_dump($connect);
die();


et regarde le résultat du dump pour voir quoi la variable n'est pas reconnue
Quand je fais un var_dump($connect), ça m'affiche en effet le pseudo et le motdepasse, correctement. Mais je ne sais pas réellement d'où vient le problème afin que ça ne puisse pas faire connecter les autres utilisateurs de ma base...
J'sais plus trop quoi faire.

S'il existe une autre solution pour cela, je suis près à apprendre !
Voilà. J'espère que ça pourra vous aider...

<?php include('includes/connect.php'); ?>

<?php

	if (isset($_POST['send'])) {

		if(isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['password']) && !empty($_POST['password'])){
			$pseudo = htmlspecialchars($_POST['username']);
			$motdepasse = htmlspecialchars(md5($_POST['password']));

			$req3 = $db -> query('SELECT pseudo, motdepasse FROM registration');
			$connect = $req3 -> fetchAll();
			//var_dump($connect);
			//die();

			if($connect != false && ($motdepasse == $connect['motdepasse'])){

				session_start();
				$SESSION['pseudo'] = $pseudo;
				header('Location: userspace.php');
				exit();
			}
			else{
				echo "<h3>Nom d'utilisateur ou mot de passe incorrecte !</h3>";
			}
		}
		else{
			echo "<h3>Veillez compléter tout les champs...</h3>";
		}
	}

?>