Bug de recuperation de donnée

Fermé
Illurian Messages postés 5 Date d'inscription mercredi 22 août 2012 Statut Membre Dernière intervention 6 mars 2013 - 6 mars 2013 à 12:58
 Illurian - 7 mars 2013 à 22:18
Bonjour.
Dans le cadre de mes études je doit crée un site internet me permettant de voir les diverses facette d'un site web. Or ayant pris un peu de retard je profite de mes vacances pour le rattraper, et je n'ais donc pas de prof a qui posé la question.
voici mon problème:
J'ai un formulaire a remplir pour inséré un bien dans une liste, et j'envoi les donné receuilli a la même page pour qu'elle ls controles et les insere dans la bdd. mais ces donné ne passe pas le teste de "y'a t'il des données envoyées?". J'ai un peu de mal avec ce formulaire car il utilise du multicast.
voici mon code.

<?php
session_start();
include("controle.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../styles.css">

<title> Initiation HTML et CSS</title>
<script language="javascript">
function verif(f)
{
var retour=false
if(f.titre.value==""){
alert("Vous n'avez pas saisi de titre")
}
else
{
if(f.adresse.value=="")
{
alert("Vous n'avez pas saisi l'addresse adresse")
}
else
{
if(isNaN(f.prix.value))
{
alert("Le prix doit être composé uniquement de chiffres")
}
else
{

if(f.prix.value=="")
{
alert("Vous n'avez pas saisi de prix")
}
else
{
if(f.detail.value=="")
{
alert("Vous n'avez pas saisi de détail sur le bien")
}
else
{
alert("Saisie terminée")
retour=true;
}
}
}
}
}
return retour;
}
</script>
</head>
<body>
<div id="bandeau"></div>
<?php
include("menu.php");
?>
<div id="contenu">
<center>
<h2>Ajout d'un bien</h2>
<?php
try
{
include("../connection.php");
echo '<table border = 1 >'."\n";
echo '<tr>';

// suite du tableau
?>
<form action="ajout.php" method="POST" enctype="multipart/form-data" name="form">
<p>
<?php
echo '<tr>';
echo '<td><b><u>Titre :</u></b></td>';
echo '<td><INPUT type="text" size=30 name="titre"/><br/> </td>';
echo '</tr><tr>';
echo '<td><b><u>Détail :</u></b></td>';
echo '<td><textarea cols="40" rows="4" name="detail"></textarea><br/> </td>';
echo '</tr><tr>';
echo '<td><b><u>Adresse :</u></b></td>';
echo '<td><INPUT type="text" size=30 name="adresse"/><br/> </td>';
echo '</tr><tr>';
echo '<td><b><u>Prix :</u></b></td>';
echo '<td><INPUT type="text" size=10 name="prix"/><br/> </td>';
echo '</tr><tr>';
echo '<td><b><u>Catégorie :</u></b></td>';
echo '<td>';
echo"<select name=\"type\"> ";
$rep = mysql_query("SELECT * FROM typebien") or die ("pas bien");
while($row = mysql_fetch_array($rep ))
{
echo"<option >";
echo $row['nomtype'];
echo"</option>";
}
echo "</select> ";
echo '</td>';
echo '</tr><tr>';
echo '<td><b><u>Phtoto du bien</u></b></td>';
echo'<td><input type="file" name="avatar"/> <br/> </td>
</tr>'."\n";
// fin du tableau.
echo '</table>'."\n";
?>
<input type="submit" name="valider" value="Ajouter" onSubmit="return verif(this)">
<br />
</p>
</form>
<?php
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
//si tout a été saisi
if (isset($_REQUEST['titre'])&& isset($_REQUEST['detail']) && isset($_REQUEST['adresse']) && isset($_REQUEST['prix']) && isset($_REQUEST['piece'])) {
echo"coucou";
try
{
echo"coucou1";
$titre=$_REQUEST['titre'];
$adr=$_REQUEST['adresse'];
$detail=$_REQUEST['detail'];
$prix=$_REQUEST['prix'];
$type=$_REQUEST['type'];
$select2="select count(*) FROM bien";
$result2=mysql_query($select2);
$nbbien=mysql_fetch_array($result2);
$idbien=$nbbien[0]+1;
if($IdBien<10)
{
$IdBien="b000".$IdBien;
}
else
{
if($IdBien<100)
{
$IdBien="b00".$IdBien;
}
else
{
if($IdBien<1000)
{
$IdBien="b0".$IdBien;
}
else
{
$IdBien="b".$IdBien;
}
}
}
echo"coucou2";
//-----------------------------------------------------------------------------------------
//PARTIE UPLOAD DE LA PHOTO
//-----------------------------------------------------------------------------------------
$dossier = '../images/';

$fichier = basename($_FILES['avatar']['name']);
echo"coucou3";
$extensions = array('.jpg','.JPG');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type jpg.';
}
if ($_FILES['monfichier']['size'] >= 2000000000000000000000000000000000000)
{
$erreur = 'Votre fichier est trop gros';
}
echo"coucou4";
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
echo"coucou5";
//On formate le nom du fichier ici...
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $photo)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
//maj biens
$majc = "insert into bien(idBien, titrebien,detailbien , adrbien, prixbien, idtype, photoBien) values
('$idbien','$titre','detail','$adr','$prix','$type','$photo')";
mysql_query($majc) or die ('Erreur : '.mysql_error() );

echo'Votre bien a été enregistré avec le n° bien suivant: ';
echo $numbien;
echo "<br />";
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !'.$_FILES['avatar']['tmp_name'];
}
}
}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
}else{
echo"marche pas";
}
?>
<br />
<br />
</center>
</div>
<div id="pied_page"></div>
</body>
</html>
A voir également:

2 réponses

duweb Messages postés 353 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
Modifié par duweb le 6/03/2013 à 18:38
- étant donné que javascript est utilisé à l'envoi du formulaire, autant utiliser php pour vérifier les données.
- ensuite au lieu de $_REQUEST utilise plutôt $_POST :
- au lieu de isset utilise empty

ex :
<?php
if (!empty($_POST['valid'])) // envoi du formulaire
{
$name = !empty($_POST['name']) ? $_POST['name']: ''; // création des variables
$surname = !empty($_POST['name']) ? $_POST['name']: '';

if (!empty($name) && !empty($surname)) // vérification si toutes les valeurs obligatoires ont une valeur
{
echo "requete sql";
}

}
?>

<form method="post" action="">
nom (*)<input type="text" name="name" value="<?php echo !empty($name) ? $name: ''; ?>" /><?php echo (empty($name) && !empty($_POST['valid'])) ? '<span style="color:red;">champs obligatoire</span>': ''; ?>
<input type="submit" name="valid" value="ok">
</form>


si tu dois absolument utiliser javascript pour la vérification fait une recherche google jquery form
0
Merci de ta réponse mais pour ce qui est du poste a la place du request, c'était la première commande que j'ai utiliser pour récupérer les information (j envoi en post ça me paraissait aussi logique de récupéré ainsi) et comme ça ne marchais pas, j'ai tenté le request. Dans un second tant le javascript je l'ai récupéré d'une autre page où il était donné et j'ai juste changé le nom des variables vérifié. de plus il marche. enfin je n'ai d'habitude pas de problème avec le isset.
Mais je vais quand même tester avec ce que tu me dit j'ai rien a perdre et tout a gagner.
Merci de m'avoir répondu, si tu vois d'autres modification hésite pas.
0