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å..
9 svar · 295 visningar · startad av Gaqzi
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å..
går det inte att lösa med GET istället? eller är det känslig information?
jag måste använda post för jag ska skicka till en annan sida som använder miva..
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
Eller så använder du ett formulär med dolda text-boxar.
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?
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.
så i arrayen så lägger jag in sidorna ska till (jag är inte helsuper på PHP) :)
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
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.