[php] bdd, insertion nouvelles données
sim
-
Xil Messages postés 350 Date d'inscription Statut Membre Dernière intervention -
Xil Messages postés 350 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai fait un ptit sript php pour rentrer des nouveaux membres sur une table "membres". Le probléme c'est que un fois interpréter, ça m'affiche bien" it's working" mais ça ne rentre pas les infos dans la table ....
Quel est le prob à votre avis ? merci !
Quel est le prob à votre avis ? merci !
<?php if (isset($_POST['password']) AND isset($_POST['email'] ) AND isset($_POST['password2']) AND isset($_POST['email2'] ) AND $_POST['password2'] == $_POST['password'] AND $_POST['email2'] == $_POST['email']) { $nom=$_POST['nom']; $prenom=$_POST['nom']; $adresse=$_POST['adresse']; $codep=$_POST['codep']; $ville=$_POST['ville']; $tel=$_POST['tel']; $telp=$_POST['telp']; $email=$_POST['email']; $password=$_POST['password']; mysql_connect("db198.1and1.fr", "dbo227375794", "sv13061986"); // Connexion à MySQL mysql_select_db("db227375794"); // Sélection de la base On est connectés, on peut travailler sur la BDD mysql_query("INSERT INTO membres(id,nom,prenom,adresse,codep,ville,tel,telp,email,password) VALUES('',$nom,$prenom,$adresse,$codep,$ville,$tel,$telp,$email,$password)"); echo 'its working!!!'; } else { echo'marche pas '; } ?>
A voir également:
- [php] bdd, insertion nouvelles données
- Fuite données maif - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
6 réponses
Ton echo 'its working'; ne suffit pas pour vérifier que la requête s'est effectuée correctment.
mysql_query() renvoit FALSE s'il y'a une erreur, donc, teste le retour :
Ce n'est par contre pas très prudent de fournir ton mot de passe BDD en clair sur ce forum.
mysql_query() renvoit FALSE s'il y'a une erreur, donc, teste le retour :
$result = mysql_query( 'requête'); if($result == false){ echo mysql_error(); }else echo 'its working';
Ce n'est par contre pas très prudent de fournir ton mot de passe BDD en clair sur ce forum.
Donc voici ce qu'il me répond ...
J'ai ce code au départ :
Je comprends pas trop le if else que t'as fait en fait ....
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'sdf,sdf,dd,dd)' at line 1
J'ai ce code au départ :
<?php if (isset($_POST['password']) AND isset($_POST['email'] ) AND isset($_POST['password2']) AND isset($_POST['email2'] ) AND $_POST['password2'] == $_POST['password'] AND $_POST['email2'] == $_POST['email']) { $nom=$_POST['nom']; $prenom=$_POST['nom']; $adresse=$_POST['adresse']; $codep=$_POST['codep']; $ville=$_POST['ville']; $tel=$_POST['tel']; $telp=$_POST['telp']; $email=$_POST['email']; $password=$_POST['password']; mysql_connect("db198.1and1.fr", "dbo227375794", "sv130686"); // Connexion à MySQL mysql_select_db("db227375794"); // Sélection de la base On est connectés, on peut travailler sur la BDD $result = mysql_query("INSERT INTO membres(id,nom,prenom,adresse,codep,ville,tel,telp,email,password) VALUES('',$nom,$prenom,$adresse,$codep,$ville,$tel,$telp,$email,$password)"); if($result == false){ echo mysql_error(); }else echo 'its working'; } else { echo'marche pas '; } ?>
Je comprends pas trop le if else que t'as fait en fait ....
$result = mysql_query("INSERT INTO ...");
Si il y'a une erreur dans la requête, $result aura la valeur FALSE. Je teste donc $result dans le if.
Si $result vaut false, c'est qu'il y'a une erreur, donc j'affiche l'erreur avec mysql_error();
Sinon, c'est que tout s'est bien passé.
Il te manque les quotes ( ' ) dans ta requête pour que ce soit correcte. Dans une requête SQL, les chaînes de caractères doivent être entourées de ' ' . Donc en php, les variables qui contiennent ces chaines doivent aussi être entourées de ' '.
"INSERT INTO membres(id,nom,prenom,adresse,codep,ville,tel,telp,email,password) VALUES('','$nom','$prenom','$adresse',$codep,'$ville','$tel','$telp','$email','$password')"
Et rappel de sécurité :
https://www.php.net/htmlspecialchars
https://www.php.net/strip_tags
https://www.php.net/intval
https://www.php.net/mysql_real_escape_string
https://www.php.net/addslashes
Si tu ne mets pas de sécurité, ton site pourra être piraté sans aucune difficultés. Déjà qu'avec ton mot de passe sur le forum c'est pas gagné... Vois si tu peux le faire changer par ton hébergeur. ET VITE !
mysql_connect("db198.1and1.fr", "dbo227375794", "sv130686");
Avec ca, on a tout ce qui faut pour aller voir ta base de donnée et faire tout ce qu'on veut dessus...
ouaip! grand merci c'est résolu ... c'était tout bête en fait.
Sinon tu me parler de sécurité dansun autre post ... mais je vois pas trop quoi faire de plus avec les lien que t'avais mis.
en tout cas merci !
Sinon tu me parler de sécurité dansun autre post ... mais je vois pas trop quoi faire de plus avec les lien que t'avais mis.
en tout cas merci !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$value = mysql_real_escape_string(htmlspecialchars(strip_tags( $_POST['value'] )));
et pour les données numérique (code postal par exemple):
$code = intval($_POST['code']);
Et fais changer ton mot de passe BDD le plus vite possible... (voir ma précédente réponse).
A l'avenir, ne copie colle pas ce genre d'info sur un forum publique. Remplace les simplement par '******'...
Petite explication du pourquoi de la nécessité de ces fonctions :
https://fr.wikipedia.org/wiki/Injection_SQL
et pour les données numérique (code postal par exemple):
$code = intval($_POST['code']);
Et fais changer ton mot de passe BDD le plus vite possible... (voir ma précédente réponse).
A l'avenir, ne copie colle pas ce genre d'info sur un forum publique. Remplace les simplement par '******'...
Petite explication du pourquoi de la nécessité de ces fonctions :
https://fr.wikipedia.org/wiki/Injection_SQL