Je suis débutante en PHP. J'ai réalisé un formulaire et une base de données sous PgAdmin III dans le cadre d'un stage en entreprise.
Les informations entrées dans le formulaire sont insérées dans ma base de données. Il fonctionne à partir du moment où je n'entre pas beaucoup de caractères (une vingtaine) dans le champ destiné au commentaire. Mais dès que j'en mets plus, le code me dit qu'il a bien été ajouté à la base de données, alors que celle-ci n'affiche pas la dernière entrée que j'ai faite.
Voici le formulaire :
<form method="post" name="commentaires" id="comms" action="commentaire_agri.php">
<fieldset><legend>Commentaire sur l'Agriculture : </legend>
<span class="formw">Entrez un titre :<br /><input type="text" name="titre" id="titre" size="30" maxlength="20" /></span><br /><br />
<span class="formw">Tapez votre commentaire :<textarea rows="6" cols="42" name="commentaire" id="commentaire" ></textarea></span>
<span class="formw">Entrez votre code INSEE :<input type="text" name="code" id="code" size="30" maxlength="5" /></span><br /><br />
</fieldset>
<p><span class="formw"><input type="submit" name="envoyer" value="Envoyer" class="submit" /></span>
<span class="formw"><input type="reset" name="annuler" value="Annuler" class="submit" /></span></p>
</form>
Et le code PHP :
<?php
/* On commence par récupérer les champs :*/
if(isset ($_POST['titre'])){$titre = $_POST['titre'];}
else {$titre = "";}
if(isset ($_POST['commentaire'])){$commentaire = $_POST['commentaire'];}
else {$commentaire = "";}
if(isset ($_POST['code'])){$code = $_POST['code'];}
else {$code = "";}
/* On vérifie si les champs sont vides : */
if(empty($titre) OR empty($commentaire) OR empty($code))
{
echo "Attention, certains champs ne sont pas remplis.\n<a href='/projet_territoires/commentaire/commentaire_agri.html'>Cliquez ici pour recommencer.</a>\n";
}
/* Si aucun champ n'est vide, on peu enregistrer dans la table :*/
else
{
/* Connexion à la base de données :*/
$conn = @pg_pconnect("host=localhost dbname=base_communes user=****** password=******");
/* On écrit la requête SQL :*/
$requete = @pg_query($conn, "INSERT into com_agriculture(commentaire_agri,code_insee,titre_agri) values('$commentaire','$code','$titre')");
/* On insère les informations du formulaire dans la table :*/
$result= @pg_query($requete);
/* On affiche le résultat pour le visiteur :*/
echo "Votre commentaire a bien été ajouté à la base de données sous le nom ".$titre.".\n
<a href='/projet_territoires/commentaire.html'>Cliquez ici pour revenir à la page précédente.</a>\n";
/* On ferme la connexion :*/
pg_close($conn);
}
?>
Pour information, le champ "commentaire_agri" dans ma base de données est un "character varying" de taille 300. Si quelqu'un a une idée du pourquoi ça ne fonctionne pas je lui en serais très reconnaissante.