Avatar billede netsrac Praktikant
06. maj 2004 - 10:22 Der er 4 kommentarer og
1 løsning

asphttp el asptear i php

Er der nogen der lige kan vise mig hvordan man laver en post til en given url i php, altså ikke en normal form, men hvor man poster noget til en URL, ligesom file_get_contents() kan bruges hvis det skal være en forespørgsel via get. Ligesom asphttp og asptear kan gøre det i ASP.
Avatar billede sostack Nybegynder
06. maj 2004 - 10:47 #1
Prøv med:
<?php
$url = "http://www.google.com";
$felt = array("felt1" => 23, "felt2" => "hest");
?>
<body onLoad="java script:testform.submit();">
<form name="testform" action="<?php echo $url ?>" method="POST">
<?php
foreach($felt as $key => $value)
{
    echo "<input type='hidden' name='" . $key . "' value='" . $value . "'>";
}
?>
</form>

//sostack
Avatar billede netsrac Praktikant
06. maj 2004 - 11:09 #2
Det skal jo ikke være med en almindelig forespørgsel, det skal være udelukkende php kode, skal kaldes samtidig med noget andeet php kode, det skal ikke være med sådan noget javascirpt hack som du er ude i der.
Avatar billede sostack Nybegynder
06. maj 2004 - 11:12 #3
Så brug dog ASP!
Eller læs http://dk.php.net

//sostack
Avatar billede swaxi Nybegynder
06. maj 2004 - 12:52 #4
<?php
/**
  * @description : makes a http request and returns response as string.
  * $host        : hostname of target
  * $method      : 'POST' | 'GET'
  * $path        : full URL to target (with protocol and host)
  * $data        : assosciative array of data
  * $useragent  : name of browser ... optional
  * @returns    : http-response (muliline string)
  */
function sendToHost($host,$method,$path,$data,$useragent=null)
{
    $str_data = '';
    foreach ($data as $key => $value) {
        if ($str_data != '') $str_data .= '&';
        $str_data .= rawurlencode($key).'='.rawurlencode($value);
    }
    // Supply a default method of GET if the one passed was empty
    if (empty($method))
        $method = 'GET';
    $method = strtoupper($method);
    $fp = fsockopen($host,80);
    if (!$fp) return false;
    if ($method == 'GET')
        $path .= '?' . $str_data;
    fputs($fp, "$method $path HTTP/1.1\n");
    fputs($fp, "Host: $host\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
    if ($method == 'POST')
        fputs($fp, "Content-length: " . strlen($str_data) . "\n");
    if ($useragent == null)
        fputs($fp, "User-Agent: MSIE\n");
    else
        fputs($fp, $useragent."\n");
    fputs($fp, "Connection: close\n\n");
    if ($method == 'POST')
        fputs($fp, $str_data);

    $buf = '';
    while (!feof($fp))
        $buf .= fgets($fp,128);
    fclose($fp);
    return $buf;
}

/**
  * @description : splits a http-response into header and body
  * $http        : http-response (muliline string)
  * @returns    : assosciative array of header and body | false
  */
function splitHttp($http)
{
    if (!$http) return false;


    if (preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $http, $match)) {
        $return = array('header' => $match[1], 'body' => $match[2]);
    } else $return = array('header' => $http, 'body' => null);

    if (strpos($return['header'], 'HTTP/1.1 100') === 0)
        return splitHttp($return['body']);
    return $return;
}
?>
Avatar billede netsrac Praktikant
06. maj 2004 - 18:02 #5
sostack >> Det var da den dårligste kommentar at komme med! Gu vil jeg da ej benytte ASP i et PHP site, hvorfor tror du jeg har oprettet spørgsmålet? Ikke for at blive svinet til af skodhoveder som dig!

swaxi >> Det var jo lige hvad jeg søgte, godt der er nogen der kan sin PHP :) MAnge tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester