MySQL + PHP problème d'insertion, renvoi page
Résolu/Fermé
A voir également:
- MySQL + PHP problème d'insertion, renvoi page
- Supprimer une page word - Guide
- Insertion liste déroulante excel - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
3 réponses
Miimidedel
Messages postés
345
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2019
71
Modifié par Miimidedel le 21/04/2015 à 10:23
Modifié par Miimidedel le 21/04/2015 à 10:23
Hello,
As tu regardé les logs de ton serveur ?
As tu fait un
As tu regardé la console et les erreurs qu'elle retourne ? (FireBug pour Firefox)
As tu regardé les logs de ton serveur ?
As tu fait un
var_dump('QQ chose');dans chacune des étapes ? (débuggage rapide et sale mais pour ton cas je ne vais pas te faire installer xdebug..)
As tu regardé la console et les erreurs qu'elle retourne ? (FireBug pour Firefox)
Merci d'avoir répondu,
Et bien je n'ai pas fait de logs non ni de var_dump (je ne sais pas ce que c'est). La console du navigateur ne retourne rien, d'où mon interrogation..
Peux tu m'aider pour la procédure pour les logs serveur et/ou var_dump?
Merci
Et bien je n'ai pas fait de logs non ni de var_dump (je ne sais pas ce que c'est). La console du navigateur ne retourne rien, d'où mon interrogation..
Peux tu m'aider pour la procédure pour les logs serveur et/ou var_dump?
Merci
Miimidedel
Messages postés
345
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2019
71
21 avril 2015 à 10:52
21 avril 2015 à 10:52
D'accord !
Déjà tu dev sur quel environnement ? Un xamp ?
Si c'est un wamp tu auras les erreurs du serveur ici : C:\wamp\logs\apache_error.log
Pour le var_dump c'est très simple, ça affiche qq chose en brut (texte, variable, tableau, etc..). Ca te permet surtout de savoir où l'interprétation passe.
Dans ton code déjà je mettrai
Si tu n'as rien je dirais que ça passe dans ton else puis dans le 2eme else (que tu n'as pas défini).
Ca donnerait quelque chose comme ça :
Déjà tu dev sur quel environnement ? Un xamp ?
Si c'est un wamp tu auras les erreurs du serveur ici : C:\wamp\logs\apache_error.log
Pour le var_dump c'est très simple, ça affiche qq chose en brut (texte, variable, tableau, etc..). Ca te permet surtout de savoir où l'interprétation passe.
Dans ton code déjà je mettrai
un var_dump('du texte');après chaque if et else. Comme ça on saura si ça passe dans ton 1er if ou dans ton else; puis si ça passe dans le second.
Si tu n'as rien je dirais que ça passe dans ton else puis dans le 2eme else (que tu n'as pas défini).
Ca donnerait quelque chose comme ça :
if($pseudoc=='ok' && $mailc=='ok' && $mailvc=='ok' && $mdpvc=='ok' && $date_naissance=='ok'){
var_dump('Passage dans 1er if');
$insertion = "INSERT INTO membres VALUES(NULL, '".$pseudo."',
'".$prenom."',
'".$nom."',
'".$mail."',
'".md5($mdp)."',
'".$date_naissance."',
".time().",". 0 .")";
mysqli_query ($base,$insertion) or die ('Erreur SQL !'.$insertion.'<br />'.mysql_error());
mysql_close();
header('Location: ../index.php');
exit();
}
else{
var_dump('Passage dans 1er else');
if($pseudoc=='exists'){
var_dump('Passage dans 2eme if');
$message = "Ce pseudo est déjà utilisé, merci d'en choisir un autre <a href=\"./inscription.php\">Retour</a>";
echo "<script type='text/javascript'>alert('$message');</script>";
}
var_dump('Passage dans 2eme else');
}
Yeah! Merci j'ai trouvé mon erreur grâce à ca!, j'avais en fait une variable date_naissance et une variable date_naissancec, il fallait que j'utilise la premiere et j'utilisais la seconde.. d'où l'erreur..
J'aurais une autre question.
J'ai une fonction checkpseudo($pseudo) et checkmail($mail)
et je voudrais qu'elle verifie que le mail ou le pseudo n'existe pas deja dans la BDD.
Comment vais-je passer une requete SQL dans la fonction?
Merci!!
J'aurais une autre question.
J'ai une fonction checkpseudo($pseudo) et checkmail($mail)
et je voudrais qu'elle verifie que le mail ou le pseudo n'existe pas deja dans la BDD.
Comment vais-je passer une requete SQL dans la fonction?
Merci!!
Miimidedel
Messages postés
345
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2019
71
Modifié par Miimidedel le 21/04/2015 à 11:35
Modifié par Miimidedel le 21/04/2015 à 11:35
Super.
"Passer une requête SQL dans la fonction" ? Je ne comprends pas vraiment..
Pour ta méthode checkPseudo($pseudo) tu y fais simplement une requête
Si le résultat, avec https://www.php.net/manual/fr/mysqli-result.fetch-assoc.php n'est pas un tableau vide alors il y a déjà un pseudo qui existe. Donc checkPseudo renverra false.
Un
EDIT :
Tu peux même faire plus simple un
Et pas de fetch assoc par contre
(Désolée, je suis passée au Framework et aux ORM, le PHP pur est loin)
"Passer une requête SQL dans la fonction" ? Je ne comprends pas vraiment..
Pour ta méthode checkPseudo($pseudo) tu y fais simplement une requête
SELECT pseudo FROM users WHERE pseudo LIKE '$pseudo'(à adapter correctement avec la concaténation).
Si le résultat, avec https://www.php.net/manual/fr/mysqli-result.fetch-assoc.php n'est pas un tableau vide alors il y a déjà un pseudo qui existe. Donc checkPseudo renverra false.
Un
count($result)suffira.
EDIT :
Tu peux même faire plus simple un
SELECT count(*)...!
Et pas de fetch assoc par contre
(Désolée, je suis passée au Framework et aux ORM, le PHP pur est loin)
Miimidedel
Messages postés
345
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
5 juin 2019
71
>
Hip
Modifié par Miimidedel le 21/04/2015 à 11:44
Modifié par Miimidedel le 21/04/2015 à 11:44
Un petit tour sur la doc et :
/* Requête "Select" retourne un jeu de résultats */
Ici on a "s'il y a un résultat dans $result alors tu comptes les lignes" donc fais attention au if.
En gros tu aurais :
Et tu arranges pour retourner true ou false en fonction de
/* Requête "Select" retourne un jeu de résultats */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) { printf("Select a retourné %d lignes.\n", mysqli_num_rows($result)); /* Libération du jeu de résultats */ mysqli_free_result($result); }
Ici on a "s'il y a un résultat dans $result alors tu comptes les lignes" donc fais attention au if.
En gros tu aurais :
if ($result = mysqli_query($link, "SELECT pseudo FROM Users WHERE pseudo LIKE '".$pseudo."'")) { mysqli_free_result($result); return false; else{ return true; // Pas de correspondance : verif OK }
Et tu arranges pour retourner true ou false en fonction de
mysqli_num_rows($result)
jordane45
Messages postés
38386
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2025
4 727
21 avril 2015 à 11:09
21 avril 2015 à 11:09
Bonjour,
Premier PB ... tu utilises mysql_close(); .... alors que tu sembles utiliser l'extension mysqli_*
Ensuite... Fais donc un ECHO de ta requête d'insertion et testes la directement dans la BDD pour voir si elle fonctionne.
NB : Il est conseillé de nommer les champs qu'on insert ...
Par contre tu nous dis : Rien ne se passe... j'en déduis donc qu'aucun message n'apparait .... Le souci se trouve donc peut être ailleurs que dans le code montré....
Dans le formulaire peut être ... ou dans tes codes de vérification...
L'idéal serait de nous montrer l'ensemble de ton code !
PS: Penses à mettre le langage dans les balises de code. ça rend sa lecture plus facile.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Premier PB ... tu utilises mysql_close(); .... alors que tu sembles utiliser l'extension mysqli_*
Ensuite... Fais donc un ECHO de ta requête d'insertion et testes la directement dans la BDD pour voir si elle fonctionne.
NB : Il est conseillé de nommer les champs qu'on insert ...
INSERT INTO table ( champ1,champ2,...) VALUES ('valeur1','valeur2')
Par contre tu nous dis : Rien ne se passe... j'en déduis donc qu'aucun message n'apparait .... Le souci se trouve donc peut être ailleurs que dans le code montré....
Dans le formulaire peut être ... ou dans tes codes de vérification...
L'idéal serait de nous montrer l'ensemble de ton code !
PS: Penses à mettre le langage dans les balises de code. ça rend sa lecture plus facile.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d('avoir répondu, le problème 'insertion est resolu, il etait du a une erreur de frappe dans une variable -__-.
J'aurais une autre question.
J'ai une fonction checkpseudo($pseudo) et checkmail($mail)
et je voudrais qu'elle verifie que le mail ou le pseudo n'existe pas deja dans la BDD.
Comment vais-je passer une requete SQL dans la fonction?
J'aurais une autre question.
J'ai une fonction checkpseudo($pseudo) et checkmail($mail)
et je voudrais qu'elle verifie que le mail ou le pseudo n'existe pas deja dans la BDD.
Comment vais-je passer une requete SQL dans la fonction?
jordane45
Messages postés
38386
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2025
4 727
>
Hip
21 avril 2015 à 12:43
21 avril 2015 à 12:43
Même remarque que précédemment... sans voir le code... impossible de t'aider
Par contre.... nouvelle question = NOUVELLE DISCUSSION !
Cela permet à d'autres de trouver leur réponses dans le cas où ils auraient le même souci.
Donc .. mets cette question en résolu .. et ouvre en une autre.
Par contre.... nouvelle question = NOUVELLE DISCUSSION !
Cela permet à d'autres de trouver leur réponses dans le cas où ils auraient le même souci.
Donc .. mets cette question en résolu .. et ouvre en une autre.
21 avril 2015 à 10:47
Pareil, les logs serveur, je peux les trouver où (j'utilise WampServer sour Windows)
Merci