Bonjour,
Je me suis mis a la programmation MySql depuis peu, et je commence à maitriser doucement les rouages et la logique MySql. Pour les besoins de mon sites, j'ai donc crée un formulaire contenant des champs assez nombreux.
Une fois validé, le informations sont envoyé sur une seconde page où un script php vérifie les champs s'ils sont remplis ou non. Hors le script que j'ai écrit (inspiré d'un script issu de Php et MySql pour les Nuls) vérifie très bien tous les champs, mais je veux écarté certains qui ne sont pas indispensable. Bref il me vérifie tout et me donne les champs vides mais je ne veux en cibler que quelques uns.
Donc voila, après quelques heures a essayer de comprendre l'erreur, je soumet le code ici en espérant qu'une personne comprenne où moi je bloque.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<link rel="stylesheet" type="text/css" href="swa_texte.css">
<link rel="stylesheet" type="text/css" href="swa_element.css">
</head>
<body>
<?php
// Définir les champs à tester
$etiquettes = array ("pseudo" => "Pseudonyme",
"titre_m" => "Titre de la Fiche pour le moteur de recherche",
"description" => "Description de la fiche pour le moteur de recherche",
"titre_f" => "Titre de la Fiche",
"texte" => "Contenu de la Fiche",
"origine" => "Origine",
"constructeur" => "Constructeur",
"taille" => "taille",
"armement" => "Armement",
"equipage" => "Equipage",
"affiliation" => "Affiliation",
"systeme" => "Système",
"region" => "Région",
"type" => "Type",
"climat" => "Climat",
"espece" => "Espèce",
"language" => "Language");
// controler tous les champs sauf ceux des caractéristiques : origine, constructeur, taille, armement, equipage, affiliation, systeme, region, type, climat, espece, language.
foreach ($_POST as $clé => $valeur)
{if ($valeur =="")
{ if ($clé != "origine")
{
{ $champVide[$clé] = "blanc";
}
}
}
} //fin de la boucle foreach pour $_POST
// Si l'un des champs est vide, afficher un message
if (@sizeof ($champVide) > 0) //en cas de champ vide
{echo " <br> <table width='670' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td colspan='3'><div align='center' class='font_titre_fiche'>Créer une fiche </div></td>
</tr>
</table><br><table width='670' height='100' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td height='15' background='images/design/barre_fiche_alert_h.png'></td>
</tr>
<tr>
<td background='images/design/barre_fiche_alert_m.png'><table width='670' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td width='83' valign='top'><img src='images/design/alert.png' width='83' height='83'></td>
<td width='587' align='left' valign='top'><p class='font_avertissement_f' style='margin-left:10'>Les champs suivants n'ont pas été renseignés, veuillez les remplir :<br>";
//affichage du nom des informations requises
foreach ($champVide as $clé => $valeur)
{echo "<span class='font_avert_titre'>{$etiquettes[$clé]}<br>";
} // Fin de la boucle foreach pour les champs vides
{echo "</p>
</td>
</tr>
</table></td>
</tr>
<tr>
<td height='15' background='images/design/barre_fiche_alert_b.png'></td>
</tr>
</table>";}
// réafficher le formulaire
$pseudo=trim(strip_tags($_POST['pseudo']));
$titre_m=trim(strip_tags($_POST['titre_m']));
$description=trim(strip_tags($_POST['description']));
$titre_f=trim(strip_tags($_POST['titre_f']));
$texte=trim(strip_tags($_POST['texte']));
$origine=trim(strip_tags($_POST['origine']));
$constructeur=trim(strip_tags($_POST['constructeur']));
$taille=trim(strip_tags($_POST['taille']));
$armement=trim(strip_tags($_POST['armement']));
$equipage=trim(strip_tags($_POST['equipage']));
$affiliation=trim(strip_tags($_POST['affiliation']));
$systeme=trim(strip_tags($_POST['systeme']));
$region=trim(strip_tags($_POST['region']));
$type=trim(strip_tags($_POST['type']));
$climat=trim(strip_tags($_POST['climat']));
$espece=trim(strip_tags($_POST['espece']));
$language=trim(strip_tags($_POST['language']));
echo ("
<form name='form1' method='post' action='index.php?page=fiche_c'>
<table width='670' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td colspan='3' height='10'></td>
</tr>
<tr>
<td width='420' height='50' class='font_recherche'><em><strong>*</strong>informations nécessaire </em></td>
<td width='10' height='50'> </td>
<td width='250' height='50'> </td>
</tr>
<tr>
<td valign='top'><p class='font_chiff_compt' style='margin-left:10'>Information sur la fiche : </p>
<p style='margin-left:10' class='font_recherche'>Speudo membre<strong>*</strong> :<br>
<input name='pseudo' type='text' id='pseudo' size='73' value='$pseudo'>
</p>
<p style='margin-left:10' class='font_recherche'>Titre de la Fiche<strong>*</strong> <em>(Titre qui s'affichera dans le moteur)</em> : <br>
<input name='titre_m' type='text' id='titre_m' size='73' value='$titre_m'>
<p style='margin-left:10' class='font_recherche'>Description courte<strong>*</strong> <em>(pour le moteur de recherche)</em> :<br>
<textarea name='description' cols='73' rows='4' id='description'>$description</textarea>
<p class='font_chiff_compt' style='margin-left:10'>Contenu de la Fiche :
<p style='margin-left:10' class='font_recherche'>Titre de la Fiche<strong>*</strong> <em>(affiché dans la fiche, peut être détaillé)</em> :<br>
<input name='titre_f' type='text' id='titre_f' size='73' value='$titre_f'>
<p style='margin-left:10' class='font_recherche'>Texte de la Fiche<strong>*</strong> : <br>
<textarea name='texte' cols='73' rows='40' id='texte'>$texte</textarea>
</td>
<td> </td>
<td valign='top'><p><span class='font_chiff_compt' style='margin-left:10'>Caractéristiques détaillées : </span></p>
<p style='margin-left:10' class='font_recherche'>Origine :<br>
<input name='origine' type='text' id='origine' size='38' value='$origine'>
</p>
<p style='margin-left:10' class='font_recherche'>Constructeur : <br>
<input name='constructeur' type='text' id='constructeur' size='38' value='$constructeur'>
</p>
<p style='margin-left:10' class='font_recherche'>Taille : <br>
<input name='taille' type='text' id='taille' size='38' value='$taille'>
</p>
<p style='margin-left:10' class='font_recherche'>Armement : <br>
<textarea name='armement' cols='37' rows='4' id='armement'>$armement</textarea>
</p>
<p style='margin-left:10' class='font_recherche'>Equipage : <br>
<textarea name='equipage' cols='37' rows='4' id='equipage'>$equipage</textarea>
</p>
<p style='margin-left:10' class='font_recherche'>Affiliation : <br>
<input name='affiliation' type='text' id='affiliation' size='38' value='$affiliation'>
</p>
<p style='margin-left:10' class='font_recherche'>Système : <br>
<input name='systeme' type='text' id='systeme' size='38' value='$systeme'>
</p>
<p style='margin-left:10' class='font_recherche'>Région : <br>
<input name='region' type='text' id='region' size='38' value='$region'>
</p>
<p style='margin-left:10' class='font_recherche'>Type : <br>
<input name='type' type='text' id='type' size='38' value='$type'>
</p>
<p style='margin-left:10' class='font_recherche'>Climat : <br>
<input name='climat' type='text' id='climat' size='38' value='$climat'>
</p>
<p style='margin-left:10' class='font_recherche'><span class='font_recherche'>Espèce : <br>
<input name='espece' type='text' id='espece' size='38' value='$espece'>
</p>
<p style='margin-left:10' class='font_recherche'>Language : <br>
<input name='language' type='text' id='language' size='38' value='$language'>
</p></td>
</tr>
<tr>
<td height='20' valign='top'></td>
<td height='20'></td>
<td height='20' valign='top'></td>
</tr>
<tr>
<td height='20' colspan='3' align='center' valign='top'><input type='submit' name='Submit' value='Envoyer'></td>
</tr>
<tr>
<td height='20' valign='top'></td>
<td height='20'></td>
<td height='20' valign='top'></td>
</tr>
</table>
</form>");
}
else // si tout es ok
{
$host="localhost";
$user="root";
$password="";
$database="essaie";
$connexion = mysql_connect($host,$user,$password) or die ("Connection a la base de donnée impossible");
$db = mysql_select_db($database,$connexion) or die ("Sélection de la base de donnée impossible");
$sql = "INSERT INTO fiche (id, pseudo, titre_m, description, titre_f, texte, origine, constructeur, taille, armement, equipage, affiliation, systeme, region, type, climat, espece, language) VALUES ('','$pseudo', '$titre_m', '$description', '$titre_f',' $texte', '$origine', '$constructeur', '$taille', '$armement', '$equipage', '$affiliation', '$systeme', '$region', '$type', '$climat', '$espece', '$language')";
$result= mysql_query($sql) or die ("Exécution de la requête impossible");
echo "Votre fiche a été postée. Elle sera validée dans les prochaines 4 heures. Merci.";
}
?>
</body>
</html>
J'espère que vous y arriverez .
Partager