Envoi de données avec formulaire

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -
Aaaaahh, les joies de l'informatique quand tout merdoie sur une page alors que l'on utilise la même syntaxe au caractère près sur une autre page qui fonctionne... Alors voilà, tout ce que je veux, c'est créer deux zones de textes où l'utilisateur entre son pseudo et son mot d passe, et les récupérer sur une autre page. Rien de bien difficile, sauf quand tout se met à foirer sans raisons ( j'espère bien qu'il y a une raison quand même !). Alors voilà mon formulaire :

<form method="post" action="Co.php">
<input type="text" class="identifiant" name="pseudo" placeholder="Pseudo"></input>
<input type="password" class="motdepasse" name="passe" placeholder="mot de passe"></input>
<input type="submit" value="Connexion" class="ButtonLogin" onclick="connect()"></input>
</form>




Et voilà ma page Co.php :

<?php

$req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
$req->execute(array(
'pseudo' => $_POST['pseudo'],
'pass' => $_POST['passe']));

$reponse = $req->fetch();

if(!$reponse)
{
echo "Le mot de passe et/ou l'identifiant est incorrect ";
}
else
{
session_start();
$_SESSION['pseudo'] = $pseudo;
$_SESSION['passe'] = $mot;
echo "Connexion réussie, vous pouvez fermer cette fenêtre";
}
?>


Et à chaque fois que je lance la connexion, voilà ce que j'obtiens :

Notice: Undefined index: pseudo in C:\wamp\www\Site\Co.php on line 12

Notice: Undefined index: passe in C:\wamp\www\Site\Co.php on line 13


Alors que j'ai bien définie pseudo et passe avant. J'ai déjà fait ça sur une autre page et ça marchait nickel, alors je ne sais vraiment pas quoi faire à part me défouler en écoutant du AC/DC pour ne pas flinguer mon ordi...
J'espère que vous trouverez une erreur !
Merci d'avance !

3 réponses

Spiruline
 
Bonjour, met nous un petit
if(isset($_POST['pseudo'] AND isset($_POST['password']{
$pass = $_POST['password'];
$pseudo = $_POST['password'];


}
et remplace ça
$bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass'); 
$req->execute(array(
'pseudo' => $_POST['pseudo'],
'pass' => $_POST['passe']));
par ça
bdd->prepare('SELECT id FROM membres WHERE pseudo = ? AND pass = ?');
$req->execute(array($pseudo, $pass));
0
Spiruline
 
j'ai zaper le $ devant bdd
0
Doctor C Messages postés 648 Statut Membre 399
 
Lorsque tu tentes d'initialiser ta session, les variables
$pseudo
et
$mot
n'existent pas, tu ne les as pas initialisées nul part.

Je n'ai pas pu tester le code mais tu aurais sans doute plus de chance avec ce code-ci:

// Vérifier que le pseudo et le mot de passe sont présents
if ( !empty($_POST["pseudo"]) && !empty($_POST["passe"]) ) {

	$pseudo = $_POST["pseudo"];
	$passe = $_POST["passe"];
	
	$req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass'); 
	$req->execute(array( 
	'pseudo' => $pseudo, 
	'pass' => $passe)); 

	$reponse = $req->fetch(); 

	if(!$reponse) 
	{ 
		echo "Le mot de passe et/ou l'identifiant est incorrect "; 
	} 
	else 
	{ 
		session_start(); 
		$_SESSION['pseudo'] = $pseudo; 
		$_SESSION['passe'] = $passe; 
		echo "Connexion réussie, vous pouvez fermer cette fenêtre"; 
	} 

}

0
Spiruline
 
Lis bien le message c'est pas un soucis de session qu'il a c'est un soucis de variable
0
Doctor C Messages postés 648 Statut Membre 399
 
Il tente d'initialiser une variable session avec une variable non-définie, c'est bien un problème de variable auquel je m'adresse.
0
parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   6
 
Merci beaucoup ça marche maintenant ! Par contre j'ai un problème, je n'arrive pas à contrôler le positionnement des objets avec le CSS. Dans ma page PHP, j'ai beau écrire :
<meta charset="utf-8" />
<link rel="stylesheet" href="description.css" />

je ne peux pas jouer sur le positionnement en modifiant description.css.
Avez-vous déjà eu ce problème ? Quelle est la solution ?
0