Pb ajout dans base avec formulaire

Résolu
Signaler
Messages postés
110
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
19 février 2009
-
Messages postés
110
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
19 février 2009
-
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

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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.
Messages postés
166
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
8 avril 2007
1
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
Messages postés
110
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
19 février 2009

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