Pb ajout dans base avec formulaire

Résolu
cs_MHI Messages postés 110 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 19 février 2009 - 19 janv. 2005 à 10:30
cs_MHI Messages postés 110 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 19 février 2009 - 19 janv. 2005 à 11:35
Salut, j'ai un petit problème j'ai un formulaire pour ajouter un article à ma base, mais cela ne fait rien, voici le code :


saisie_article.php :


<html>
<head>
<title>Saisie article</title>
</head>

<form>
Titre

Auteur

Date

Texte

<textarea cols="60" rows="8" tabindex="3" name="summary"></textarea>

<?php
function ExecEnreg(){
$req="INSERT INTO articles(art_titre,art_auteur,art_texte) VALUES($titre,$auteur,$texte)";
mysql_query($req);
}
?>
<CENTER></CENTER>
</form>

</html>



merci d'avance, ce formulaire est lancer par index.php :
<html>
<head>
<title></title>
</head>

Site en cours de construction (ne pas tenir compte du contenu ci-après, il s'agit de tests)

[saisie_article.php Saisie d'un article]


<?php
function DtEnglToDtFren($dtEngl){
$a = date("Y", $dtEngl);
$m = date("m", $dtEngl);
$j = date("d", $dtEngl);
$h = date("H", $dtEngl);
$mn = date("i", $dtEngl);
return (string) "$j/$m/$a $h:$mn"
}
?>


<?php
// connection à la base de donnée
@mysql_connect("localhost","becquigny","") or die("Echec de connexion au serveur");
@mysql_select_db("becquigny_db") or die("Echec lors de la selection de la base");


// Paramètrage et execution de la requête ramenant tous les articles de la table classé par date de parution (décroissant)
// Puis on parcours le résultat de la requête pour afficher chaques articles
$req="SELECT * FROM articles order by art_dtparu desc";
if ($result = mysql_query($req)){

while($ligne = mysql_fetch_object($result)){
$id = $ligne->art_id;
$titre = $ligne->art_titre;
$auteur = $ligne->art_auteur;
$dtparu = $ligne->art_dtparu;
$text = $ligne->art_texte;
$src = $ligne->art_src;
$dateParutFR = DtEnglToDtFren($dtparu);
echo "";
echo "$titre - posté par $auteur - le $dateParutFR
<HR>";
echo "$text

";
if ($src <> NULL){
echo "
Tiré de : $src
";
}
echo "

";
}
}
else{
echo "Erreur de requête sur la base de donnée";
}
?>

</html>

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 janv. 2005 à 10:54
Hello,



"action" est un attribut de <form> pas de'un input type=submit.



Tu dois mettre cet action="" dans ta balise <form>, et mettre comme valeur le nom de la page ou sera traite le formulaire.



Ensuite, pour executer ta fonction, il faut tester si le formulaire a ete soumis.





Ta fonction :




function ExecEnreg($titre, $auteur, $texte){
$req="INSERT INTO articles(art_titre,art_auteur,art_texte) VALUES($titre,$auteur,$texte)";
mysql_query($req);
}



Ton test :



if (isset($_POST['submit']) &&
$_POST['submit']=="Enregistrer") {

ExecEnreg(
$_POST['titre'],
$_POST['auteur'],
$_POST['texte'])


}



Mais tu devrais aussi tester l'existence des POST quand meme, histoire de ne pas remplir ta base d'enregistrements vides.
3
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
19 janv. 2005 à 10:56
On ne peut pas appelé une fonction PHP par . Premièrement, il faudrait changé ton form par
<form type="post" action="saisie_article.php">. Deuxièmement, il faudrait rajouté un champs invisible pour savoir si le formulaire est envoyé: . Troisèmement, il faut que tu rajoute au début du fichier la gestion si l'on a le formulaire:

if(isset($_POST['send']))

{

;// Appel des fonctions pour la gestion des formulaires

}

Quatrièmement, tu mets le formulaire dans le else du premier if.
Cinquièmement, tu devrais utilisé les variables $_POST['var'] pour les
champs dans le formulaire à moins que les variables globales de PHP
soient activé, ce qui n'est pas fait par défaut.



Il y a surment des choses que tu ne comprend pas dans ce que j'ai dit
mais c'est beaucoup de la base. Je te conseil de lire les tutoriaux sur
www.phpdebutant.org ils te permetteront d'avoir une bonne base en PHP
et tu devrais être capable de corrigé tes erreurs.



Bonne chance


----------------

eXon
http://www.lookstrike.com
3
cs_MHI Messages postés 110 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 19 février 2009 1
19 janv. 2005 à 11:35
je te remercie, et il est vrai que je n'ai pas compris grans chose, je vais donc aller voir le site que tu m'as conseillé.

encore mercie
0