Commentaire(s) Enregistrer des données dans une table MySQL
- Retour au Tutoriel : « Enregistrer des données dans une table MySQL »
Commentaire(s)
- #512 Commentaire de gregory posté le 09/11/11 à 07:03:19 :

-
Bonjour,
je pense avoir bien compris comment créer une base de donnée qui correspond aux données que l'on veut sauvegarder dans sa table sur son site.
Je me pose la question de savoir comment je fais communiquer mon site avec ma table. En d'autres termes, une fois ma table créé, comment les données que remplit l'utilisateur vont etre envoyé dans ma table?
Je suppose que je dois insérer du code sur la page de mon site. Je voulais savoir comment je faisais plus précisément ( quel code? Ou? etc...) et si celui ci était sécurisé!
Merci par avance,
Grégory
- #513 Commentaire de c00lman posté le 09/11/11 à 07:45:23 :

-
Bonjour gregory,
Il y a un tutoriel concernant l'initiation aux requêtes SQL sur le site qui explique tout cela en détail
.
Dans les grosses lignes, l'utilisateur remplit les données via un formulaire qui est traité par PHP puis enregistré en base de données grace au couple PHP+SQL (requête sql). Le traitement des données ainsi que l'enregistrement est sécurisé seulement si vous prenez soin de le faire en utilsant les bonnes fonctions.
- #544 Commentaire de modo posté le 01/12/11 à 09:34:12 :

-
Bonjour et merci pour ces tutos, mais j'ai un problème que je n'arrive pas à résoudre :
Je me suis inspré de ce tuto pour créer une table, ça marche très bien, par contre je n'arrive pas à inserer le moindre enregistrement, voici mon code :
$result ="INSERT INTO ".$nom_table."
('id','artiste', 'titre', 'label', 'web', 'picture', 'son', 'score', 'mail')
VALUES
(NULL'$artiste','$titre','$marque','$site','$fichier1','$fichier2',
'$score','$mailexp')"; // valeurs obtenues par le formulaire
mysql_query($result);
echo "Votre enregistrement a été ajouté dans la base de données<br>";mysql_close();
que dois-je faire svp ?
- #545 Commentaire de c00lman posté le 01/12/11 à 09:50:59 :

-
Bonjour modo,
Dans un premier temps, il manque une virgule après "NULL".
Testez en faisant simplement cette correction.
Si ça ne veut toujours pas, modifier chaque variable en ajoutant des guillemets doubles:
Avant :
'$artiste',
Après :
'".$artiste."',
- #546 Commentaire de modo posté le 01/12/11 à 10:04:56 :

-
merci coolman, j'ai fais les deux corrections, l'une après l'autre, mais ça marche pas...
je n'ai pu faire qu'un seul enregistrement avec phpmyadmin pour vérifier que c'était posssible !
mais le but du jeu serait de le faire avec du code lol
Ma table est bien lue mais pas moyen d'y inserer un enregistrement...
- #547 Commentaire de c00lman posté le 01/12/11 à 10:18:41 :

-
Merdouille alors
!
Testez ça :
$result = mysql_query("INSERT INTO ".$nom_table." VALUES
(
'',
'".mysql_real_escape_string($artiste)."',
'".mysql_real_escape_string($titre)."',
'".mysql_real_escape_string($marque)."',
'".mysql_real_escape_string($site)."',
'".mysql_real_escape_string($fichier1)."',
'".mysql_real_escape_string($fichier2)."',
'".mysql_real_escape_string($score)."',
'".mysql_real_escape_string($mailexp)."'
)
");
//Si il y a une erreur
if (!$result) {
die('Requête invalide : ' . mysql_error());
}
//pas d'erreur
else {
echo 'Votre enregistrement a été ajouté dans la base de données<br>';
}
mysql_close();
- #548 Commentaire de modo posté le 01/12/11 à 10:30:22 :

-
il y a un net progrès !
maintenant les enregistrements se font mais la moindre apostrophe vide tous les champs obtenus par le formulaire (meme ceux qui ne contiennent pas de ( ' ) ...
j'ai pourtant utilisé le traitement que vous conseillez :$artiste=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['artiste'])));
$titre=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['titre'])));
$marque=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['marque'])));
$site=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['site'])));
$fichier1=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['fichier1'])));
$fichier2=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['fichier2'])));
$score=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['score'])));
$mailexp=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['mailexp'])));
j'ai essayé une fois avec votre nouveau code et le code ci-dessus et une autre fois avec votre nouveau code et sans le code ci-dessus.
Bref les enregistrements se font mais il ne faut pas qu'il y ait d'apostrophes... dur dur
encore un petit coup de main svp ? et merci encore !
- #549 Commentaire de c00lman posté le 01/12/11 à 10:59:31 :

-
$artiste=htmlspecialchars(stripcslashes($_POST['artiste']));
$titre=htmlspecialchars(stripcslashes($_POST['titre']));
$marque=htmlspecialchars(stripcslashes($_POST['marque']));
$site=htmlspecialchars(stripcslashes($_POST['site']));
$fichier1=htmlspecialchars(stripcslashes($_POST['fichier1']));
$fichier2=htmlspecialchars(stripcslashes($_POST['fichier2']));
$score=htmlspecialchars(stripcslashes($_POST['score']));
$mailexp=htmlspecialchars(stripcslashes($_POST['mailexp']));
$result = mysql_query("INSERT INTO ".$nom_table." VALUES
(
'',
'".mysql_real_escape_string($artiste)."',
'".mysql_real_escape_string($titre)."',
'".mysql_real_escape_string($marque)."',
'".mysql_real_escape_string($site)."',
'".mysql_real_escape_string($fichier1)."',
'".mysql_real_escape_string($fichier2)."',
'".mysql_real_escape_string($score)."',
'".mysql_real_escape_string($mailexp)."'
)
");
- #550 Commentaire de modo posté le 01/12/11 à 11:27:47 :

-
ben c'est super, ça marche tip top !
je me suis longtemps acharné sur ce code sans réussir à le faire marcher, mais il y a un moment où il faut savoir demander de l'aide à ceux qui en savent plus que soi meme !
je débute tout juste avec mysql, mais je maitrise les fichiers textes, alors si je peux aider dans ce domaine, ce sera avec plaisir.
encore merci et bravo pour votre site, continuez comme ça !
- #551 Commentaire de c00lman posté le 01/12/11 à 11:40:48 :

-
Cool
.
Qu'entendez-vous par : "je maitrise les fichiers textes"?
- #552 Commentaire de modo posté le 01/12/11 à 11:44:46 :

-
et bien que je sais faire toutes les opérations possibles avec des fichiers textes, jusqu'à maintenant je n-utilisais que ça... lol
- #553 Commentaire de c00lman posté le 01/12/11 à 11:52:32 :

-
C'est à dire ce style de chose : fopen() : lire et écrire dans un fichier ?
- #554 Commentaire de modo posté le 01/12/11 à 11:59:01 :

-
oui, et selectionner, supprimer, modifier...



