Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/03/2007, 12h02   #1
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
Par défaut vérification de formulaire en php

Voilà je cherche à faire une vérification des champs de mon formulaire en php.
Sur une page j'ai mon formulaire qui est envoyée à une autre page qui doit vérifier si les champs saisis sont corrects et après qui intègre les données dans la base de données.

si le champs est mal renseigné je souhaite que k'internaute puisse être redirigé vers le formulaire et qu'un message d'erreur en face du champ mal renseigné apparaisse.

Mon niveau en php n'est pas assez bon pour trouver la solution c'est pour cela que je fais appel à vos lumières

voici mon formulaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<form id="actualité" name="agenda" method="get" action="do_ajout_actu.php">
 
			<table align="center">
	<tr>
	  <td class="titre_formulaire">Titre de l'actualit&eacute; : </td>
	  <td><input class="titre_formulaire" name="titre" type="text" id="titre" /></td></tr><tr><td class="titre_formulaire">Contenu:</td></tr></table>
  <?php
// Automatically calculates the editor base path based on the _samples directory.
// This is usefull only for these samples. A real application should use something like this:
 
$sBasePath = '../../fckeditor/';
 
$FCKobj = new FCKeditor('FCKeditor1');
$FCKobj->BasePath = $sBasePath;
$FCKobj->Width  = '60%' ;
$FCKobj->Height = '300' ;
$FCKobj->Value = '';
$FCKobj->Create();
$maDate = date("Y,m,d");
 
?>
  <br />
  <br />
  <input type="hidden" name="date_pub" value="<? echo $maDate; ?>"/>
  <input class="textes1" type="submit" name="Submit" value="Ajouter l'actualit&eacute;" />
</form>
et ma page qui gere le controle et l'inseriton des données

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
function ajouteruneactualite( $titre, $contenu , $date_pub){
	$cnx = mysql_connect("localhost","root","");
	$db = mysql_select_db("clown");
 
	//récupération des valeurs des champs:
	//titre:
	$titre = $_REQUEST["titre"] ;
	//contenu:
	$contenu = mysql_real_escape_string($_REQUEST["FCKeditor1"]) ;
	//date_publication
	$date_pub=$_REQUEST["date_pub"];
 
	if(!isset($titre) || $titre=="") 
	{ 
	$erreur='Vous devez renseigner le titre de l\'actualité';
	} 
 
 
 
 
		$sql="INSERT into actus (id, titre, contenu, date_pub) VALUES ('','$titre', '$contenu', '$date_pub')";
 
	//exécution de la requête SQL:
	$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
	//affichage des résultats, pour savoir si l'ajout a marché:
  if($requete)
  {
 
  	echo '<p class="titre_formulaire">';
    echo("L'actualité : ");
	echo'<b><u>'.$titre.'</u></b>';
	echo (" a été correctement ajoutée") ;
	echo '</p>';
 
 
  }
  else
  {
    echo '<p class="titre_formulaire">';
    echo("L'ajout de l'actualité : ");
	echo'<b><u>'.$titre.'</u></b>';
	echo (" a échoué") ;
	echo '</p>';
 
  }
 
}
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 13h06   #2
Membre éclairé
 
Avatar de speedev
 
Développeur Web
Inscription : mai 2006
Messages : 936
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2006
Messages : 936
Points : 347
Points : 347
Salut,

Ton niveau n'est pas assez bon et tu utilises tout de même des objets php?
Il va falloire plancher un tout petit peu pour arriver à tes fins!

Apparement tu veux contrôler 2 ou 3 champs non?
Code :
1
2
3
4
5
 
if(!isset($titre) || $titre=="") 
{ 
      $erreur='Vous devez renseigner le titre de l\'actualité';
}
Tu pourrais déjà contrôler ces données directement depuis le formualire (en javascript donc) histoire d'éviter un retour en arrière, puis ensuite tu effectueras un contrôle supplémentaire en PHP.
Si tu veux réellement afficher l'erreur au niveau du champ en question, tu vas devoir stocker en session tes données ($_SESSION["titre"]=$titre) mais aussi la (ou les) erreur, puis enfin, créer une petite zone (une cellule de tableau par ex) dans laquelle tu afficheras cette erreur.

Concernant le contrôle PHP, tu devrais l'effectuer en dehors de ta fonction ajouteruneactualite() afin de bien séparer les traitements que tu effectues, quitte à créer une fonction controle_actualite() par exemple.

Au niveau de ton formulaire il te faut aussi faire des conditions d'affichage des erreurs de ce genre à l'endroit désiré:
Code :
1
2
3
4
5
 
if (isset($_SESSION["err_titre_vide"] && !empty($_SESSION["err_titre_vide"]))
      echo 'Merci de remplir le titre de l\'actualité';
else
      echo '&nbsp;';
Il n'y a rien de compliqué mais il faut te renseigner un peu plus sur le mécanisme des sessions, tu trouveras des tutos sur developpez.com.

a+
__________________
Développeur indépendant sur technos Web à votre service
speedev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 14h27   #3
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
merci pour tes conseils. j'ai déjà fait le controle en javascript

je vais voir
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h01.


 
 
 
 
Partenaires

Hébergement Web