/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Kan man POSTE variable fra en side til en ~
Fra : Preben


Dato : 26-08-09 21:18

Jeg vil høre om det på nogen måde er muligt, at bruge POST til at
overføre data mellem to php scripts? Fuldstændig ligesom en HTML
formular der bliver sendt, bare serverside i stedet for?

Jeg kan forestille mig det kunne gøres vha. header(). Jeg har
forsøgt med følgende:

$vars = urlencode("var1=$var1&var2=$var2");
$host = "www.mitdomæne.dk";
$path = "/page2.php";
header("POST $path HTTP/1.1\r\n");
header("HOST: $host\r\n");
header("Content-type: application/x-www-form-urlencoded\r\n");
header("Content-length: ".strlen($vars)."\r\n");
header("Connection: close\r\n\r\n");
header($vars);

...men fik en "Internal Server Error".

Jeg ved som sagt ikke om det overhovedet kan lade sig gøre,
udover min "mavefornemmelse", der fortæller at det kan.
Skal jeg bare glemme det eller er der nogen der kan hjælpe?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Gert Krabsen (26-08-2009)
Kommentar
Fra : Gert Krabsen


Dato : 26-08-09 21:38

Preben skrev:
> Jeg vil høre om det på nogen måde er muligt, at bruge POST til at
> overføre data mellem to php scripts? Fuldstændig ligesom en HTML
> formular der bliver sendt, bare serverside i stedet for?
>
> Jeg kan forestille mig det kunne gøres vha. header(). Jeg har
> forsøgt med følgende:
>
> $vars = urlencode("var1=$var1&var2=$var2");
> $host = "www.mitdomæne.dk";
> $path = "/page2.php";
> header("POST $path HTTP/1.1\r\n");
> header("HOST: $host\r\n");
> header("Content-type: application/x-www-form-urlencoded\r\n");
> header("Content-length: ".strlen($vars)."\r\n");
> header("Connection: close\r\n\r\n");
> header($vars);
>
> ..men fik en "Internal Server Error".
>
> Jeg ved som sagt ikke om det overhovedet kan lade sig gøre,
> udover min "mavefornemmelse", der fortæller at det kan.
> Skal jeg bare glemme det eller er der nogen der kan hjælpe?

Jeg plejer at inkludere 'script nummer to' med en include() kommando -
og så er der ingen variabler, der skal overføres..

Preben (27-08-2009)
Kommentar
Fra : Preben


Dato : 27-08-09 02:55

Gert Krabsen wrote in dk.edb.internet.webdesign.serverside.php:
> Jeg plejer at inkludere 'script nummer to' med en include() kommando -
> og så er der ingen variabler, der skal overføres..

Der er nok mange måder at løse det på, i øjeblikket bruger jeg $_SESSION,
men det er mere et spørgsmål *om* det kan lade sig gøre med POST metoden.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (27-08-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-08-09 10:23

Preben skrev:

> Jeg vil høre om det på nogen måde er muligt, at bruge POST til at
> overføre data mellem to php scripts?

Man kan overføre POST-data mellem to forskellige HTML-sider:

   <form action='secretpage.php' method='post'>
   <p><input type='hidden' name='authenticated' value='yes'></p>
   </form

Hvis scriptene hører til samme side, ville jeg bruge include som
Gert anviser. Hvis de ligger på forskellige sider, kan du bruge
ovenstående opskrift.

--
Bertel
http://bertel.lundhansen.dk/         FIDUSO: http://fiduso.dk/

Stig Johansen (27-08-2009)
Kommentar
Fra : Stig Johansen


Dato : 27-08-09 11:11

"Preben" <prebenprebs@gmail.com> wrote in message
news:4a959884$0$299$14726298@news.sunsite.dk...
> Jeg vil høre om det på nogen måde er muligt, at bruge POST til at
> overføre data mellem to php scripts? Fuldstændig ligesom en HTML
> formular der bliver sendt, bare serverside i stedet for?

Jeg er ikke den store PHP-haj, men her er hvad 'svineørerne' bruger til POST
requests (serverside):
.....
<?
function http_post_urlarray($ident, $keys, $array){
$in_first = true;

foreach($array AS $key => $value){
if (substr($return, -1) == "&"){
$return = substr($postdata, 0, -1);
}

if ($in_first == true){
$in_first = false;
}else{
$return .= "&";
}

if (is_array($value)){
$keys = $keys;
$keys[] = $key;

$return .= sms_post_urlarray($ident, $keys, $value);
}else{
$return .= $ident;

if ($keys){
foreach($keys AS $thiskey){
$return .= "[" . urlencode($thiskey) . "]";
}
}

$return .= "[" . urlencode($key) . "]=" . urlencode($value);
}
}

$return .= "&";

return $return;
}

function http_post($host, $port, $site, $options){
$fp = fsockopen($host, $port, $error_number, $error_string, 2);

if ($fp){
$in_first = true;

foreach($options AS $key => $value){
if ($in_first == true){
$in_first = false;
}else{
$postdata .= "&";
}

if (is_array($value)){
$in_first = true;
$postdata .= http_post_urlarray($key, "", $value);
}else{
$postdata .= urlencode($key) . "=" . urlencode($value);
}
}

$out = "POST http://" . $host . "/" . $site . " HTTP/1.0\r\n";
$out .= "Content-Length: " . strlen($postdata) . "\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "\r\n";
$out .= $postdata;

fwrite($fp, $out);

$in_answer = "";

while(!feof($fp)){
$in_string = fgets($fp, 1024);
$in_answer .= $in_string;
}

fclose($fp);

return $in_answer;
}else{
echo "No connection.";
}
}

function http_post_file($host, $port, $site, $file){
$boundary = "---mYbOun";
$cont = file_get_contents($file);

$post .= "--" . $boundary . "\n";
$post .= "Content-Disposition: form-data; name=\"name_of_textfield\";
filename=\"the_filename\"\n";
$post .= "Content-Type: application/octet-stream\n\n";
$post .= $cont;
$post .= "\n--" . $boundary . "--\n\n";

$headers .= "POST http://" . $host . "/" . $site . " HTTP/1.0\n";
$headers .= "Content-Type: multipart/form-data; boundary=" . $boundary .
"\n";
$headers .= "Content-Length: " . strlen($post) . "\n";
$headers .= "\n";

$sendd = $headers . $post;
$length = strlen($sendd);
unset($post);
unset($headers);

$fp = fsockopen($host, 80);
while($count < ($length + 2048)){
fputs($fp, substr($sendd, $count, 2048));
$count += 2048;
}

while(!feof($fp)){
fread($fp, 1024);
}

fclose($fp);
}
?>
.....

Indenfor javascript(clientside) eller ASP(serverside) findes der en
XMLHTTPRequest til den slags.

Jeg vil gætte på, der findes noget tilsvarende til PHP, så man ikke skal ned
i lavpraktisk kode.

--
Med venlig hilsen/Best regards
Stig Johansen




Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste