Probleme avec $_POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme avec $_POST

Re: Probleme avec $_POST

par Mazarini » 18 nov. 2015, 16:42

Pour chaque élément du tableau $_POST, le code dans la boucle sera exécuté avec $nom et $valeur renseigné.
Par exemple si tu as un tableau ($correspondance) qui permet la conversion 'Referenceticket modifier' => 'Referenceticket' ainsi que tout les autres tu pourrais faire :
foreach ($_POST as $nom => $valeur) {
   $ancienNom = $correspondance[$nom];
   $tableAncienIndice[$ancienNom] = $valeur;   
}
Ainsi tu aurais un nouveau tableau avec les bons indices.
Si c'est pour faire une mise à jour d'une table, il te faut obligatoirement une correspondance pour savoir dans quelle colonne mettre la donnée.

Remarque, si c'est un formulaire qui sert à faire une lettre et que tu ignores quelles sont les variables :
$lettre = 'Bonjour {nom} {prenom} bla bla bla';
foreach ($_POST as $nom => $valeur) {
   $lettre = str_replace($lettre,'{'.$nom.'}',$valeur);
}

Re: Probleme avec $_POST

par MaxRaj » 18 nov. 2015, 14:56

Si je comprends bien, il y a
1 un formulaire d'où provient le $_POST['Referenceticket']
dans ce formulaire, il y a, je suppose des trucs du genre:
consultation de la BDD pour y trouver la valeur de Référenceticket
<input type = 'text' name = 'Referenceticket' value = '$Referenceticket' />
2 et le code qui nous est montré.

Chaque fois qu'on va repasser dans le formulaire, la BDD sera consultée et le Référenceticket sera actualisé...
Pour plusieurs champs il suffirait de retourner un tableau (sérialisé ou nom)
à vrai dire si une valeur est passer dans l'input,j'aimerais actualisé le mot en rouge $_POST['Referenceticket'] si elle été modifié ou non car c'est le name de l'input et ce name peut être modifier à tout moment.
Bonjour,
foreach ($_POST as $nom => $valeur) {...}
Tu disposes ainsi dans la boucle du nom et de la valeur. Je ne sais pas si ca répond à ta question.

j'ai pas toute à fait compris Mazarini :priere: ,est ce que tu peut m'éclairer un peut plus

Re: Probleme avec $_POST

par Mazarini » 18 nov. 2015, 14:18

Bonjour,
foreach ($_POST as $nom => $valeur) {...}
Tu disposes ainsi dans la boucle du nom et de la valeur. Je ne sais pas si ca répond à ta question.

Re: Probleme avec $_POST

par sirakawa » 18 nov. 2015, 14:09

Si je comprends bien, il y a
1 un formulaire d'où provient le $_POST['Referenceticket']
dans ce formulaire, il y a, je suppose des trucs du genre:
consultation de la BDD pour y trouver la valeur de Référenceticket
<input type = 'text' name = 'Referenceticket' value = '$Referenceticket' />
2 et le code qui nous est montré.

Chaque fois qu'on va repasser dans le formulaire, la BDD sera consultée et le Référenceticket sera actualisé...
Pour plusieurs champs il suffirait de retourner un tableau (sérialisé ou nom)

Re: Probleme avec $_POST

par MaxRaj » 17 nov. 2015, 16:01


J'ai pas tout compris...Tu peux reformuler stp merci ?

Mega
;)
mon problème est :
Premièrement : il y a $_POST['Referenceticket'] et où Referenceticket peut être modifier car ce nom est stocker dans ma BDD et peut être modifier à tout moment....je veux ce nom soit dynamique selon la modification apporter au BDD, j'ai déjà toute essayer mais pas de succès.
Deuxièmement : si il y a plusieurs champ à récupérer,comment puis je faire cela??? :?: :cry:

Re: Probleme avec $_POST

par yann18 » 17 nov. 2015, 15:19

tu veux peut être insérer une référence du ticket dans ta table, tu peux procéder ainsi:
function inserer( $ref_du_ticket )
{
  $dsn='mysql:dbname=baseadsl; host=localhost';
  $user='root';
  $password='';
  $connex=new pdo($dsn,$user,$password);
  $sql='insert into nvllinstallation(Ref_ticket) values(?)';
  $rows=$connex->prepare($sql);
  $rows->bindParam(1,$ref_du_ticket);
                                            
return  $rows->execute(); 
}

//le formulaire a été soumis et la référence du ticket a été renseignée : on insère cette refèrence
if(isset($_POST['valider']) && !empty($_POST['Referenceticket']) )
{
//on passe en paramètre de la fonction inserer() la ref du ticket
$insertionOK =  inserer($_POST['Referenceticket']);
if( $insertionOK === TRUE )
  echo "la référence  {$_POST['Referenceticket']} a bien été insérer dans la table";
else
 echo "Impossible d'insérer la ref";
}

Re: Probleme avec $_POST

par Megadeth » 17 nov. 2015, 14:55

Salut,

J'ai pas tout compris...Tu peux reformuler stp merci ?

Mega
;)

Probleme avec $_POST

par MaxRaj » 17 nov. 2015, 12:33

Bonjour à tous!
j'ai une BDD qui contient le nom et l'id de mes label afin de pouvoir les modifier à n'importe quel moment et puis j'ai générer un code php qui affiche ces label et des input comme ceci :
function affiche_label($idlabel){
	global $bdd;
$strSQL = 'SELECT `id_label`, `Nom` FROM `label` WHERE `id_parent` = '.$idlabel;
$resultat = requete_SQL($strSQL);
$menu_retour = '<ul>';
while ($tabl_result = $resultat->fetch(PDO::FETCH_ASSOC)) {
    $tabid  = $tabl_result['id_label'];
	$label = $tabl_result['Nom'] ;
    $tabnom = str_replace(' ','',$tabl_result['Nom']);
    $menu_retour .= "<li id='li_$tabid'>";
    $menu_retour .= "    <label id='lab_$tabid' for='inp_$tabid'>$label</label>";
    $menu_retour .= "    <input id='inp_$tabid' name='$tabnom' type='text' />";
    $menu_retour .= "</li>";                
}
$menu_retour .= '</ul>';
	
	return $menu_retour;
}
Comme vous pouvez le voir j'ai attribué des id et des name a l'input et sa fonctionne bien mais mon problème est comment faire une insertion dans la BDD dynamiquement?
Je m'explique :
j'ai le code suivant :
function inserer()
{
	$dsn='mysql:dbname=baseadsl; host=localhost';
	$user='root';
	$password='';
	$connex=new pdo($dsn,$user,$password);
	$sql='insert into nvllinstallation(Ref_ticket) values(?)';
	$rows=$connex->prepare($sql);
	$rows->bindParam(1,$RefTicket);
											
	$RefTicket=$_POST['Referenceticket'];
											
	$rows->execute(); 
}

if(isset($_POST['valider']))
{
	inserer();
}
je veut que le name dans le $_POST ($_POST['name']) soit dynamique,mais je n'ai trouvé aucune solution! :?
Pouvez vous me venir en aide?? :)