INSERT depuis form qui fonctionne mal [Résolu]

Signaler
Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021
-
Messages postés
32452
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
-
Bonjour, je viens vous demander de l'aide car je sèche depuis deux jours. Ce script insère systématiquement en table 1 1 1.................... Et je ne vois pas où se situe la source du problème.

<?php
session_start();
header( 'content-type: text/html; charset=utf-8' );
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once 'config.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$sql = "SELECT contenant, usure_contenant FROM membres WHERE id = :id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
if (!empty($resultat )) { 
$contenant = $resultat['contenant'];
$usure_contenant = $resultat['usure_contenant'];
}
if(isset($_POST['vendre_contenant']))
 {
$produit = !empty($_POST['produit']);
$usure = !empty($_POST['usure']);
$prix = !empty($_POST['prix']);
 }
if(!empty($_POST['produit']) && !empty($_POST['usure']) && !empty($_POST['prix']))
{
try {
$pdostat = $bdd->prepare("INSERT INTO market (produit, usure, prix) VALUES (:produit, :usure, :prix)");
//$pdostat = $bdd->prepare("INSERT INTO market (produit, usure, prix) VALUES ( ?; ?; ?)");
//$pdostat = $bdd->prepare("INSERT INTO market (produit, usure, prix) VALUES ('$produit', '$usure', '$prix')");
$pdostat->bindParam(':produit', $produit,PDO::PARAM_STR);
$pdostat->bindParam(':usure', $usure,PDO::PARAM_INT);
$pdostat->bindParam(':prix', $prix,PDO::PARAM_INT);
$pdostat->execute();
}
		 catch(Exception $e){
    echo "Erreur " . $e->getMessage();
		 }

header('Location:page_membre.php');
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content=\"text/html; charset=UTF-8\"> 
bla bla bla bla bla bla
<table>
<form name="form" method="post" action=" " enctype="multipart/form-data">
<fieldset><b>VENDRE</b></fieldset>
<p>
  <label for="produit"><img src="<?php echo $contenant; ?>"/></label>
  <input type="hidden" name="produit" id="produit" value="<?php echo $contenant; ?>"/>
</p>
<p>
  <label for="usure"><b>USURE <?php echo $usure_contenant; ?>%</b></label>
 <input type="hidden" name="usure" id="usure" value="<?php echo $usure_contenant;?>"/>
</p>
<p>
  <label for="prix"><b>PRIX:</b></label>
  <input type="number" min="1" max="9999" name="prix" id="prix" size="4" value="prix"/>
</p>
</select></p>
<div align="center"><br>
<input type="submit" name="vendre_contenant" value="VALIDER" />
</td>
</div>
</form>
</table>


J'ai testé TOUTES les variables une à une. Elles sont toutes OK.




Configuration: Windows / Firefox 88.0

1 réponse

Messages postés
73
Date d'inscription
dimanche 28 février 2021
Statut
Membre
Dernière intervention
6 mai 2021

Oups, je crois avoir trouver...
J'avais viré les trim les jugeant inutiles?!

$produit = !empty($_POST['produit']) ? trim($_POST['produit']) : NULL;
Ca marche mieux ainsi.
Comme quoi !!
Messages postés
32452
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
3 484
Le souci c'est que tes lignes 20 21 22 étaient surtout incomplètes... Rien à voir avec le trim à proprement parlé.