Redirection de mes POST avec une vérification PHP

Eléphant du PHP | 218 Messages

22 juin 2010, 16:30

bonjour, je souhaiterai faire des vérification diverse en PHP sur une page qui me permet de selectionner des articles. Comme vérifier si les champs sont bien remplis etc. Lorsque toute mes vérifications sont ok sur ma page, ca me redirige vers la page panier grace à :
redirige("../../templates/pages/etape4_supports.php" );
Mon probleme est que je ne parvien pas à envoyer mes variables $_POST, je ne sais pas si c'est possible car si j'indique une adresse dans le action="" de mon form alors la vérif ne peut évidement pas se faire. 8-|

PS. : je ne souhaite pas les envoyer en GET ni en SESSIONS.
Cadeaux personnalisés pour toute la famille :
https://cadeauxplaisir.com/

ViPHP
ViPHP | 3607 Messages

22 juin 2010, 16:49

Si tu ne souhaites pas utiliser les SESSION, les GET ou les COOKIES,
le seul moyen c'est de les enregistrer temporairement dans une table sql ou un fichier texte sur ton serveur...

Ou alors tu peux aussi afficher un mini-formulaire dans ta page de vérification et reporter toutes tes données POST en <input> de type "hidden"...

Mais pourquoi ne pas vouloir utiliser les sessions?

Eléphant du PHP | 218 Messages

22 juin 2010, 17:09

Mais pourquoi ne pas vouloir utiliser les sessions?
J'aurais bien utiliser des sessions mais je rencontrais d'autre problème et comme personne n'a pus m'aider à la question php-debutant/des-sessions-place-post-pl ... 53969.html et que je suis débutant alors je tente autre chose :?
Cadeaux personnalisés pour toute la famille :
https://cadeauxplaisir.com/

Eléphant du PHP | 218 Messages

22 juin 2010, 19:49

Ou alors tu peux aussi afficher un mini-formulaire dans ta page de vérification et reporter toutes tes données POST en <input> de type "hidden"...

ca veut dire que je peu envoyer des post à partir d'un form à la place de ma redirection? Et comment on peut faire ca?
Cadeaux personnalisés pour toute la famille :
https://cadeauxplaisir.com/

ViPHP
ViPHP | 1136 Messages

22 juin 2010, 20:48

Slt ,

Ou tout simplement réécrire un requête http , avec le données en POST ...

-> curl
-> fsockopen
-> ...

Exemple :

        $out = "POST / HTTP/1.1\r\n";
        $out .= "Host: www.monsite.fr\r\n";
        $out .= "Content-type: application/x-www-form-urlencoded\r\n";
        $out .= "Content-length: ".strlen("varA=valueA&varB=valueB")."\r\n";
        $out .= "User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)\r\n";
        $out .= "Connection: close\r\n\r\n";
        $out .= "varA=valueA&varB=valueB\r\n\r\n";


        $fp = fsockopen("www.monsite.fr", 80, $errno, $errstr, 15);
        if (!$fp) {
            echo "Erreur : $errstr ($errno)<br />\n";

        }else{
            
            //connexion effectué envoie des entetes
            fwrite($fp, $out);

             while (!feof($fp)) {
                $result .=   fgets($fp, 128);
            }
            fclose($fp);

        }

Ce qui te permet de faire n'importe quelle requête en POST depuis ton code PHP.

Maintenant , si c'est juste pour vérifier que le formulaire est bien remplis , il y a peut être plus simple .. voir javascript.

Ch.

ViPHP
ViPHP | 5462 Messages

22 juin 2010, 21:27

Slt ,

Ou tout simplement réécrire un requête http , avec le données en POST ...

-> curl
-> fsockopen
-> ...

Exemple :

        $out = "POST / HTTP/1.1\r\n";
        $out .= "Host: http://www.monsite.fr\r\n";
        $out .= "Content-type: application/x-www-form-urlencoded\r\n";
        $out .= "Content-length: ".strlen("varA=valueA&varB=valueB")."\r\n";
        $out .= "User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)\r\n";
        $out .= "Connection: close\r\n\r\n";
        $out .= "varA=valueA&varB=valueB\r\n\r\n";


        $fp = fsockopen("www.monsite.fr", 80, $errno, $errstr, 15);
        if (!$fp) {
            echo "Erreur : $errstr ($errno)<br />\n";

        }else{
            
            //connexion effectué envoie des entetes
            fwrite($fp, $out);

             while (!feof($fp)) {
                $result .=   fgets($fp, 128);
            }
            fclose($fp);

        }

Ce qui te permet de faire n'importe quelle requête en POST depuis ton code PHP.

Maintenant , si c'est juste pour vérifier que le formulaire est bien remplis , il y a peut être plus simple .. voir javascript.

Ch.
old school tout ca y'a plus simple quand même, un simple file_get_contents avec le contexte et ca roule
$opts = array(
            'http'=>array(
                'method'  => "POST",
                'header'  => "Content-type: application/x-www-form-urlencoded",
                'content' => http_build_query(array('valA' => 'valueA')
        )));
            
echo file_get_contents('http://exemple.com', false, stream_context_create($opts));

ViPHP
ViPHP | 1136 Messages

22 juin 2010, 21:38

Old school old school ..

Nannnnn pas déjà .. c'est juste un petit manque au niveau des flux hein .. oui oui .. :D

ViPHP
ViPHP | 5462 Messages

22 juin 2010, 21:41

Old school old school ..

Nannnnn pas déjà .. c'est juste un petit manque au niveau des flux hein .. oui oui .. :D
:?:

ViPHP
ViPHP | 3607 Messages

22 juin 2010, 21:54

Tout en rappelant que tout oldschool que ce soit, les file_get_contents() avec contexte et/ou sur des urls n'est pas autorisé partout, loin de là!
Donc on a une alternative au moins ;)

ViPHP
ViPHP | 1136 Messages

22 juin 2010, 21:56

Ce n'est rien .. quand je suis fatigué il n'y a pas toujours de véritables cohérences dans ce que je raconte .. :boire4:
d'ailleurs je vais de ce pas me coucher ..

En espérant que les derniers posts aient répondu à ta problématique wwwbillgates

Bonne soirée a tous ..

Ch.