envoi de contenu d'un formulaire dans une table de db

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : envoi de contenu d'un formulaire dans une table de db

abandon du sujet

par BeRoots » 14 févr. 2006, 16:42

salut à tous :D

pour des raison evidente de simplicité et d'adaptabilité au fonctionnement des forums, je decide de fermer ce sujet et de le mettre comme résolu :wink:

je posterai mes futurs questions dans des forum mieux ciblé et de façon plus simple et direct :roll:

merci de votre comprehension et de l'aide que vous m'avez apporté :wink:

par BeRoots » 13 févr. 2006, 18:12

ok, j'ai refais une correction de la syntaxe de mon script et il ce lance et redirige très bien, sans erreur :)

par contre, et c'est quand même ça principale fonction, il n'écrit rien dans la table de la db???

je vous remet le code complet (suiver les commentaire)
c'est dans la partie "insertion des données recuperer dans la table" que je fait la récuperation de donnée et la demande d'écriture :wink:
<?php
$dbhost = "localhost";
$user = "root";
$password = "";
$usebdd = "ma_db";

//connexion au serveur MySQL

$connexion = mysql_connect($dbhost,$user,$password);
if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}

//sélection de la BDD

$db = mysql_select_db($usebdd,$connexion);
if (!$db) {
echo "Impossible de sélectionner cette base de données";
exit;
}

// insertion des données recuperer dans la table

$manif_date  = $_POST['champ_date'];
$manif  = $_POST['content'];

$resultat_sql = mysql_query("INSERT INTO `table_manif` VALUES ($manif_date,$manif)", $connexion);

// redirection
header("location: manif_admin_test.html");
exit;

?>
par contre ma requete sql suivante fonctionne tres bien sous phpmyadmin:

Code : Tout sélectionner

INSERT INTO `table_manif` VALUES ("1","2006-12-31","blablabla")
la premiere colonne de ma table est en autoincrement mais je suis obliger de mettre l'identifiant dans ma requete :?

voila aussi ma requete de création de la table

Code : Tout sélectionner

CREATE TABLE `table_manif` ( `manif_id` INT( 10 ) NOT NULL AUTO_INCREMENT , `manif_date` DATE NOT NULL , `manif` TEXT NOT NULL , PRIMARY KEY ( `manif_id` ) ) TYPE = MYISAM;
donc si vous comprenez qqchose à mon problème, merci d'avance :wink:

ps: si quelqu'un peu me dire comment faire ce symbole au clavier
`

par fab » 13 févr. 2006, 10:17

enleve ces guillemets, montre nous lemessage d'erreur puis montre nous les quelques lignes autour de celle-ci

par BeRoots » 13 févr. 2006, 05:54

non ce n'est pas ça je peut vous l'assurer :wink:

c'est sur cette ligne qu'il y à erreur
$db = mysql_select_db("$usebdd","$connexion");
mais j'ai regarder la methode et elle me semble correct

par fab » 13 févr. 2006, 02:08

pour ça que j'ai dis j'ai toujours peur na !!!!!!!!!! :p

par Cyrano » 13 févr. 2006, 02:08

Ben il faut en user à bon escient : ça ne fera rien planter si tu les utilises correctement. :D

par fab » 13 févr. 2006, 02:04

j'aime pas les guillemets toujours peur que ça fasse planter :) j'en met le moins possible pour ne pas dire pratiquement jamais :)

par Cyrano » 13 févr. 2006, 01:01

Les guillemets, c'est pour faire joli ?
$connexion = mysql_connect($dbhost, $user, $password); 
ça fonctionnera tout aussi bien comme ça ;)

par BeRoots » 13 févr. 2006, 00:31

ok j'ai trouvé mais je m'empresserai d'aller le signaler sur le tuto dont je me suis inspiré car y'a de grosse erreur de syntaxe :(

mais à chaque solution un nouveau problème :x

maintenant j'ai pas moyen de selectionner la db :cry:

le message est:
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\chart_php2\admin\save_manif_db1.php on line 19
Impossible de sélectionner cette base de données
mon fichier php remis à jour est maintenant:
<?php
// ATTENTION, pour que le script fonctionne la table doit être crée

$dbhost = "localhost";
$user = "root";
$password = "";
$usebdd = "db_test";

//connexion au serveur MySQL

$connexion = mysql_connect("$dbhost","$user","$password");
if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}

//sélection de la BDD

$db = mysql_select_db("$usebdd","$connexion");
if (!$db) {
echo "Impossible de sélectionner cette base de données";
exit;
}

// insertion des données recuperer dans la table

$manif_date  = $_POST['champ_date'];
$manif  = $_POST['content'];

$resultat_sql = mysql_query("insert into table_manif values ('$manif_date','$manif')", $connexion);

// redirection
header("location: manif_admin_test.html");
exit;

?>
j'ai pourtant bien la connection au server sql et le nom de ma db est correct :?
en plus ma db à "all privileges" donc je voit pas de quoi ça peut venir

si vous comprener pourquoi ça plante :wink:

par BeRoots » 12 févr. 2006, 22:59

ok j'ai trouver l'erreur qui venai de mon nom de fichier.
shame on me :oops:

par contre j'ai une nouvelle erreur niveau de la connexion au server mysql:
Warning: mysql_connect(): Unknown MySQL Server Host 'dbhost' (11001) in c:\program files\easyphp1-8\www\chart_php2\admin\save_manif_db1.php on line 11
Impossible d'effectuer la connexion
voila mon code php:
<?php
// ATTENTION, pour que le script fonctionne la table doit être créee

$dbhost = "localhost";
$user = "root";
$password = "";
$usebdd = "table_manif";

//connexion au serveur MySQL

$connexion = mysql_connect("dbhost","user","password");
if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}

//sélection de la BDD

$db = mysql_select_db("$usebdd", $connexion);
if (!$db) {
echo "Impossible de sélectionner cette base données";
exit;
}

// insertion des données recuperer dans la table

$manif_date  = $_POST['champ_date'];
$manif  = $_POST['content'];

$resultat_sql = mysql_query("insert into table_manif values ('$manif_date','$manif')", $connexion);

// redirection
header("location: manif_admin_test.html");
exit;

?>
j'utilise easyphp pour tester en local. Dans phpmyadmin ça m'affiche ceci en haut de pade
MySQL 4.1.9-max sur le serveur localhost - utilisateur : root@localhost
c'est bizzard que ça passe pas avec localhost et root :?

il serai peu être judicieux d'effacer les presedent message sur l'errur de nom de fichier pour ne pas trop surcharger le sujet? Si un moderateur pense que c'est utile, qu'il n'hesite pas ;)

par Cyrano » 12 févr. 2006, 22:33

Enfin c'est aberrant cette histoire :shock:

Il doit manquer un détail, mais là, je ne vois pas vraiment: il n'est pas normal qu'il ne trouve pas ce fichier : essaye de mettre une adresse absolue, ça sera toujours une autre possibilité explorée :-k

par BeRoots » 12 févr. 2006, 22:25

oui tout à fait.
ça fait 100 fois que je verifie et que j'essaie des chose mais toujour rien à faire :cry:

par Cyrano » 12 févr. 2006, 22:14

Est-ce que le fichier PHP est dans le même répertoire que le fichier contenant le formulaire ?

par BeRoots » 12 févr. 2006, 22:11

j'ai deja essayer mais c'est pareil :evil:
j'ai aussi réenregistrer ce script php sous un autre mon mais rien à faire :cry:

est ce que le code php vous semble correct sinon et pensez vous que ma table sera incrementer en faisant ainsi?

par Cyrano » 12 févr. 2006, 22:04

Je vois pas trop : essaye à tout hasard en mettant:
<form class="editor" method="post" action="./sauve_manif_db1.php">