Avatar billede kurtspurt Nybegynder
01. november 2004 - 15:12 Der er 8 kommentarer og
1 løsning

Fil i string med med post indflydelse

Hej

Jeg vil gerne have hvad en a.php fil ville vise i browseren, ind i en string på b.php. Et problem er at jeg skal sende POST data til a.php. Det er fordi argumenterne er længere end GET tillader. Hvordan gør man det?
Avatar billede jaw Nybegynder
01. november 2004 - 15:45 #1
Jeg ved ikke om jeg forstår !

Men:
a.php :

$a = "Dette er en test " . $_POST['et_felt'];
echo $a;
$_SESSION['b'] = $a;

b.php:

echo $_SESSION['b'];

...eller hvad du vil med den på b.php.
Avatar billede coderdk Praktikant
01. november 2004 - 16:03 #2
b.php:

<?php

  ob_start();
  require_once( "a.php" );
  $a_indhold = ob_get_contents();
  ob_end_clean();

  // resten af koden i b.php

?>
Avatar billede kurtspurt Nybegynder
01. november 2004 - 18:09 #3
coder --> jeps - det er lige det med at tage en anden fil ind.

jaw --> nej det var ikke lige det. I stedet for at hente fx a.php?data=deteneogdetandet (kan man nemlig godt med coderdks kode) så skal jeg sende deteneogdetandet som post (fordi der er for meget data.)
Avatar billede kurtspurt Nybegynder
01. november 2004 - 18:42 #4
Jeg har lige fundet http://www.alt-php-faq.org/local/55/ - prøver at kombinerer det med coderDK
Avatar billede coderdk Praktikant
01. november 2004 - 18:45 #5
Hvad vil du opnå?
Alle variable i a.php kan du nu tilgå i b.php, og outputtet af a.php (det som ville blive skrevet ud hvis du blot kaldte a.php direkte) ligger i $a_indhold...?
Avatar billede kurtspurt Nybegynder
01. november 2004 - 19:01 #6
Jeg blev spurgt om jeg kunne lave et lille system for et firma så data fra en .php kan stilles op med kun lige de ord de har brug, for nemt og bekvemt kunne kopierer det videre til andre programmer. Humlen er at de har en fin søgeside, men at det er lavet en meget komplext (rodet?) strukturen, så man kan ikke bare kopierer det over. De har fået nogen andre til at lave og host hjemmesiden. desværre har de set sig lidt sure på hinanden, noget med prisen for at lave noget (de to virksomhedsejere kender vist hinanden fra tidligere). Så de vil ikke begynde at sige at der skal ændres noget her og der.

nå - men for at lave en lang historie kort så er det simpelt hen derfor at jeg skal bruge output fra en fil. Søgesiden modtager kun data som POST og ja - det ledte så til spørgsmålet her på eksperten ;-)
Avatar billede kurtspurt Nybegynder
01. november 2004 - 21:01 #7
Har bixet lidt kode

$ReqBody = 'action=search&Titlefelt&GENRE=M3&country=2&hits=10&submit=Search';
$ContentLength = strlen($ReqBody);
$URI = '/test.php';    
$Host = '127.0.0.1';
// Generate the request header
$ReqHeader =
"POST $URI HTTP/1.1\n".
"Host: $Host\n".
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1\n".
"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n".
"Accept-Language: en-us,en;q=0.5\n".
"Accept-Encoding: gzip,deflate\n".
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n".
"Keep-Alive: timeout=15, max=100\n".
"Connection: keep-alive\n".
"Referer: http://www.musicbrigade.com/playlists/playlist.asp?left=search.asp&menu=search&state=initial\n".
"Content-Type: application/x-www-form-urlencoded\n".
"Content-Length: $ContentLength\n\n".
"$ReqBody\n";

// Open the connection to the host
$socket = fsockopen($Host, 80, &$errno, &$errstr);
if (!$socket) {
    $Result["errno"] = $errno;
    $Result["errstr"] = $errstr;
    echo $Result;
}else{
    $str ='';
    $idx = 0;
    fputs($socket, $ReqHeader);
    while (!feof($socket)&&$idx<100){
            $str.=fgets($socket, 128);
            $idx++;
    }

}
echo "<html><xmp>$str</xmp></html>";


det virker for saavidt udemaerket, men det taber bare utrolig lang tid at loade. Det er lige som om den ikke forst[r hvorn[r der ikke er mere fil. *den bliver bare ved med at vente (det er derfor jeg har sat $idx tjekket ind)

nogen ideer til hvorfor det g[r langsomt?
Avatar billede coderdk Praktikant
01. november 2004 - 21:15 #8
prøv med connection: close og husk at lukke din socket ;) evt slut med flush(); exit;
Avatar billede kurtspurt Nybegynder
01. november 2004 - 21:35 #9
connection: close

YES - du er en guttermand c",)

og ja - selvfoelgelig skal jeg da lige have lukket for forbindelsen saa dette er tilfoejet under
    fclose($socket);
    flush();
(vidste ikke hvilken en af dem jeg skulle bruge)
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