[RESOLU] Problème formulaire connexion

Eléphant du PHP | 283 Messages

28 sept. 2014, 15:03

Bonjour à tous,

Je suis actuellement en train de travailler sur un ancien site à moi et je me rend compte qu'un certain nombre de chose ne fonctionne plus.
C'est actuellement le cas de la connexion à l'administration du site et je n'arrive pas à voir ce qui cloche avec.

Voici mon code :
<?php
if(isset($_POST['connexion_admin'])) {
{
	if(!empty($_POST['information']['pseudo_admin']) &&
		!empty($_POST['information']['motdepasse_admin']))
	{
		$pseudoAdmin		= $_POST['information']['pseudo_admin'];
		$motdepasseAdmin	= md5($_POST['information']['motdepasse_admin']);
		$validInfosAdminQuery	= $bdd->prepare("SELECT * FROM	admin_membre WHERE	pseudo=:pseudo AND
												motdepasse=:motdepasse");
		$validInfosAdminQuery->execute(array('pseudo' => $pseudoAdmin, 'motdepasse' => $motdepasseAdmin));
		if($validInfosAdminQuery->rowCount() != 0)
		{
			$validInfos		= $validInfosAdminQuery->fetch();
			$_SESSION['id']		= $validInfos['id'];
			$_SESSION['rang']	= $validInfos['rang'];
			$_SESSION['pseudo']	= $validInfos['pseudo'];
			header('Location: ./administration/');
		}
	}
}
}
?>
		<div id="connexionadmin">
			<form method="post" action="">
				<table>
					<tr>
						<td>
							Pseudo:
						</td>
						<td>
							<input	type="text"
								name="information[pseudo_admin]"
								class="input-admin"
								onfocus="if(this.value =='Pseudo:' ) this.value=''"
								onblur="if(this.value=='') this.value='Pseudo:'"
								value="Pseudo:"/>
						</td>
					</tr>
					<tr>
						<td>
							Mot de passe:
						</td>
						<td>
							<input	type="password"
								name="information[motdepasse_admin]"
								class="input-admin"
								onfocus="if(this.value =='Motdepasse:' ) this.value=''"
								onblur="if(this.value=='') this.value='Motdepasse:'"
								value="Motdepasse:"/>
						</td>
					</tr>
					<tr>
						<td colspan="2">
							<input	type="submit"
								name="connexion_admin"
								class="submit-admin"/>
						</td>
					</tr>
				</table>
			</form>
		</div>
Merci à ceux qui pourront m'orienter avant que je ne m'arrache les cheveux. :p

Petit nouveau ! | 5 Messages

28 sept. 2014, 17:55

Bonjour,

Pour pouvoir te répondre, as-tu une erreur lorsque le code est exécuté ?

Eléphant du PHP | 283 Messages

28 sept. 2014, 18:50

Non je n'ai aucune erreur mais rien ne se passe, ça ne redirige pas vers mon dossier administration et quand je veux accéder manuellement au dossier je ne peux pas y accéder car je ne dois pas être connecté. (page blanche)

Petit nouveau ! | 4 Messages

28 sept. 2014, 23:05

Bonjour Larker

Difficile de t'aider avec ce simple morceau de code.
Tu fais appel à des fonctions que nous n'avons pas comme :

- prepare
- execute

Et j'en passe.

ViPHP
xTG
ViPHP | 7331 Messages

29 sept. 2014, 08:23

Il utilise PDO (voir la doc pour ces fonctions).

Que te donnes un var_dump($_POST); en début de script ? Te liste-t-il toutes tes variables ?
Il te manque un session_start(); en début de script pour pouvoir utiliser les variables de session.

Affiches $motdepasseAdmin et compare le à celui que tu as en base de données.
Affiches le retour de rowCount().

Eléphant du PHP | 283 Messages

29 sept. 2014, 18:34

Salut xTG, j'ai essayé le var dump et ça m'affiche ça :array(0) { }

ViPHP
xTG
ViPHP | 7331 Messages

29 sept. 2014, 20:25

Salut xTG, j'ai essayé le var dump et ça m'affiche ça :array(0) { }
C'est donc qu'aucun formulaire n'a été envoyé via la méthode POST.
Si c'est bien en postant un formulaire que tu arrives sur cet affichage il faut vérifier que tu n'as pas entre deux un script qui fait une redirection (ou une règle serveur).

Eléphant du PHP | 283 Messages

30 sept. 2014, 17:27

Ah non pardon, je me suis trompé, en envoyant le formulaire avec le var dump ça me donne ça :
array(3) { ["pseudo_admin"]=> string(8) "Larker" ["motdepasse_admin"]=> string(8) "123456" ["connexion_admin"]=> string(7) "Envoyer" }

Donc bon je ne vois vraiment pas ce qui ne fonctionne pas, c'est vraiment le dernier élément qui me bloque pour finaliser mon site et je ne vois vraiment pas comment corriger cela. :/

ViPHP
xTG
ViPHP | 7331 Messages

30 sept. 2014, 20:41

Je ne vois pas d'index information dans ton dump.
Donc : $_POST['pseudo_admin'] au lieu de $_POST['information']['pseudo_admin'] (et de même pour les autres) ;)

Eléphant du PHP | 283 Messages

30 sept. 2014, 20:43

Oui j'ai fais les modifications avant de mettre le var dump donc c'est déjà fait. ;)

Eléphant du PHP | 283 Messages

02 oct. 2014, 18:15

Personne n'a d'idée d'où pourrait venir le problème ? :/

Eléphant du PHP | 267 Messages

02 oct. 2014, 18:51

Bonjour,
Ta session est-elle bien démarrée ?
ajoute un "session_start();" juste avant "$_SESSION['id'] = $validInfos['id'];"
dix2

Eléphant du PHP | 267 Messages

02 oct. 2014, 18:53

"session_start();" à ajouter aussi dans les autres fichiers

Eléphant du PHP | 283 Messages

02 oct. 2014, 19:09

J'ai ajouté le session start comme convenue mais ça ne marche toujours pas, ça me renvoie vers le dossier admin mais la page est blanche, la session start ne doit pas s'activer.

Eléphant du PHP | 267 Messages

02 oct. 2014, 19:13

il faut ajouter le "session_start();" aussi sur la page vers laquelle on est redirigé