IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Hébergement free - Erreur de MySql fetch assoc et autres


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut Hébergement 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    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.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Remplace ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysql_query( $requete, $base );
    par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysql_query( $requete);

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pour débugger le mysql c'est avec le trace_mode, donc au début de ton code (avant la connexion)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    error_reporting(-1);
    ini_set('mysql.trace_mode', true);

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut
    Citation Envoyé par David55 Voir le message
    Remplace ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysql_query( $requete, $base );
    par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    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 :
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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");

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Peux tu afficher ta requête dans un echo STP?

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Trace_mode te retourne des alertes pour les erreurs SQL et la gestion des ressources.
    src : doc php

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Par défaut
    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.

Discussions similaires

  1. [MySQL] Erreur avec la fonction mysql fetch
    Par kinkon dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/10/2014, 14h19
  2. erreur PDO avec fetch() mysql avec netbeans
    Par soohikei dans le forum Administration
    Réponses: 14
    Dernier message: 28/06/2011, 15h56
  3. erreur BDD mysql sur free
    Par fabiofabio dans le forum Requêtes
    Réponses: 4
    Dernier message: 07/02/2008, 07h16
  4. Erreur 403 sur mon hébergement FREE
    Par elitost dans le forum Free
    Réponses: 4
    Dernier message: 07/11/2007, 13h49
  5. hébergeur free, message d'erreur de MySQL
    Par Krakenn dans le forum Langage
    Réponses: 5
    Dernier message: 23/11/2006, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo