IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Hyperlink et formulaire + $_POST


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Hyperlink et formulaire + $_POST
    Bonjour,

    J'ai un souci et ne sais comment me sortir de là....

    J'ai un formulaire avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="../index.php" title="bla bla ">
        <input name="subscribe_exit" type=submit ........ />
    </a>
    Je souhaiterai intercepter cet event afin de nettoyer mon $_POST, c'est facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset(($_POST["subscribe_exit"]))
       {      unset($var1) :
              unset($varX) ;
       }
    A ce point, j'ai deux soucis, afin de pouvoir être intercepté je dois ôter les balises d'hyperlink (<a......> et </a>)

    Mais dès que l'event est intercepté, je ne sais comment je peux brancher à index.php puisque je ne suis plus dans une forme et vu que le style de programmation via dreameaver n'autorise pas les "header" à cet endroit....

    Je pourrais simuler ce branchement en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once $_SERVER['DOCUMENT_ROOT'] . "/index.php";
    Cela pourrait peut être bien fonctionner mais ne suis pas sur du tout, n'y a t'il pas d'autres moyen ??????

    Merci de votre coup de main !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de formulaire dans ce que tu nous montres.
    Que veux-tu faire quand tu dis "intercepter" ?

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Formulaire et hyperlink....
    Cela me semblait tellement évident....
    Je résume, en séquence j'ai... c'est une grande forme, je vais la couper...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    INTERCEPTION DE L'EVENT "subscribe_exit"
    
    if (isset(($_POST["subscribe_exit"]))
       {      unset($var1) :
              unset($varX) ;
       }
    .....
    .....
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="subscribe_form" id="subscribe_id">
       	<table width="50%" class="form_bkg border">
    
    
    					<?php					  
    						$a = (isset($_POST['age'])) ? $_POST['age'] : 0 ;
    		 				form_select($sel_age , $name="age" , $default = $a ) ; 
    						?>
    					</div>				</td>
        			<td>
    					<div align="center">
    						<span class="form_lbl">civilite</span> <span class="fld_mandatory">*</span> 
    						<br/>
    	                   	<?php					  
    						$g = (isset($_POST['civilite'])) ? $_POST['civilite'] : 0 ;
    		 				form_select($sel_civilite , $name="civilite" , $default = $g ) ; 
    						?>					
    					</div>				</td>
    				<td>
    					>
       		<td align="center">
    			<a href="../subscribe1.php" title="Je m'inscris à [Je Crapahute]">
    			<input name="subscribe_send" type="submit" id="subscribe_send" value="Envoyer" class="form_button" 
    									<?php echo $Conn->get_enter_attr() ?>/>
    			</a>
    		</td>	
    		<td> ICI DEVRAIT PRENDRE PLACE MA BALISE
                           <a href="../index.php" title=".......">
    	 	<input name="subscribe_exit" type="submit" value="Accueil" class="form_button">
                           </a>
    		</td>
    	</tr>
    	</table>
    </form>
    Si j'ai un quelconque traitement à faire, je peux le faire à l'endroit où j'intercepte l'évent (en haut) mais ne peux plus brancher vers ../index.php !!!!

    Je viens d'avoir une drôle de surprise liée à ce problème et cette transaction, je l'ai coupée en 4 car il y a autant d'étapes pour finaliser le formulaire !
    Je les aie nommée subscribe0, subscribe1, 2 & 3
    Je pensais que le tableau global $_POST allait conserver les valeurs encodées.
    Que nenni, j'ai fait un print_r en début de 2 ième étape, vide !

    Je me tâte car ne sais plus que faire......

    Merci d'avance.....

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire une redirection ou tu veux (tant que n'a pas produit un affichage).
    Ce n'est pas parce que Dreamweaver n'est pas content, que ce n'est pas possible.

  5. #5
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut
    Que veux-tu dire par redirection....
    Il y a eu déjà des affichages (la forme en question....) et que je sache je ne puis plus utiliser "header"....
    Je ne sais s'il existe d'autres astuces...

    Merci de préciser

    header() permet de spécifier l'en-tête HTTP string lors de l'envoi des fichiers HTML. Reportez-vous à » HTTP/1.1 Specification pour plus d'informations sur les en-têtes HTTP.

    N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
    <html>
    <?php
    /* Ceci produira une erreur. Notez la sortie si dessus,
    * qui se trouve avant l'appel à la fonction header() */
    header('Location: http://www.example.com/');
    ?>


    Plus possible.... il y a déjà eu affichage !!!!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si j'ai un quelconque traitement à faire, je peux le faire à l'endroit où j'intercepte l'évent (en haut) mais ne peux plus brancher vers ../index.php !!!!
    Quand tu dis "brancher vers" tu parles bien d'une redirection non ?

    Pourquoi ne peux-tu pas placer ton if() + redirection avant tout affichage ?

  7. #7
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Formulaire et hyperlink....
    C'est très simple; il y a un menu.... et puis cette transaction....
    Voilà..... c'est con mais c'est ainsi !
    Et puis, je l'ai déjà dit, j'en suis à la 4 ième partie de cette transaction, toutes ont fait de l'affichage....

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et qu'est ce qui empeche de faire ta redirection avant d'afficher le menu ?

  9. #9
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Formulaire et redirection
    Je ne comprends pas et ne vois pas comment je peux aire une redirection vers X si je n'ai pas encore choisi cet X.....
    Un exempe peut être....

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'affichage du formulaire et sa lecture n'ont pas lieu au meme moment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($_POST["menu"] == "xxx")
       {
         header('Location : xxxx');
       }
     
    echo menu

  11. #11
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Formulaire et redirection
    Tu parles d'une programmation PHP 100% mais ici il s'agit d'un site que je reprends et qui a été développé en HTML sur Dreamweaver...
    Je ne m'occupe que de la partie PHP et MYsql, donc en résumé tous les events pouvant être intercpté via $_POST .... cela fait déjà pas mal !

    Ce que je fais aussi d'ailleurs et me pose des questions sur le futur à ce sujet... mais du HTML convertit en PHP est assez illisible alors....
    Je ne peux changer les pages HTML, dsl....
    Si la solution était javascript pour moi cela conviendrait quoiqu'il y a bcp de personnes qui rendent cet outil indisponible dans leur navigateur, donc j'émets des réserves.

    Dans ton exemple, l'event "menu" est déclenché par quel trigger ?
    Un bouton dans un formulaire ?
    Si c'est le cas, 4 à 5 pages HTML et PHP ont déjà été affichées avec leurs commentaires aussi.... ce que l'header n'aime particulièrement que je sache....
    Enfin.. on trouvera bien un turnaround....

    Merci quand même

Discussions similaires

  1. Générer un envoi de formulaire $_POST
    Par krazao dans le forum Langage
    Réponses: 10
    Dernier message: 29/08/2008, 16h38
  2. plusieurs formulaire valider et prob $_POST
    Par BigBarbare dans le forum Langage
    Réponses: 7
    Dernier message: 07/04/2006, 13h09
  3. envoi un $_POST sans formulaire
    Par hugo69 dans le forum Langage
    Réponses: 10
    Dernier message: 06/04/2006, 13h48
  4. Hyperlink vers un formulaire acces, a partir de outlook
    Par The Vandals dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 20h44
  5. Récupération de valeurs de Formulaire via $_POST
    Par GarGamel55 dans le forum Langage
    Réponses: 5
    Dernier message: 10/10/2005, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo