Passer une variable d'une page a une autre

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 : Passer une variable d'une page a une autre

Re: Passer une variable d'une page a une autre

par rimie » 18 juil. 2011, 04:57

je vais le passer par le biais de l'url, merci a vous

Re: Passer une variable d'une page a une autre

par rimie » 14 juil. 2011, 04:16

Si je suis bien,
le formulaire est correctement rempli -> OUI/NON
Je n'ai pas de champs a remplir, que des liens et des photos, que je dois cliquer la dessus et envoyer l'id
le script récepteur est page2.php ->Oui /NON
oui
le print_r($_POST) dans page2.php affiche Array() ->OUI/NON
oui array vide => Array()
le print_r($_POST) dans page2.php affiche un Array contenant des valeur ->OUI/NON
un array vide Array()
bêtement : il y a un bouton submit dans la page envoyeuse -> Oui/NON
ou un <input type= 'submit'..; />
un input type submit
Bonne soirée.
M.B.
merci a vous aussi

Re: Passer une variable d'une page a une autre

par sirakawa » 13 juil. 2011, 20:25

Si je suis bien,
le formulaire est correctement rempli -> OUI/NON
le script récepteur est page2.php ->Oui /NON
le print_r($_POST) dans page2.php affiche Array() ->OUI/NON
le print_r($_POST) dans page2.php affiche un Array contenant des valeur ->OUI/NON
bêtement : il y a un bouton submit dans la page envoyeuse -> Oui/NON
ou un <input type= 'submit'..; />
Às propos, je viens d'apprendre en testant mes pages en HTML Strict qu'il faut aussi se payer <br /> (je dis ça parce que j'ai vu que tu le fais déjà pour <input... />. Moi je suis de la vieille école et n'avais pas évolué là-dessus,
Bonne soirée.
M.B.

Re: Passer une variable d'une page a une autre

par rimie » 13 juil. 2011, 05:49

le print_r avant et dans le foreach affiche les valeurs retournees, et j'ai deja remplace hidden par text, et je recois les id dans la valeur de text:
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
echo '<input type="text" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
echo '<div class="Span02">'.$pic.'</div>';

Re: Passer une variable d'une page a une autre

par sirakawa » 12 juil. 2011, 20:42

si ce print_r avant le foreach n'affiche pas les valeurs que tu vroyais qu'il contenait, il faut examiner le code antérieur et voir comment ce tableau est rempli...
Si ce print_r affiche les valeurs que tu crois, il suffit de remplacer hidden par text dans les input pour voir si ça passe correctement.
Personnellement, quand il s'agit de tableaux , je préfère :
$valeur= $tab[$y]['valeur'];
$identif = $tab[$y]['identif'];
et <input type=' hidden' name ='$identif' value ='$valeur'>
au lieu de
<input type=' hidden' name ='{tab[$y]['identif']}' value ='{tab[$y]['valeur']}'>

Re: Passer une variable d'une page a une autre

par rimie » 12 juil. 2011, 15:10

oui
		    foreach($tabl_ti as $row_ti)
        {
        	print_r($row_ti);
si j'ai bien compris la 2eme partie c'est:
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
echo '<input type="text" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
echo '<div class="Span02">'.$pic.'</div>';
dans la partie type=text il m'affiche l'id.

j'ai mis print_r($tab_ti) avanr foreach et il m'affiche le meme resultat

Re: Passer une variable d'une page a une autre

par sirakawa » 12 juil. 2011, 09:44

C'est le print_r dans le foreach?
stdClass Object ( [id] => 43 [sh_a] => nom1 [sh_tr] => prenom1 [nationality] => nat1 [country_code] => na [sh_url] => url1 [count] => 1 [views] => 12 [qu] => 1 [ana] => 0 [dk] => 0 [dr] => 0 [BTV] => 0 [tl] => 0 [anam] => 0 [sr] => 0 [fi] => 0 [Pub] => 0 [ah] => 0 [ad] => 0 [Misc] => 0 )

Si c'est celui dans le foreach, et s' il y a la valeur que tu veux mettre dans on <input...>, il suffirait, pour clarifier d'écrire un truc comme ca:
$valeur = $row_ti['ana'];// par exemple
<input...... value='$valeur'>
s'il n'y a pas la valeur que tu crois, il faut remonter dane le script voir si ton tableau est bien rempli (print_r($tab_ti) avant le foreach;

Re: Passer une variable d'une page a une autre

par rimie » 12 juil. 2011, 05:17

puisque le nom du champs hidden est un id differents, je peux utiliser $row_ti->id, je recupere tous mes id dans les champs inputs, si je les hidden avec les text, je les recupere comme valeurs et quand je mets un print_r($_POST); dans page2.php je recois un Array() vide, sachant que j'ai mis form avec un lien cliquable

Re: Passer une variable d'une page a une autre

par devlop78 » 12 juil. 2011, 04:13

Si tu trouves que les informations que l'on te donnent sont différentes, voire contradictoire, c'est à toi d'essayer de comprendre les mécanismes mis en jeu. Tout simplement que rajouter des crochets à la fin du nom d'un champ de formulaire (quelqu'il soit), le "transforme en tableau". Côté PHP, c'est donc un simple tableau que l'on a.

Fais donc la bonne transition des données avec POST, et tu vérifieras ensuite que les données reçues correspondent à tes attentes avec un simple var_dump($_POST) ou print_r($_POST).

Re: Passer une variable d'une page a une autre

par rimie » 12 juil. 2011, 04:01

alors maintenant est ce que je ferais name=id[] ou bien je ferais nom=$id, chacun me donne un truc different de l'autre

Re: Passer une variable d'une page a une autre

par devlop78 » 12 juil. 2011, 03:43

Comment sais-tu ce qu'il faut récupérer.

Si tu mets comme nom de ton champ hidden l'identifiant (mettre un chiffre nom nom c'est déjà limite), tu ne sauras pas, proprement, quels sont les id passés.
<input type="hidden" name="id[]" value="$id" />

foreach ($_POST['id'] as $id)
{
echo $id;
}
L'idée a déjà été suggérée ...

Re: Passer une variable d'une page a une autre

par rimie » 12 juil. 2011, 02:55

voit-on quelque chose dans le input:
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
Si c'est nom, ça vient d'avant:

foreach($tabl_ti as $row_ti)
print"$row_ti"; ou print_r($row_ti);
et ça devrait indiquer comment continuer.
avec un print_r ca me donne:
stdClass Object ( [id] => 43 [sh_a] => nom1 [sh_tr] => prenom1 [nationality] => nat1 [country_code] => na [sh_url] => url1 [count] => 1 [views] => 12 [qu] => 1 [ana] => 0 [dk] => 0 [dr] => 0 [BTV] => 0 [tl] => 0 [anam] => 0 [sr] => 0 [fi] => 0 [Pub] => 0 [ah] => 0 [ad] => 0 [Misc] => 0 )

Re: Passer une variable d'une page a une autre

par sirakawa » 11 juil. 2011, 22:16

voit-on quelque chose dans le input:
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
Si c'est nom, ça vient d'avant:

foreach($tabl_ti as $row_ti)
print"$row_ti"; ou print_r($row_ti);
et ça devrait indiquer comment continuer.

Re: Passer une variable d'une page a une autre

par rimie » 11 juil. 2011, 12:21

le meme probleme:
<?php
echo '<form method="POST" action="sheikh.php">';
echo '<table width="600" align="center" cellpadding="3" border="0">';
echo '<tr align="center" bgcolor="#42afdc"><td colspan="4">';
echo '</td></tr>';

		    foreach($tabl_ti as $row_ti)
        {
	        	if ($i%4 == 0) echo '<tr align="center">';
			$i++;
			
				
			$sh_pic = $path2sh.$row_ti->sh_tran.'.png';
			
			$check = new Valid_File_Check($sh_pic);
				if($check->isValid($sh_pic)){
    				$pic = '<img src="'.$sh_pic.'" width="120" height="100">';
					} else {
    				$pic = '<img src="'.$path2sh.'UnknownProfile.png" width="120" height="100">';
    				}
					
			
			echo '<td width="160">';
			echo '<input type="text" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
			echo '<div class="Span02">'.$pic.'</div>';
			echo '<span class="Span01">';
			echo '<a href="'.$row_ti->sh_tran.'.html" class="info"><b>'.$row_ti->sh_a.'</b></a>';
			echo '<span>';
			echo '</td>';

     if ($i%4 ==0)echo "</tr>";
     
}
}
echo '</table>';
echo '</form>';

?>

Re: Passer une variable d'une page a une autre

par sirakawa » 11 juil. 2011, 10:53

Il y a quand même des outils avec Firefox et Opera qui aideraient beaucoup à savoir où ça en est.
Je répète de mettre 'text' à la place de 'hidden' pour voir si les valeurs qu'on croit passer sont bien présentes.
Une autre solution est d'afficher le code source de la page.
Une troisième est d'utiliser la console d'erreur de Firefox ET celle d'Opera, plus tatillon et plus bavard sur les erreurs...)
Enfin, si le print_r sur la page réceptrice dit Array() c'est que rien n'a été transmis :
sans quoi on aurait une liste de noms de champs style [toto]=>12.
Une question bête : il m'est arrivé lors de changements de présentation de mes pages de ne pas mettre le bouton submit et </form>
dans le bon ordre, ou d'oublier le </form>; alors pour peu qu'il y ait un autre <form> plus loin...