Problème fonction assoc pour lire une Base de donnée
Résolu/Fermé
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
-
6 mars 2013 à 12:28
Peckeno12 Messages postés 11 Date d'inscription mercredi 6 mars 2013 Statut Membre Dernière intervention 6 mars 2013 - 6 mars 2013 à 17:37
Peckeno12 Messages postés 11 Date d'inscription mercredi 6 mars 2013 Statut Membre Dernière intervention 6 mars 2013 - 6 mars 2013 à 17:37
A voir également:
- Problème fonction assoc pour lire une Base de donnée
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Fonction si et - Guide
- Lire epub - Guide
- Lire fichier bin - Guide
- Formules excel de base - Guide
5 réponses
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
6 mars 2013 à 12:32
6 mars 2013 à 12:32
Et l'erreur gagnante, est... ?
au passage, si tu pouvais mettre ton code là : https://pastebin.com/
je t'en serai reconnaissant !!
au passage, si tu pouvais mettre ton code là : https://pastebin.com/
je t'en serai reconnaissant !!
Utilisateur anonyme
6 mars 2013 à 13:25
6 mars 2013 à 13:25
Bonjour
Si ça ne t'affiche que 'Problème' sans message d'erreur de mysql, c'est que tu n'as pas d'erreur de syntaxe de mysql. Tu n'as simplement aucune réponse à ta requête.
Et tu n'as aucune réponse à ta requête parce que tu as mis des apostrophes autour du nom de colonne 'pseudo' : du coup, ce n'est plus un nom de colonne, tu compares juste la chaîne 'pseudo' au pseudo saisi. De plus, tu mes des points comme si tu concaténais des chaînes, alors qu'il n'y a rien à concaténer.
->
Si ça ne t'affiche que 'Problème' sans message d'erreur de mysql, c'est que tu n'as pas d'erreur de syntaxe de mysql. Tu n'as simplement aucune réponse à ta requête.
Et tu n'as aucune réponse à ta requête parce que tu as mis des apostrophes autour du nom de colonne 'pseudo' : du coup, ce n'est plus un nom de colonne, tu compares juste la chaîne 'pseudo' au pseudo saisi. De plus, tu mes des points comme si tu concaténais des chaînes, alors qu'il n'y a rien à concaténer.
->
$sql ="SELECT nom,prenom,mail,mdp FROM inscrits WHERE pseudo='$pseudo'";
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
6 mars 2013 à 14:37
6 mars 2013 à 14:37
deux choses me paraissent bizarres :
- $link = mysql_connect(sql.free.fr, "identifiant",
sql_free ne devrait-il pas être entre ' ?
-mysql_select_db("identifiant");
est ce normal que tu ait "identifiant" comme user et comme nom de base ?
si une erreur sort à la ligne mysql_fetch_array cela peut venir des lignes avant qui ont un pb
- $link = mysql_connect(sql.free.fr, "identifiant",
sql_free ne devrait-il pas être entre ' ?
-mysql_select_db("identifiant");
est ce normal que tu ait "identifiant" comme user et comme nom de base ?
si une erreur sort à la ligne mysql_fetch_array cela peut venir des lignes avant qui ont un pb
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
6 mars 2013 à 16:18
6 mars 2013 à 16:18
Oui c'est normal, car j'héberge mon site chez free, donc mon identifiant est le même pour ma bdd et mon compte free.
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
6 mars 2013 à 16:22
6 mars 2013 à 16:22
Désolé mais j'ai appliqué les corrections que vous m'avez donné mais il n'y a aucun changement. Il est vrai que c'est surement plus propre par contre.
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
Modifié par Peckeno12 le 6/03/2013 à 16:54
Modifié par Peckeno12 le 6/03/2013 à 16:54
<?php try { $link = mysql_connect('sql.free.fr', 'identifiant', 'mdp')or die('Erreur de connexion !<br>'.$sql.'<br>'.mysql_error()); if (!$link) { die('Connexion impossible : ' . mysql_error()); //echo 'Connecté correctement'; //mysql_close($link) } mysql_select_db('identifiant'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } if($_POST['pseudo']==NULL||$_POST['password']==NULL) // reggeeexxxx !!!!! { mysql_close($link); echo '<script language="Javascript"> <!-- document.location.replace("www"); // --> </script>'; } else { $pseudo=htmlspecialchars($_POST['pseudo'], ENT_QUOTES, 'UTF-8'); $_POST['password']=htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8'); $password_hache=sha1($_POST['password']); $sql ="SELECT nom,prenom,mail,mdp FROM inscrits WHERE 'pseudo'='$pseudo'" or die('Pseudo invalide'); $requete = mysql_query($sql)or die($query . " - " . mysql_error()); $donnees = mysql_fetch_assoc($requete)or die('probleme'.mysql_error()); if($password_hache==$donnees['mdp']) { $_SESSION['connect']=1; $_SESSION['nom']=$donnees['nom']; $_SESSION['prenom']=$donnees['prenom']; $_SESSION['pseudo']=$donnees['pseudo']; $_SESSION['mail']=$donnees['mail']; mysql_close($link); echo '<script language="Javascript"> <!-- document.location.replace("www"); // --> </script>'; } else { echo 'Mot de Passe errone'; mysql_close($link); echo '<script language="Javascript"> <!-- document.location.replace("www"); // --> </script>'; } } ?>
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
6 mars 2013 à 16:33
6 mars 2013 à 16:33
oui c'est bien le même message d'erreur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
Modifié par Peckeno12 le 6/03/2013 à 16:56
Modifié par Peckeno12 le 6/03/2013 à 16:56
Merci beaucoup pour ton commentaire, ça m'a rendu compte que mon code était juste "pourri", et encore c'est peu dire...
Enfin bref j'ai changé plein de trucs et donc voila la solution que j'ai trouvé :
Enfin bref j'ai changé plein de trucs et donc voila la solution que j'ai trouvé :
<?php try { $link = mysql_connect('sql.free.fr', 'identifiant', 'mdp')or die('Erreur de connexion !<br>'.$sql.'<br>'.mysql_error()); if (!$link) { die('Connexion impossible : ' . mysql_error()); //echo 'Connecté correctement'; //mysql_close($link) } mysql_select_db('identifiant'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } if($_POST['pseudo']==NULL||$_POST['password']==NULL) { mysql_close($link); echo '<script language="Javascript"> <!-- document.location.replace("www"); // --> </script>'; } else { $pseudo=htmlspecialchars($_POST['pseudo'], ENT_QUOTES, 'UTF-8'); $_POST['password']=htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8'); $password_hache=sha1($_POST['password']); $sql ="SELECT nom,prenom,mail,mdp,pseudo FROM inscrits " or die('Pseudo invalide'); $requete = mysql_query($sql)or die($query . " - " . mysql_error()); while($donnees = mysql_fetch_assoc($requete)) { if($donnees['pseudo']==$pseudo) { if($donnees['mdp']==$password_hache) { $_SESSION['connect']=1; $_SESSION['nom']=$donnees['nom']; $_SESSION['prenom']=$donnees['prenom']; $_SESSION['pseudo']=$donnees['pseudo']; $_SESSION['mail']=$donnees['mail']; mysql_close($link); echo '<script language="Javascript"> <!-- document.location.replace("www"); // --> </script>'; } } } echo 'Pseudo errone'; mysql_close($link); echo '<script language="Javascript"> <!-- document.location.replace("www"); // --> </script>'; }
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
6 mars 2013 à 17:09
6 mars 2013 à 17:09
Oui, c'est vrai que je préférais cette idée car je pense que techniquement c'est surement plus rapide, ça évite de parcourir la bdd avec un while. Enfin bref, peut-être que si je reviens à cette méthode et que je trouve mon erreur je posterais, mais bon pour l'instant c'est pas mal. :)
Peckeno12
Messages postés
11
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
6 mars 2013
6 mars 2013 à 17:37
6 mars 2013 à 17:37
Quand je fais ce que tu dis, le problème n'est toujours pas résolu, il y a un autre problème dans la structure du code.
Cette façon de faire m'a parue plus simple à mettre en oeuvre car je l'avais déjà fais avant ;)
Cette façon de faire m'a parue plus simple à mettre en oeuvre car je l'avais déjà fais avant ;)
Modifié par Peckeno12 le 6/03/2013 à 12:35
6 mars 2013 à 12:44
Et l'erreur en question, c'est quoi ? Le suspens, c'est bien à la télé, mais pas sur un forum ^^
6 mars 2013 à 12:55
Donc je reprend tout depuis le début.
J'essaye de récupérer une valeur en BDD en incluant dans mon SELECT un WHERE qui me permet de sélectionner une unique valeur, mais voila mon problème. Quand j'applique la fonction mysql_fetch_array() à ma requête, il y a une erreur. Rien ne se passe, alors je ne sais pas si cela vient de la structure de mon code où d'une erreur dans la syntaxe.
J'ai mis un or die('probleme'.mysql_error()); à la ligne ou je suppose qu'il y a une erreur et cela me renvoie donc que 'problème'.
6 mars 2013 à 13:02
bon tu fais ça de bonne volonté, ton soucis, je l'ai compris, pas besoin de le remettre ;)
Ensuite comme je l'ai demandé dans mon 1er message, ton code, si tu pouvais le mettre là, ça serait génial ! https://pastebin.com/
le forum est nul pour afficher du code, c'est un peu mieux avec la balise code, mais quand le code est un peu long, c'est mieux d'avoir ça avec la coloration syntaxique, le numéro des lignes, etc, etc
ce n'est pas de ta faute, c'est le forum qui est mal branlé ^^
6 mars 2013 à 13:06
c'est done !