passer la valeur d'une variable dans l'url

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 la valeur d'une variable dans l'url

par didgar » 14 févr. 2006, 23:49

.../... tu as raison ça devrait l'être .../...
Salut !

Je suis sûr qu'elles le sont ;-)

Pour le fun, tu peux essayer en supprimant ton global $phone dans la fonction et en mettant :
header("Location: http://0.0.0.0/install.asp?mobile=".$_POST['phone']."&error=false#Telecharger");
Je suis pratiquement certain que ça fonctionnerait. Mais bon tu utilises $phone un peu partout, donc pas obligatoire de tout casser pour si peu ;-)

A+

Didier

par MV123 » 14 févr. 2006, 23:36

Salut !

On va dire que je pinaille un peu mais les superglobales, comme par ex $_POST['le_nom_de_ma_variable'], ne sont-elles pas accessibles de partout ? Y compris à l'intérieur d'une fonction ...

A+

Didier
Salut,

tu as raison ça devrait l'être, toutefois avec ta proposition la variable $phone me retournait toujours une valeur nulle. j'ai ensuite essayé avec une autre variable $to qui se trouve elle, à l'intérieur de la fonction et là j'ai une valeur en retour. Ce n'est qu'en ajoutant
global $phone;
à l'intérieur de la variable que j'ai pu récupérer la valeur de la variable $phone.
Merci à tous, pour le moment cela resoud mon problème.
@+

Re: [Résolu]

par didgar » 13 févr. 2006, 23:33

Merci fab,

effectivement il manquait bien
global $phone;
@+
Salut !

On va dire que je pinaille un peu mais les superglobales, comme par ex $_POST['le_nom_de_ma_variable'], ne sont-elles pas accessibles de partout ? Y compris à l'intérieur d'une fonction ...

A+

Didier

[Résolu]

par MV123 » 13 févr. 2006, 23:17

Merci fab,

effectivement il manquait bien
global $phone;
@+

par fab » 13 févr. 2006, 01:59

déjà c'est $_POST['phone'] et non $HTTP_POST_VARS['phone']
apres la variable phone n'est pas déclaré dans ta fonction ( fait un if(isset($phone)) { echo "phone ok"; } pour vérifier ).
Dans avant tout dans ta fonction fait un petit
global $phone;

passer la valeur d'une variable dans l'url

par MV123 » 12 févr. 2006, 19:39

Bonjour,

oui c'est normal que l'extension de la page de redirection soit ".asp". Il s'agit d'échange de données avec un partenaire dont le site est en ASP sous IIS 6.0.
Je ne pense pas que le problème soit dans le dialog PHP <-> ASP car dans mon script PHP je récupère déjà la valeur de la variable $Phone en provenance d'un formulaire ASP
$phone = $HTTP_POST_VARS['phone'];
ou
$phone = $_POST;
Je voudrais juste faire suivre cette valeur dans l'url de redirection (quelque soit le code, n'a pas d'importance).

Merci de votre aide
Salut

par Cyrano » 12 févr. 2006, 10:53

c'est normal que ton fichier porte l'extension .asp ?
manu123, ce serait bien d'observer les réponses : fab a posé une question tout à fait pertinente à mon avis qui expliquerait la source de difficulté de récupération de données... :-k

passer la valeur d'une variable dans l'url

par manu123 » 12 févr. 2006, 02:12

Salut Didier,

merci pour ta réponse, mais en appliquant ta modification
header('Location: http://0.0.0.0/install.asp?mobile='.$phone.'&error=false#Telecharger'); 
la valeur de la variable '.$phone.' est vide sur la page de redirection (au moins ça ne retourne plus $phone en tant que chaine de texte)

Manu

par fab » 11 févr. 2006, 23:40

c'est normal que ton fichier porte l'extension .asp ?

Re: passer la valeur d'une variable dans l'url

par didgar » 11 févr. 2006, 22:40

Salut !

$phone = $HTTP_POST_VARS['phone'];


$HTTP_POST_VARS est obsolète. Remplace le par $_POST['phone']

Ensuite pour ce qui concerne le passage dans l'url :

Il faut remplacer :
header('Location: http://0.0.0.0/install.asp?mobile=$phone&error=false#Telecharger'); 
Par :
header('Location: http://0.0.0.0/install.asp?mobile='.$phone.'&error=false#Telecharger'); 
La modif est valable pour les deux lignes bien sur !

A+

Didier

passer la valeur d'une variable dans l'url

par MV123 » 11 févr. 2006, 21:53

Bonjour,

je rencontre un probème pour passer la valeur d'une variable dans une url de redirection avec header.

exemple: dans une page PHP je récupère la valeur d'un champ de formulaire: $phone = $HTTP_POST_VARS['phone']; puis j'ai besoin de rediriger vers une page ASP envoyant la valeur de la variable $phone:
header('Location: http://0.0.0.0/install.asp?mobile=$phon ... elecharger'); mais au lieu de récupérer la valeur de la variable $phone, je récupère le uni quement $phone ebtabt que chaine de texte.

Quelqun pourrait m'aider et m'expliquer ce qui est pas juste.

Merci d'avance, ci-dessous le code de ma page PHP pour mieux comprendre.
<?
// Author: [email protected]
// Date: 09.02.2006
        
    require_once('crypt.php');
    
    $phone = $HTTP_POST_VARS['phone'];
    
    
    if(!$phone) die("Erreur le numéro de mobile n'est pas spécifié.");
         
    $cryptedPhone = urlencode(cryptData($phone));     
              
    sendPush("910",reformatMobileNumber($phone),"Installation application FREEWAY","http://0.0.0.0/fw/$cryptedPhone/FREEWAY.jad");    
    
    //echo "</br>"."Installation application FREEWAY","http://0.0.0.0/fw/$cryptedPhone/FREEWAY.jad"."</br>";
                
    function sendPush($from,$to,$mess,$url) {
        $fp=false;

        $srv="0.0.0.0";
        $port="0000";
        $visitor_IP="80.80.100.100";

        $fp = fsockopen( $srv, $port , $errno, $errdesc );    
        if (! $fp) die ( "ERR: $errno $errdesc");        
    
        $content="Account=50&Username=radar2&Password=RaDaR22&Visitor_ip=". $visitor_IP ."&Origin=". $from ."&Call-number=". $to ."&Type=WAP_PUSH&Header=". $mess ."&Text=". $url;

        $len = strlen($content);

        fputs( $fp, "POST / HTTP/1.0\r\n");
        fputs( $fp, "Host: $srv=:$port\r\n");
        fputs( $fp, "Content-Length: $len\r\n\r\n");
        fputs( $fp, $content);
    
        $reply;
        while ( ! feof( $fp ) ) $reply.=fgets( $fp, 1024 );
        fclose( $fp );        
            
        $ret = strrchr ($reply, "Result_code:");
        
        $pos = strpos($ret, "Message OK");        

        if($pos=== false) {
            header('Location: http://0.0.0.0/install.asp?mobile=". $phone ."&error=true#Telecharger');
        }else{
            header('Location: http://0.0.0.0/install.asp?mobile=". $phone ."&error=false#Telecharger');
        }    
    }
    
    
    
    function reformatMobileNumber($to) {
        /* Reformat $to number */
        $cleanup_chr = array ("+", " ", "'", "(", ")", "-", ",", "/");
        $to = str_replace($cleanup_chr, "", $to);
        
        //Remove first 00
        if($to[0]=='0' && $to[1]=='0' ) $to = substr($to,2);

        //Remove first 41
        if($to[0]=='4' && $to[1]=='1' ) $to = substr($to,2);
        
        //remove first 0
        if($to[0]=='0') $to = substr($to,1);
                
        if(strlen ($to) <= 9) $to = "0041".$to;
        return $to;
    }
?>