webForumDet fria alternativet

POST värdens viderbefordran

9 svar · 295 visningar · startad av Gaqzi

GaqziMedlem sedan aug. 2002224 inlägg
#1

Jag skulle behöva skicka 2 POST värden till 6 olika sidor, från ett formulär.

Är det möjligt?
Går det att lösa med t ex popups eller kommer värdena inte hänga på då?

Jag vet inte riktigt vad jag ska söka på..

preyMedlem sedan jan. 2002341 inlägg
#2

går det inte att lösa med GET istället? eller är det känslig information?

GaqziMedlem sedan aug. 2002224 inlägg
#3

jag måste använda post för jag ska skicka till en annan sida som använder miva..

dyfadesignMedlem sedan okt. 20022 inlägg
#4

Hej.

Det finns klassbibliotek med vilka du kan skicka hur många POSTs som helst till vilket skript som helst.

Sök efter 'HTTP POST' så hittar du säkert nåt.

mvh
Dyfa

RacerankanMedlem sedan dec. 19992 751 inlägg
#5

Eller så använder du ett formulär med dolda text-boxar.

GaqziMedlem sedan aug. 2002224 inlägg
#6

Racerankan: Men det är inte en massa textfält utan många sidor jag vill få det till, eller missuppfattar jag dej?

dyfadesign: är det för PHP eller är det generellt för HTTP dokument?

dyfadesignMedlem sedan okt. 20022 inlägg
#7

För PHP.

Du samlar allt du skall skicka i ett formulär, som du postar till ditt skript.

I skriptet kan du sedan skicka de POSTs du vill.

Ex:

(OBS. http_post funktionen måste skapas först...)

http_post("någon_server"
,"/skript.php"
,"array("param1" => "$värde1"
,"param2" => "$värde2");

Sedan måste du kontrollera svaret från servern för att verifiera att det gick vägen.

Lite pyssel, men det blir hur bra som helst...

Kolla manualerna på php.net för mer info.

mvh
Dyfa.

GaqziMedlem sedan aug. 2002224 inlägg
#8

så i arrayen så lägger jag in sidorna ska till (jag är inte helsuper på PHP) :)

LinganMedlem sedan okt. 20026 inlägg
#9

Låter som om det vore smidigast att använda sessioner

gör först en form som postar det du vill ha
där läser du in det i $_SESSION så här

start_session();
$_SESSION["value1"] = 'nåt värde du vill ha';
$_SESSION["value2"] = 'vad du nu vill ha med mer för värde';
etc etc..

sen lägger du till start_session();
på dom sidor du vill ha denna information
o så har du det du vill ha i $_SESSION["value1"]; o i value2
eller vad du nu döper det till

SPiNMedlem sedan mars 20007 896 inlägg
#10

Behöver du presentera informationen som returneras från de sex sidorna som får POST-värdena? Om inte, kan du göra så här:

<?php
$GLOBALS[ 'errorMessage' ] = "";
$attributes = "";
foreach( $_POST as $key => $value ) {
     if( $attributes != "" )
          $attributes .= "&";

     $attributes .= $key . "=" . $value;
}

function send( $server, $page, $attr, $port = 80 ) {
     $headerString = "POST " . $page . " HTTP/1.1\nHost: " . $server . "\nContent-type: application/x-www-form-urlencoded\nContent-length: " . strlen( $attr ) . "\n\n";

     $socket = fsockopen( $server, $port );
     if( !$socket ) {
          $GLOBALS[ 'errorMessage' ] .= "Couldn't connect to server: " . $server . "\n";
     }
     else {
          fputs( $socket, $headerString . $attr );
     }
     fclose( $socket );
}

send( "www.server1.com", "/sida1.php", $attributes );
send( "www.server2.com", "/sida2.php", $attributes, 65 );
send( "www.server3.com", "/sida3.php", $attributes );

if( $GLOBALS[ 'errorMessage' ] != "" ) {
     echo nl2br( $GLOBALS[ 'errorMessage' ] );
}
else {
     echo "Successfull!";
}
?>

Det borde fungera. Funktionen send() tar som sista paramterer emot porten som ska användas, men det är ingen nödvändig parameter - default är port 80.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)