Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2011, 16h04   #1
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Par défaut Hebergement free - Erreur de MySql fetch assoc et autres

Bonjour,

j'ai un soucis avec un site hébergé sous Free (oui, encore...).
Ce soucis concerne une requête SQL pour la connexion à un "profil" utilisant des sessions.
Le code qui envoie depuis un formulaire le pseudo et le mot de passe :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
include 'index.php';
	echo '
		<form name="connexion" action="connecte.php" method="POST">
			<table align=center>
			<tr>
				<td align=center>Entrez votre nom d\'utilisateur :</td>
				<td><input type="text" name="pseudo" size="50" /></td>
			</tr>
			 <tr>
				<td align=center>Entrez votre mot de passe :</td>
				<td><input type="password" name="mdp"size="50" /></td>
			</tr>
			</table>
			<br/>
			<div align=center>
				<input type="submit" name="Connection" value="Connexion">
			</div>
		</form>
	';

et le code qui traite le pseudo et le mot de passe, vérifie s'ils sont bons puis ouvre la session.

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
include 'index.php';
	if ($_POST["pseudo"] == "" || $_POST["mdp"] == "")
	{
		echo '<br/><br/>';
		echo '<h2 align="center">Veuillez renseigner un pseudo et un mot de passe</h2>';
	}
	else
	{
		$base = mysql_connect('monsite', 'nomUtilisateur', 'motdepasse secret !');
		$requete = "SELECT pseudoUtilisateur, motDePasse, fonctionUtilisateur FROM utilisateur WHERE pseudoUtilisateur = '".$_POST["pseudo"]."';";
		$resultat = mysql_query( $requete, $base );
		$row = mysql_fetch_assoc($resultat);
		if ($_POST["mdp"] != $row["motDePasse"] and $_POST["pseudo"] != $row["pseudoUtilisateur"])
			{
				echo '<br/><br/>';
				echo '<h2 align="center"> Mauvais mot de passe </h2>';
			}
		else
			{
				echo '<br/><br/>';
				echo '<h2 align="center"> Vous êtes maintenant connecté ! </h2>';
				$_SESSION['nom'] = $row['pseudoUtilisateur'];
				$_SESSION['type'] = $row['fonctionUtilisateur'];
				echo "<br/>";	
				$delai=1; 
				$url='index.php';
				header("Refresh: $delai;url=$url");
			}
	}
	include 'bas.php';

Le message d'erreur (en validant sur un pseudo et un mot de passe déjà présent dans la base)
Citation:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/connecte.php on line 13
En fait, je pense que c'est un problème plus général étant donné que j'ai un problème avec les requêtes sur tout le site.
Exemple : je remplis une liste déroulante avec les noms des livres présents dans la BDD et j'obtiens le message : aucun livre enregistré.

Vous avez des idées de quoi ça peut venir ?
En travaillant sous localhost, je n'avais aucune erreur ! Je ne vois donc pas d'où cela peut venir.
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 16h08   #2
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Remplace ceci:
Code :
$resultat = mysql_query( $requete, $base );
par:

Code :
$resultat = mysql_query( $requete);
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 16h22   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pour débugger le mysql c'est avec le trace_mode, donc au début de ton code (avant la connexion)
Code :
1
2
3
 
error_reporting(-1);
ini_set('mysql.trace_mode', true);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/06/2011, 17h23   #4
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Citation:
Envoyé par David55 Voir le message
Remplace ceci:
Code :
$resultat = mysql_query( $requete, $base );
par:

Code :
$resultat = mysql_query( $requete);
J'ai modifié et j'ai le même message d'erreur :/

Citation:
Envoyé par stealth35 Voir le message
pour débugger le mysql c'est avec le trace_mode, donc au début de ton code (avant la connexion)
Code :
1
2
3
 
error_reporting(-1);
ini_set('mysql.trace_mode', true);

A quoi sert exactement le trace mode ?



Edit : rooh mais c'est pas vrai ! je suis un boulet ...
J'avais oublié le
Code php :
1
2
 
$select = mysql_select_db('le nom de la base', $base);


Désormais la connexion s'effectue par contre j'ai un autre message d'erreur qui concerne les sessions et les headers.
Citation:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/connecte.php:1) in /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/connecte.php:1) in /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/index.php on line 2
tout en haut de mon site (ce qui correspond au session_start() de ma page index.php)
et ce message :
Citation:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/connecte.php:1) in /mnt/154/sdc/a/9/nicolas.felder/AP 4 - Site Web Perso/connecte.php on line 28
qui correspond à ce bout de code j'imagine :
Code php :
1
2
3
4
5
6
7
8
9
 
echo '<br/><br/>';
				echo '<h2 align="center"> Vous êtes maintenant connecté ! </h2>';
				$_SESSION['nom'] = $row['pseudoUtilisateur'];
				$_SESSION['type'] = $row['fonctionUtilisateur'];
				echo "<br/>";	
				$delai=1; 
				$url='index.php';
				header("Refresh: $delai;url=$url");
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h28   #5
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Peux tu afficher ta requête dans un echo STP?
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 17h31   #6
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Trace_mode te retourne des alertes pour les erreurs SQL et la gestion des ressources.
src : doc php
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/06/2011, 17h48   #7
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Citation:
Envoyé par David55 Voir le message
Peux tu afficher ta requête dans un echo STP?
C'est bon pour la requête de connexion, j'ai le message "Vous êtes maintenant connecté"
Par contre, j'ai un problème de session et de headers.
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h04.


 
 
 
 
Partenaires

Hébergement Web