explorer et session: secours !!!

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 : explorer et session: secours !!!

par alcofribas » 06 déc. 2005, 13:54

bon, en jetant un coup d'oeil à un thread dans le forum, je me suis aperçu qu'il fallait tout simplement tester mes variables avec $_POST['Quelquechose_x'], et là tout marche. Résolu!

par alcofribas » 05 déc. 2005, 19:38

j'ai suivi les liens, mais je ne suis pas plus renseigné... sauf sur le fait que ça ne fonctionne pas.

par alcofribas » 05 déc. 2005, 19:30

merci jeff, mais mon problème venait justement de l'utilisation du type image...

par mere-teresa » 05 déc. 2005, 19:27

par jeff » 05 déc. 2005, 19:21

salut
au lieu d'utiliser un type submit utilise un type image

par alcofribas » 05 déc. 2005, 18:42

Donc, je renouvelle ma question: comment faire pour obtenir un bouton submit qui ne ressemble pas à un méchant rectangle blanc qui prend la taille qu'il veut?

par Cyrano » 05 déc. 2005, 18:00

Ça se justifie effectivement, sujet déplacé.

par alcofribas » 05 déc. 2005, 15:58

Après essai, je confirme: le problème était bien celui-là.
Peut-être devrait-on basculer la conversation vers la section html pour aborder le sujet esthétique? Qu'en pense la modération?

par alcofribas » 05 déc. 2005, 15:52

A propos de code html, on me dit que si j'utilise une image comme bouton submit ne génère pas de variable $_POST indiquant l'utilisation de celle-ci: ce qui voudrait dire qu'en effet ma structure de test de l'autre côté ne voit tout simplement pas $_POST['Commander'].
Est-ce vrai? Dans ce cas, je tombe sur un pb d'esthétique, beaucoup moins grave: comment rendre un bouton submit un peu moins laid?

par Cyrano » 04 déc. 2005, 16:16

Ce que tu dois vérifier, ce n'est pas ce qu'il y a dans ton PHP mais les données HTML/JavaScript/CSS que tu envoies au navigateur et qui, selon le cas, peuvent être interprétées différement. Au niveau des session, le seul lien un peu direct est au niveau du réglage selon le navigateur du degré d'acceptation des cookies puisque les système gérant les session au niveau serveur envoie des cookies au navigateur. Tu pourrais t'en passer en ajustant ton php.ini avec la directive trans_sid à ON, ce qui ferait suivre l'id de session en paramètre dans les url. Mais ce n'est pas une solution souhaitable.

par alcofribas » 04 déc. 2005, 16:10

alors comment expliques-tu qu'un même code fonctionne avec certains navigateurs et pas avec un en particulier?
est-ce que ce serait quelquechose à modifier ds mon php.ini?
mais je reviens à ma question: est-ce qu'il y a une particularité à IE ou est-ce que mon problème semble théoriquement une impossibilité?


Rectification: c'est bien avec IE que ça ne fonctionne pas et non avec Netscape.

par Cyrano » 04 déc. 2005, 00:48

et si je vous dis que var_dump($_POST) retourne aussi qqc comme [commande_x] => 17 [commande_y] => 87, ça ne vous aide pas ?...
Ça, ce sont les données envoyées par un bouton de type image.
Ce qui me fait croire que ce qui ne fonctionne pas avec Netscape c'est la série d'array_push dans mon code
Tu semble oublier un détail: le PHP n'est pas interprété coté client mais coté serveur: le problème est donc forcément ailleur puisque selon ta programmation, les mêmes éléments seront envoyés au navigateur quel qu'il soit.

par alcofribas » 03 déc. 2005, 21:39

et si je vous dis que var_dump($_POST) retourne aussi qqc comme [commande_x] => 17 [commande_y] => 87, ça ne vous aide pas ?
J'ai essayé de remplacer array_push par $_SESSION[...] = $var et ça ne fonctionne pas plus :evil:
C'est une histoire de digne non?
Comme je peux voir ce qui cloche? Un dégoguer en ligne ? un test que je ne connais pas ?
Mon site dois sortir mardi, je ne sais plus quoi faire.

par alcofribas » 02 déc. 2005, 22:20

en faisant print_r($_POST); je m'aperçois que les données sont bien là sur Netscape et sur IE.
Ce qui me fait croire que ce qui ne fonctionne pas avec Netscape c'est la série d'array_push dans mon code, ou plus simplement que la formulation des conditions n'est pas comprise par IE... :?

par alcofribas » 02 déc. 2005, 13:44

C'est ce que j'ai cru en premier pcq c'est quelqu'un qui est entré sur ma page avec IE et qui m'a signalé le problème. Je lui ai dit de vérifier ses cookies et son niv de sécurité mais rien.
J'y suis allé avec explorer, que je n'utilise jamais, et j'ai le même pb.
Voici le formulaire qui doit envoyer mes variables récupérées par le script (1).
<form method="post" action="Panier.php">
        <table style="width: 750px;" border="0" cellpadding="0" cellspacing="0"> 
                  <tr>
                          <td style="vertical-align: top; text-align: left;">
                                   <table style="width: 750px; text-align: left;" border="0" cellpadding="0" cellspacing="0">
                                            <tr>
                                                   <td colspan="1" rowspan="1" style="width: 215px; vertical-align: middle; text-align: left; font-family: Arial; font-weight: bold; color: rgb(255, 255, 255);">
       <div style="margin-left: 20px;">
       <span style="color: rgb(255, 255, 255); font-weight: bold; text-decoration: underline;">
       <?php
       require('refprod.php');
       echo '<input type="hidden" value="'.$refprod.'" name="reference">'.$refprod;
       ?>
       </small>
       </div>
</td>

<td rowspan="1" style="width: 535px; text-align: left;" valign="top">
                                                                             
        <table style="width: 535px; text-align: left;" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                                <td>
                                <br>
                                </td>
                        </tr>
                        <tr>
                                <td style="width: 145px; height: 20px; vertical-align: center; text-align: center; font-family: Arial; background-color: rgb(102, 0, 58); color: rgb(216, 0, 0); font-weight: bold;">
                                        <small>Temps restant</small>
                                </td>
                                
                                <td style="width: 90px; height: 20px; vertical-align: center; text-align: center; font-family: Arial; background-color: rgb(85, 0, 48); color: rgb(216, 0, 0); font-weight: bold;">
                                        <small>Prix initial</small>
                                </td>
        
                                <td style="width: 102px; height: 20px; vertical-align: center; text-align: center; font-family: Arial; background-color: rgb(85, 0, 48); color: rgb(216, 0, 0); font-weight: bold;">
                                        <small>Prix actuel</small>
                                </td>
        
                                <td style="width: 198px; height: 20px; vertical-align: center; text-align: center; font-family: Arial; background-color: rgb(71, 0, 40); color: rgb(216, 0, 0); font-weight: bold;">
                                        <small>Quantit&eacute;s actuelles cumul&eacute;es</small>
                                </td>
                        </tr>
                        
                        <tr>
                                <td style="width: 145px; height: 22px; vertical-align: center; text-align: center; font-family: Arial; color: rgb(255, 255, 255); font-weight: bold;">
                                        <?php
                                        require('w_ti.php');
                                        echo '<small>'.$nb_days.'&nbsp;jour(s)&nbsp;'.$nb_hours.'h&nbsp;et&nbsp;'.$nb_mins.'mn</small>';
                                        ?>
                                </td>
                                
                                <td style="width: 90px; height: 22px; vertical-align: center; text-align: center; font-family: Arial; color: rgb(255, 255, 255); font-weight: bold;">
                                        <?php
                                        require('ac_px.php');
                                        echo '<small>'.$pu.'&nbsp;&euro;</small><input type="hidden" value="'.$pu.'" name="prixunitaire">';
                                        ?>
                                </td>
                                
                                <td style="width: 102px; height: 22px; vertical-align: center; text-align: center; font-family: Arial; color: rgb(255, 255, 255); font-weight: bold;">
                                        <?php
                                        echo '<span style="color: rgb(216,0,0)"><small>'.$pa.'&nbsp;&euro;</small></span><input type="hidden" value="'.$pa.'" name="prixactuel">';
                                        ?>
                                </td>
                                
                                <td style="width: 198px; height: 22px; vertical-align: center; text-align: center; font-family: Arial; color: rgb(255, 255, 255); font-weight: bold;">
                                        <?php
                                        require('actu_qt.php');
                                        ?>
                                </td>
                            </tr>
                      </table>
                 </tr>
             </td>
        </tr>
     </table>
   </td>
 </tr>
 <tr>
<td style="width: 300px; vertical-align: middle; text-align: right; color: rgb(255, 255, 255); font-family: Arial; font-weight: bold;">
        
        <small>Quantit&eacute;s souhait&eacute;es :</small>
        <input maxlength="3" size="3" name="quantite">
        
</td>

<td style="width: 200px; vertical-align: middle; text-align: right; color: rgb(255, 255, 255); font-weight: bold;">

        <div style="margin-left: 10px;">
        <span style="color: rgb(255, 255, 255); font-weight: bold;">
        <input type="image" src="Commander.jpg" name="Commander" value="Commander">
        </div>
              
</td>
 </tr>
</table>
</form>
Ce code est appelé dans une page plusieurs fois pour plusieurs produits différents.
J'ai essayé d'encadrer ces différents bloques par une seule balise <form>, mais ça ne fonctionne plus nulle part dans ce cas.