Avatar billede bumle90 Nybegynder
18. august 2004 - 20:55 Der er 10 kommentarer og
2 løsninger

Hvordan sender man et http request uden at redirecte brugeren?

Jeg skal sende en sms afsted til en sms-gateway via http.
Dette foregår ved at sende en header afsted med en parameter-streng.
Problemet er bare at jeg gerne vil sende denne afsted uden at redirecte brugeren. Er det muligt, (Det må det være) men hvordan gør jeg?
Avatar billede detox Nybegynder
18. august 2004 - 20:59 #1
Så skal du nok bruge noget med sockets. Se eks. her:

http://dk2.php.net/manual/en/function.fsockopen.php
Avatar billede bumle90 Nybegynder
18. august 2004 - 21:03 #2
kan man ikke bruge header-funktionen?
Avatar billede bumle90 Nybegynder
18. august 2004 - 21:07 #3
Hvis jeg nu fx. gerne vil sende en request med dette udseende:

http://127.0.0.1:8800/?PhoneNumber=123456&Text=Dette er en lille test
(Dette er hvad jeg har skrevet i browseraddresselinien, og det vil jeg gerne sende fra php-scriptet)
Avatar billede morteeart Nybegynder
18. august 2004 - 21:10 #4
uden at redirecte brugeren... måske med noget header kombineret med en usynlig iframe.
Avatar billede bumle90 Nybegynder
18. august 2004 - 21:16 #5
hmmm okay...lyder lidt for kringelkringlet...Så kan jeg måske bedre lide socket metoden.
detox....Kunne du evt. uddybe lidt?

Det er vel i princippet denne kode, men hvordan skal jeg skrive ovenstående streng...altså hvad skal jeg sende med istedet for det der er i eksemplet?

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br />\n";
} else {
  $out = "GET / HTTP/1.1\r\n";
  $out .= "Host: www.example.com\r\n";
  $out .= "Connection: Close\r\n\r\n";

  fwrite($fp, $out);
  while (!feof($fp)) {
      echo fgets($fp, 128);
  }
  fclose($fp);
}
?>
Avatar billede detox Nybegynder
18. august 2004 - 21:31 #6
Jeg er ikke sikker, men måske:

<?php
$fp = fsockopen("127.0.0.1", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br />\n";
} else {
  $out = "GET /?PhoneNumber=123456&Text=Dette er en lille test HTTP/1.1\r\n";
  $out .= "Host: 127.0.0.1\r\n";
  $out .= "Connection: Close\r\n\r\n";
  fwrite($fp, $out);
  while (!feof($fp)) {
      echo fgets($fp, 128);
  }
  fclose($fp);
}
?>
Avatar billede detox Nybegynder
18. august 2004 - 21:31 #7
port 80 skulle være 8800
Avatar billede dennismp Nybegynder
18. august 2004 - 22:19 #8
Den webserver der kører på port 8800 - er det samme apache som port 80? Hvis det er, så prøv at kigge på virtual().
Avatar billede sone Nybegynder
18. august 2004 - 23:02 #9
Hvis det er en ren URL su skal kalde, så kan du gøre det simpelt med file():
$resultArray = file('http://127.0.0.1:8800/?PhoneNumber=123456&Text=Dette');
Avatar billede bumle90 Nybegynder
23. august 2004 - 10:32 #10
detox smid et svar :)
Jeg har brugt din superløsning som er superlækker...
Avatar billede detox Nybegynder
23. august 2004 - 11:14 #11
Værsgo'
Avatar billede bumle90 Nybegynder
24. august 2004 - 18:12 #12
Undskyld den bratte afslutning, men jeg har lidt for mange løse ender...Blir nødt til at lukke for nogle af alle mine spg.
Tak for hjællpen. Hvis der er lagt svar får disse point, eller er jeg nødt til at tage dem selv for at lukke alle de her spg.
Mvh.
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