[RESOLU] recuperer chaine caracteres php et variable depuis formulaire

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 avr. 2021, 09:35

Si tu as ce message, c'est que tu n'accèdes pas à ton script en envoyant un formulaire en POST.

##edit : Ou que tu as mal orthographié $_POST (avec l'underscore)...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 345 Messages

22 avr. 2021, 10:07

<?php
session_start();
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'];
}
?>
<html>
bla bla bla bla
<form name="form" method="post" action="vendre_contenant_fin.php" enctype="multipart/form-data">
<table>
<td>
<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&nbsp;<?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>
<br><br><br><br><br>
<a href="page_membre.php">vers page membre</a>
</center>
</body>
</html>
puis le traitement du form
<?php
session_start();
require_once 'config.php';
if(isset($_POST['vendre_contenant']))
 {
$produit = !empty($_POST['produit']);
$usure = !empty($_POST['usure']);
$prix = !empty($_POST['prix']);
 }
if(!empty($_POST['produit'])AND !empty($_POST['usure']) AND !empty($_POST['prix']))
{
$sql = "INSERT INTO market (produit, usure, prix) VALUES(:produit, :usure, :prix );";
$prep = $bdd->prepare($sql);
$prep->bindvalue(':produit',$produit,PDO::PARAM_STR);
$prep->bindvalue(':usure',$usure,PDO::PARAM_INT);
$prep->bindvalue(':prix',$prix,PDO::PARAM_INT);
$prep->execute();
header('Location:page_membre.php');
}
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 avr. 2021, 13:40

Il faut que tu debugues toi-même ton code, on ne va pas le faire à ta place...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 345 Messages

22 avr. 2021, 17:52

Ben merci, mais je ne vois plus où chercher. toutes les variables sont OK sauf les "POST" et je ne vois toujours pas où est le soucis. Je vais continuer à prospecter.

Eléphant du PHP | 345 Messages

22 avr. 2021, 20:50

Bon, j'ai coupé le script en deux (1 form) qui redirige vers le second (trt PHP).
TOUTES les variables sont OK, même les $_POST.
Je ne vois plus que la requète d'INSERT qui poserait problème?

Mammouth du PHP | 2703 Messages

22 avr. 2021, 21:08

$produit = !empty($_POST['produit']) ? trim($_POST['produit']) : NULL;
$usure = !empty($_POST['usure']) ? trim($_POST['$usure']) : NULL;
$prix = !empty($_POST['prix']) ? trim($_POST['prix']) : NULL;

$produit = !empty($_POST['produit']);
$usure = !empty($_POST['usure']);
$prix = !empty($_POST['prix']);

quelle est la différence de résultat de ces 2 codes ?

Eléphant du PHP | 345 Messages

23 avr. 2021, 00:18

Ah oui, il y a un sacré mieux. :wink: J'ai juste la variable "usure" qui affiche maintenant 0 ? :roll:
J'ai tenté ltrim et rtrim sans succès.

Eléphant du PHP | 345 Messages

23 avr. 2021, 01:11

Ca y est c'est bon, il y avait un $ qui trainait dans trim($_POST
Dire que J'avais viré les "trim" les jugeant inutiles pour ce type de formulaire!
Merci beaucoup Or =D> , grâce a ce modèle, je vais économiser du temps machine et quelques autres scripts avec des centaines de requetes imbriquées dans des switch...