webForumDet fria alternativet

Skicka via typ post?

9 svar · 307 visningar · startad av GrodanBoll

GrodanBollMedlem sedan sep. 2001789 inlägg
#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? :q
Hänger ni på vad jag menar eller e jag bara förvirrad? ;)

/Grodan

SPiNMedlem sedan mars 20005 832 inlägg
#2

Du kan ju alltid sätta upp en socket mot websidan och skicka via POST.

GrodanBollMedlem sedan sep. 2001789 inlägg
#3

Swisch sa det när det flög över mitt huvud ;)

Que, va o allt sådant.
Hur gör man sånt?

/Grodan

SPiNMedlem sedan mars 20005 832 inlägg
#4

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. :)

GrodanBollMedlem sedan sep. 2001789 inlägg
#5

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 :)

spangoMedlem sedan juni 20006 147 inlägg
#6

Nej. Det finns inga lätta sätt.

nicclasMedlem sedan feb. 20001 061 inlägg
#7

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

Patrik81Medlem sedan okt. 2001537 inlägg
#8

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

SPiNMedlem sedan mars 20005 832 inlägg
#9

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. :)

GrodanBollMedlem sedan sep. 2001789 inlägg
#10

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 :birp

/Grodan

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb