Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 15:47 Der er 28 kommentarer og
2 løsninger

sende information ?

Hej all of you.

Jeg har et lille problem. Ved dog ikke om det kan laves kun i php eller andre programeringssporg skal hjælpe til.
Men jeg ved det kan laves, da jeg har hørt (lang tid siden) nogen tale om det.

Her er et eksempem (dog ikke hvad jeg vil bruge det til) :
Min php kode "åbner" google.dk og indtaster et søgeord og den finder nogen muligher. (som om en bruger gik ind på google.dk og søgte)

Problemet er at det jeg vil bruge det til, ikke benytter sig af gets, men post. Derfor kan man ikke bare indsætte det i adressen.

Forstår i mig ?

Håber nogen kan hjælpe mig.
På forhånd tak.
Avatar billede editone Nybegynder
04. december 2004 - 16:04 #1
Jamen så skal du bare oprette en formel, i html.
hvor du indtaster søge ordet hvorefter man trykker på søg,

If($_POST[seek] != " ") {
header("http://www.google.dk/search?q=$_POST[seek]");
}
Avatar billede googolplex Novice
04. december 2004 - 16:05 #2
Jeg er ikke sikker, men måske du kan brue denne post()-funktion fra http://www.razor.dk/php/funktioner/:

string post (array data, string url[, int timeout])

Simulerer en POST-forespørgsel til url. data er et associativt array der indeholder de data der skal POST'es. Der kan evt. sættes en timeout som angives i hele sekunder. Returnerer svaret fra serveren, eller false hvis ikke der kunne opnås kontakt med serveren.

<?php
function post ($data, $url, $timeout=30) {

  $url_array = parse_url($url);
  $query = "";

  foreach ($data as $key => $value) {
    if ($query) $query .= "&";
    $query.= $key."=".urlencode($value);
  }

  $len = strlen($query);

  $headers =
    "POST ".$url_array["path"]."?".$url_array["query"]." HTTP/1.1\n".
    "Host: $url_array[host]\n".
    "User-Agent: PHP/".phpversion()."\n".
    "Content-Type: application/x-www-form-urlencoded\n".
    "Content-Length: $len\n\n".
    "$query\n";

  $socket = fsockopen($url_array["host"], 80, $errno, $errstr, $timeout);

  if (!$socket) {
    return false;
  } else {
    fputs($socket, $headers);
    while (!feof($socket)) $in .= fgets($socket, 128);
    return $in;
  }

}
?>
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:10 #3
det vil jeg vil kigge på.. Men hvor sætter jeg hjemmeside adressen ind ? forstår nemlig ikke helt koden.
Avatar billede razor Nybegynder
04. december 2004 - 16:26 #4
$url
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:28 #5
hej razor.. Hvordan starter den funktion ? Er ikke helt med sorry
Avatar billede editone Nybegynder
04. december 2004 - 16:30 #6
<?php
if($_POST[seek1] != '')
{
    header("Location: http://www.google.dk/search?q=$_POST[seek1]");
}
?>
<form action="" method="post">
    <input name="seek1" type="text" id="seek1" value="">
    <input type="submit" name="seek" value="seek">
</form>
<--- den der virker

Mvh editone - editone.dk
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:31 #7
editone.dk --> læs venligst mit spørsmål igen.
Avatar billede editone Nybegynder
04. december 2004 - 16:32 #8
nååå sådan at du vil lave en søge station der søger på google og nakker dens resultater :D ?
Avatar billede razor Nybegynder
04. december 2004 - 16:32 #9
rasmus-madsen, Du goer blot som der staar i beskrivelsen. 'url' er en tekststreng med URL'en der skal POST'es til. 'data' er et associativt array med datavaerdierne. Hvad er det du er i tvivl om?
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:33 #10
nej læs venligst mit spørsmål en gang til. Det er et eksempel. Ikke hvad jeg vil bruge det til.
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:35 #11
razor det hele :D .. er ikke så god til php endnu.

$data hvor skal den se ud ?
etfelt=envædi&etfeltmere=enandenværdi --> Sådan ?
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:44 #12
for disse fejl:
Warning: Invalid argument supplied for foreach() in /hsphere/local/home/thetriba/madsen.gameplanet.dk/post/test.php on line 7

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /hsphere/local/home/thetriba/madsen.gameplanet.dk/post/test.php on line 22

Warning: fsockopen(): unable to connect to :80 in /hsphere/local/home/thetriba/madsen.gameplanet.dk/post/test.php on line 22
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 16:49 #13
Jeg bruger denne:
post("navn=rasmus&alder=17", "http:\\www.madsen.gameplanet.dk\post\modtag.php");

Og for overnævnte fejl :(
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:13 #14
er der ingen som kan hjælpe med deT?
Avatar billede ranglen Nybegynder
04. december 2004 - 17:19 #15
den vil have data som et array

$data = Array(
  "navn" => "rasmus",
  "alder" => "17");

post($data, "http:\\www.madsen.gameplanet.dk\post\modtag.php");
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:27 #16
Nu kom vi tættere:
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /hsphere/local/home/thetriba/madsen.gameplanet.dk/post/test.php on line 22

Warning: fsockopen(): unable to connect to :80 in /hsphere/local/home/thetriba/madsen.gameplanet.dk/post/test.php on line 22
Avatar billede ranglen Nybegynder
04. december 2004 - 17:28 #17
en anden ting, man bruger normalt ikke backslash i url'er

http:\\www.madsen.gameplanet.dk\post\modtag.php
=>
http://www.madsen.gameplanet.dk/post/modtag.php
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:31 #18
Nu virker det !!!
Men har lige et spørgmål mere.

Hvordan læser jeg nu indeholdet af den nye side, som den er kommet til ?

På forhånd tak.
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:32 #19
Altså af modtag.php
Avatar billede razor Nybegynder
04. december 2004 - 17:38 #20
Indholdet bliver returneret af funktionen.
Avatar billede razor Nybegynder
04. december 2004 - 17:38 #21
(Har du overhovedet laest hvad der bliver skrevet? Citat: "Returnerer svaret fra serveren, eller false hvis ikke der kunne opnås kontakt med serveren.")
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:44 #22
tænkte nu mere på alt indhold.. Alt html også.
Nu for jeg:
HTTP/1.1 100 Continue Server: Microsoft-IIS/5.0 Date: Sat, 04 Dec 2004 16:42:44 GMT HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Sat, 04 Dec 2004 16:42:44 GMT Connection: close X-Powered-By: PHP/4.1.2 Content-type: text/html rasmus17hvad?

Istedet for alt html indhold.
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:50 #23
kan man det ?
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 17:55 #24
Razor svar.. I deler pointsne...

Jeg opretter et nyt spm, men den anden spørgsmål..
Avatar billede razor Nybegynder
04. december 2004 - 18:00 #25
Uhm? Den boer returnere HTML'en ogsaa. Er du sikker paa den side du POST'er til eksisterer og returnerer noget?
Avatar billede rasmus-madsen Nybegynder
04. december 2004 - 18:01 #26
Ja har endda prøvet exp.dk men den udskrev hellere ikke noget html
Avatar billede rasmus-madsen Nybegynder
05. december 2004 - 18:27 #27
Du har ikke fundet en løsning vel ?
Avatar billede rasmus-madsen Nybegynder
05. december 2004 - 19:39 #28
har nu testet det.. og det virker på min egen side, men ikke med exp.dk ?

Ved du hvorfor ?
Avatar billede razor Nybegynder
06. december 2004 - 08:46 #29
Har du mulighed for at goere kilden til din implementation af scriptet offentlig?
Avatar billede rasmus-madsen Nybegynder
07. december 2004 - 22:42 #30
Mener du min kode ? Det stadig den samme som før.. Altså:

<?php
function post ($data, $url, $timeout=30) {

  $url_array = parse_url($url);
  $query = "";

  foreach ($data as $key => $value) {
    if ($query) $query .= "&";
    $query.= $key."=".urlencode($value);
  }

  $len = strlen($query);

  $headers =
    "POST ".$url_array["path"]."?".$url_array["query"]." HTTP/1.1\n".
    "Host: $url_array[host]\n".
    "User-Agent: PHP/".phpversion()."\n".
    "Content-Type: application/x-www-form-urlencoded\n".
    "Content-Length: $len\n\n".
    "$query\n";

  $socket = fsockopen($url_array["host"], 80, $errno, $errstr, $timeout);

  if (!$socket) {
    return false;
  } else {
    fputs($socket, $headers);
    while (!feof($socket)) $in .= fgets($socket, 128);
    return $in;
  }

}
?>

Problemet er bl.a. den kun virker hvis det er et php script..
Og jeg vil gerne have alt html med. Hvis f.eks er:

<html>
<?php
echo $_POST['navn'];
echo $_POST['alder'];
echo "<b>hvad?";
?>

asdasaf
<\html>

Vil <html> Ikke komme med :(

På forhånd tak
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