Trådstart 8 maj 2002 09:49 #1 Hej hej
När man skickar grejjor till andra sidor så lägger man ju ofta variablerna i en länk, men då syns ju variablerna i adressfönstret.
Finns det inte något annat sätt?
Att skicka variablerna som sker vid 'post' hade varit kanon.
Finns det någe bra sätt?
Hänger ni på vad jag menar eller e jag bara förvirrad?
/Grodan
S SPiN Medlem sedan mars 2000 7 896 inlägg Du kan ju alltid sätta upp en socket mot websidan och skicka via POST.
Swisch sa det när det flög över mitt huvud
Que, va o allt sådant.
Hur gör man sånt?
/Grodan
S SPiN Medlem sedan mars 2000 7 896 inlägg Så här.
<?php
$socket = fsockopen ( "www.dinserver.se", 80, $errorNr, $errorStr, 25 );
if ( !$socket ) {
echo "Felnummer: " . $errorNr . "<br />";
echo "Fel: " . $errorStr . "<br />";
exit;
}
fputs ( $socket, "POST /dinSida.php HTTP/1.1\n" );
fputs ( $socket, "Host: [url]www.dinserver.se\n[/url]" );
fputs ( $socket, "Content-Type: application/x-www-form-urlencoded\n" );
fputs ( $socket, "Content-Length: " . $längdenPåData . "\n\n" );
fputs ( $socket, $Data . "\n" );
// $längdenPåData är hur byte som du ska skicka. ( Ta reda på med strlen ()
// $Data är din information som ska skickas.
// Ta emot data som returneras, dvs. sidan, här md fgets ()
fclose ( $socket );
?>
Kika på mitt script som söker i andras sökmotorer här .
Funktionen search () innehåller allt som du behöver veta.
Bugar o tackar för svaren SPiN men det verkar ju jättekrångligt (tycker jag iaf, som den nybörjare jag e).
Finns det verkligen inte någe annat sätt att skicka variabler till en annan sida utan att få med dem i adressfältet eller att bygga upp ett fomulär?
Jag vill ju ha ett lätt sätt
/Grodan
spango Medlem sedan juni 2000 8 205 inlägg Nej. Det finns inga lätta sätt.
N nicclas Medlem sedan feb. 2000 1 050 inlägg Finns det verkligen inte någe annat sätt att skicka variabler till en annan sida utan att få med dem i adressfältet eller att bygga upp ett fomulär?
Varför inte använda sessions?
/nicclas - https://www.frisim.com
Patrik81 Medlem sedan okt. 2001 538 inlägg Ok, jag medger jag kan ha läst heeelt fel och vara ute och cykla komplett, men om man inte vill att variablerna skall synas i adressfältet (som det gör då man använder
<form method="get" action="sida2.php">
) kan man inte bara använda
<form method="post" action="sida2.php">
?
Jag menar, då syns ju inte variablerna i adressfältet, och det är bara att hämta ut dem i sida2.php, eller?
Ber om ursäkt om jag inte hajjat, men är det inte bara något sådant som efterfrågas?
MVH Patrik
S SPiN Medlem sedan mars 2000 7 896 inlägg Jag visar med en liten kodsnutt:
Sida1.php
<?php
$variabel1 = $_POST[ 'variabelEtt' ];
$variabel2 = $_POST[ 'variabelTva' ];
?>
<html>
<form action="Sida2.php" method="POST">
Var 1: <input type="text" name="var1" /><br />
Var 2: <input type="text" name="var2" /><br />
<input type="submit" value="Skicka!" />
</form>
</html>
Sida2.php
<?php
$variabel1 = $_POST[ 'var1' ];
$variabel2 = $_POST[ 'var2' ];
if ( $variabel1 == "" || $variabel2 == "" ) {
$socket = fsockopen ( "www.dinserver.se", 80, $errorNr, $errorStr, 25 );
if ( !$socket ) {
echo "Felnummer: " . $errorNr . "<br />";
echo "Fel: " . $errorStr . "<br />";
exit;
}
fputs ( $socket, "POST /Sida1.php HTTP/1.1\n" );
fputs ( $socket, "Host: [url]www.dinserver.se\n[/url]" );
fputs ( $socket, "Content-Type: application/x-www-form-urlencoded\n" );
if ( $variabel1 == "" ) { // Skicka tillbaka $variabel2 då den var satt
fputs ( $socket, "Content-Length: " . strlen ( $variabel2 ) . "\n\n" );
fputs ( $socket, "variabelTva=" . $variabel2 . "\n" );
}
if ( $variabel2 == "" ) { // Skicka tillbaka $variabel1 då den var satt
fputs ( $socket, "Content-Length: " . strlen ( $variabel1 ) . "\n\n" );
fputs ( $socket, "variabelEtt=" . $variabel1 . "\n" );
}
while ( !feof ( $socket ) ) {
echo fgets ( $socket, 128 ); // Läser 128 tecken i taget och skriver ut dem
}
fclose ( $socket );
}
echo "Variabel1 var satt. Värde: " . $variabel1 . "<br />";
echo "Variabel2 var satt. Värde: " . $variabel2 . "<br />";
?>
Helt otestat, men det borde fungera som du vill.
Bugar o tackar för alla svaren
Tackar för din förklaring sist SPiN, nu har det allt klarnat lite för mig. Ska allt testa det lite, återkommer om jag får problem
Tack igen alla
/Grodan