php formulaire

php formulaire - Programmation

Marsh Posté le 24-07-2001 à 14:10:56    

j'ai une variable qui vient d'un formualire et je voudrais l'envoyer cette variable sur une autre page sans passer par url ou cookies. Est ce possible?
Ce que je voudrais c'est envoye cette variable grace à un formulaire qui se lancerait automatiquement
est ce possible?
merci

Reply

Marsh Posté le 24-07-2001 à 14:10:56   

Reply

Marsh Posté le 24-07-2001 à 15:02:12    

Pour répondre à ta question :
 
Oui, c'est possible !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 15:03:29    

lol
et on fait comment?

Reply

Marsh Posté le 24-07-2001 à 15:24:17    

Donc t'as 2 pages, A et B.
 
A contient un formulaire. Dans ce formulaire un champ que doit récupérer B.
 
Tu veux que ce soit automatique !
C'est là que je comprend pas ! Automatique, pour moi ca veut dire que dés que A est chargée, on apelle B ?
C'est çà ?
 
Sinon, y'a forcément une intervention de l'utilisateur à un moment. Laquelle ?
 
Détaille un peu la cinématique de tes pages !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 15:30:57    

J'ai une page A qui possède un formulaire l'utilisateur appuie sur un bouton et la page B est lance des opérations sont faites sur cette page mais c'est juste une page de transition. Une page C s'ouvre après
l'utilisateur ne voit que la page A et C s'ouvrir
Donc mon problème c'ets que dans le formulaire A je voudrais utiliser une variable dans la page C

Reply

Marsh Posté le 24-07-2001 à 16:01:19    

fait des INPUT TYPE='HIDDEN' dans A et B et tu retrouveras ta variable dans C !


---------------
CYBER666
Reply

Marsh Posté le 24-07-2001 à 16:24:48    

Donc, dans la page B :
 
<?php
... Traitements ...
?>
 
<BODY onload="document.forms[0].submit()>
<FORM>
<INPUT TYPE=HIDDEN NAME="toto" VALUE="<?php echo $toto; ?>">
</FORM>
</BODY>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 16:31:16    

Dans cet exemple, la page B fait un allez retour pour rien vers le client. (Sauf s'il y a des infos à récupérer en javascript par exemple, mais çà n'a pas l'aire d'être le cas).
 
B aurrait pu simplement faire sont traitement SANS OUTPUT, et finir par un :
header( "location:c.php?toto=$toto" );
 
Dans ce cas, y'a pas d'aller retour vers le client pour la page B, qui se contente de rediriger vers C, mais toto sera visible dans l'url, ce que tu ne veux pas !
 
Je cherche un moyen de passer par POST avec les headers. . .


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 16:35:27    

j'ai cette erreur là
 
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\23072001\formulairetemp.php:162) in c:\program files\easyphp\www\23072001\formulairetemp.php on line 169

Reply

Marsh Posté le 24-07-2001 à 16:39:29    

Ce message veut dire qu'en ligne 169 tu essaye d'envoyer un header, ce qui n'est pas possible parce-que il y a un output en ligne 162 ! ! !
 
L'output, c'est un echo, print, ou du HTML...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 16:39:29   

Reply

Marsh Posté le 24-07-2001 à 16:53:27    

j'ai enlever le header et il reste sur la page et il met qu'il rest des erreurs?

Reply

Marsh Posté le 24-07-2001 à 17:07:43    

Ben c'est qu'il doit y avoir des erreurs alors  :lol:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 17:09:15    

ça je m'en doute mais koi?

Reply

Marsh Posté le 24-07-2001 à 17:15:18    

COMMENTUVEUXQUEJELESACHE :gun:  
JAIPASTONCODESOUSLESYEUXNILEMESSAGEDERREUR :fou:  :fou:  :fou:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 24-07-2001 à 17:27:53    

<?
 
/******************************************************************/
/*                fichier associe à cette page                    */
/******************************************************************/
 
 
//permet d'associer ce tableau à cette page
include "tabcorresp.php";
 
 
/******************************************************************/
/*      concatenation de tous les champs selectionner             */
/*               et mise en forme pour le select                  */
/******************************************************************/
 
 
/* le tableau var_affichee contient les indices du tableau "tabcorresp"
   qui ont été coché par l'utilisateur */  
 
$champs="";
for ($i = 0; $i < count($var_affichee); $i++)  
  {  
    $champs=$champs.",".$var_affichee[$i];  
  }  
 
// fonction permet de retirer le premier caractère de la chaine
$champs = substr("$champs",1);  
 
 
/******************************************************************/
/*           mise en forme du WHERE suivant les valeurs           */
/*                    des champs entrées                          */
/******************************************************************/
 
 
/* La fontion "foreach" permet de parcourir le tableau (tabcorresp) */
/* La variable ind correspond à l'indice du tableau
et la variable val correspond au valeur du tableau suivant l'indice */
/*le tableau tabuni correspond aux valeurs selectionnées une à une  */
/*le tableau tabdeb correspond aux valeurs de debut      */
/*le tableau tabfin correspond aux valeurs de fin        */
 
 
 
$clause="";
foreach($tabcor[0] as $ind => $val )  
  {
    //test si un caractère a été entré dans les zones de textes correspondant au champ $ind
    if (($tabdeb[$ind]) or ($tabuni[$ind]))
       {  
  //permet de connaitre si une clause existe
         $requete_clause=TRUE;  
         $clause=$clause." AND (";
         $premier_or=TRUE;
         
 //cas où l'utilisateur a fait une requete unique
         if ($tabuni[$ind])
            {
              $clausetemp= explode (",","$tabuni[$ind]" );
              for ($i = 0; $i < count($clausetemp); $i++)  
                  {  
      if (!($premier_or))
                       $clause=$clause." OR ";
               
                    if ($tabcor[1][$ind]=="numerique" )
                $clause=$clause.$ind."=".$clausetemp[$i];
                    else
                       $clause=$clause.$ind."="."'".$clausetemp[$i]."'";
 
                    $premier_or=FALSE;
                  }
            }
 
 //cas où l'utilisateur a fait une requete avec un debut et une fin
         if ($tabdeb[$ind])
            {
              while ($tabdeb[$ind] <= $tabfin[$ind])
                {  
                  if (!($premier_or))
                     $clause=$clause." OR ";
                 
                  if ($tabcor[1][$ind]=="numerique" )
              $clause=$clause.$ind."=".$tabdeb[$ind];
                  else
                     $clause=$clause.$ind."="."'".$tabdeb[$ind]."'";
                  $tabdeb[$ind]++;
                  $premier_or=FALSE;
               }  
            }
           $clause=$clause." )";
       }
  }
 
if ($requete_clause)
   // fonction permet de retirer des caractères de la chaine (pour le and)
   $clause = "WHERE ".substr("$clause", 4);  
 
 
/******************************************************************/
/*           mise en forme du ORDER BY suivant les valeurs        */
/*                    d'ordre de trie entrées                     */
/******************************************************************/
 
 
//boolean permettant de connaitre si order by existe
$requete_order=FALSE;  
 
//mise en place d'un tableau temporaire
foreach($tabcor[0] as $ind => $val )  
  {
    if (!($tabtrie[$ind]==''))
       {
         $tabtrietemp[$tabtrie[$ind]]=$ind;
         $requete_order=TRUE;  
       }
  }
 
//création du ORDER BY
$order="";
for ($i = 1; $i <= count($tabtrietemp); $i++)  
  {  
    $order=$order.",".$tabtrietemp[$i];  
  }  
 
if ($requete_order)
   // fonction permet de retirer le premier caractère de la chaine
   $order = "ORDER BY ".substr("$order",1);  
 
 
/******************************************************************/
/*                            requete SQL                         */
/******************************************************************/
 
 
$QUERYs="
  SELECT $champs
  FROM $joint  
  $clause
  $order";
 
//permet d'enlever les espaces avant et après du QUERYs
$QUERYs= trim ($QUERYs);
$QUERYs = preg_replace("/(\n|\r\n)/","", $QUERYs);
 
 
/******************************************************************/
/*                          pour la somme                         */
/******************************************************************/
 
 
/* le tableau var_somme contient les numeros des colonnes
   qui ont été coché par l'utilisateur pour faire la somme */  
 
?>
<BODY onload="document.forms[0].submit()>
<FORM action='tableauaffiche.php' method='post'>
<INPUT TYPE=HIDDEN NAME="var_sommes" VALUE="<?php echo $var_somme; ?>">
</FORM>
</BODY>  
 
<?
//header("Location: tableauaffiche.php" );  
//setcookie("QUERY","$QUERYs" );
//setcookie("var_sommes","$var_somme" );
 
?>

Reply

Marsh Posté le 24-07-2001 à 18:01:28    

$var_somme est un tableau aussi

Reply

Marsh Posté le 24-07-2001 à 21:15:25    

savez vous?

Reply

Marsh Posté le 25-07-2001 à 08:52:43    

UP

Reply

Marsh Posté le 25-07-2001 à 09:58:36    

Je sais toujours pas quel message d'erreur tu as si tu en as un !
 
Si $var_somme est un tableau, tu peux pas faire çà :
<INPUT TYPE=HIDDEN NAME="var_sommes" VALUE="<?php echo $var_somme; ?>">  
 
! ! ! ! !
 
Alors, soit tu sérialise le tableau pour le désérialiser après, soit tu fait comme çà :
 
<?php
for( $i = 0; $i < count( $var_somme ); $i )
    echo( "<INPUT TYPE=HIDDEN NAME=\"var_sommes[$i]\" VALUE=\"$var_somme[$i]\">" );
?>
 
A condition que ton tableau ne soit qu'à une dimension, sinon :
 
<?php
for( $i = 0; $i < count( $var_somme ); $i )
    for( $j = 0; $j < count( $var_somme[$i] ); $j )
        echo( "<INPUT TYPE=HIDDEN NAME=\"var_sommes[$i][$j]\" VALUE=\"" . $var_somme[$i][$j] . "\">" );
?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 25-07-2001 à 09:59:53    

Attention de pas te mélanger les sommes :
$var_somme
$var_sommes
 :pt1cable:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 25-07-2001 à 10:38:46    

j'ai mis comme t um'as dit la deuxieme version mais il ne passe pas à la page tableauaffiche.php
il reste sur formulairetemp.php
et il met met dans la barre en bas du naviguateur
un triangle jaune qui met dit qu'il reste des erreurs sur cette page je t'envoie la capture d'ecran sur ta boite

Reply

Marsh Posté le 25-07-2001 à 11:05:24    

<BODY onload="document.forms[0].submit()>
 
Correction :
 
<BODY onload="document.forms[0].submit();">
 
ou  
 
<BODY onload="return document.forms[0].submit();">


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 25-07-2001 à 11:29:53    

merci de ton aide, la cela marche

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed