3 sätt att flytta data mellan webbsidor

 

De tre sätten.

POST

GET

SESSION

Då deras funktion skiljer sig åt så finns det ett antal för och nackdelar som man ska tänka på när man väljer vilken typ man ska använda i sitt skript.

POST

Det vanligaste användningsområdet för “post” är tillsammans med formulär.

Fördelen är att informationen sänds “dolt” mellan sändar-script och mottagar-script, eftersom informationen skickas i headern till mottagaren.

 

ex. sänd med post.

<html>
    <head>
        <title>Skicka</title>
    </head>
    <body>
        <form action="mottagare.php" method="post" enctype="multipart/form-data">
            <p>Text att skicka:</p>
            <input type="Text" name="text" value=""></input>
            <input type="hidden" name="dold" value="dold information"></input>
            <input type="submit" value="Skicka"></input>
        </form>
    </body>
</html>

Detta ger ett enkelt formulär för att skicka över en valfri text till scriptet mottagare.php, det skickas även med en dold text som inte användaren ser.

image

 

ex ta emot information med post.

<html>
    <head>
        <title>Ta emot</title>
    </head>
    <body>
        <?php
            echo "<h3>Här kommer informationen från formuläret:</h3>";
            echo "<p>Textfältet: $_POST[text]</p>";
            echo "<p>Dold text: $_POST[dold]</p>";
        ?>
    </body>
</html>

Detta ger följande resultat i webb-läsaren

image 

 

GET

Då man använder “get” så skickas informationen direkt i länken och är alltså synlig för användaren, detta sätt används ofta av sökmotorer.

Om du tex gör en sökning “php” via google så kan du i länk-fältet i klartext se vilka sökord du använde i frågan.

http://www.google.se/search?hl=sv&source=hp&q=php&meta=&aq=f&oq=

Det du ska titta efter i just detta fall är parametern “q” som talar om för google att du sökt efter “php”.

q=php

 

Hur gör man nu för att skicka och ta emot information med hjälp av “get”??

Här finns i stort sätt alla möjligheter att använda standard funktioner såsom formulär, knappar, länkar…….

 

ex. vi skapar en sida med en knapp och en länk och skickar över lite info till mottagarsidan

<html>
    <head>
        <title>Skicka</title>
    </head>
    <body>
        <h3>Tryck på länken eller knappen</h3>
        <A HREF="mottagare2.php?text1=Text 1 från länken&text2=Text 2 från länken">Länk till mottagare2.php</A>
        <br />
        <br />
        <BUTTON onClick="location=’mottagare2.php?text1=Text 1 från knappen&text2=Text 2 från knappen’" >Knapp som skickar info till mottagare2.php</BUTTON>
    </body>
</html>

Detta visar fölande sida:

image

För att tala om för mottagaren var informationen börjar så anger man ett “?” för att sedan kunna skicka med flera parametrar så skiljer man på dessa med “&”.

<html>
    <head>
        <title>Ta emot</title>
    </head>
    <body>
        <?php
            echo "<h3>Här kommer informationen som skickades:</h3>";
            echo "<p>Text 1: $_GET[text1]</p>";
            echo "<p>Text 2: $_GET[text2]</p>";
        ?>
    </body>
</html>

Beroende på om du tryckt på länken eller knappen så visas följande sida:

image

image

Om du nu tittat på länken i webbläsaren så kommer du att se följande:

http://www.hogeran.se/test/mottagare2.php?text1=Text%201%20fr%E5n%20knappen&text2=Text%202%20fr%E5n%20knappen

Som du ser så ha vissa tecken bytts ut, detta för att länken ska fungera även om du inte har svenska tecken i din webbläsare.

Mellanslag = %20

å = %E5

 

SESSION

Man kan beskriva “session” som en serverplacerad variabel.

Vi börjar med att tala om för servern att vi vill använda session genom att initiera detta i vårt script, detta gör man genom att lägga till följande rad i början på scriptet.

<?php session_register("namn"); ?>

Tänk på att detta ska stå före <html> –taggen.

Denna session kommer sedan att vara aktiv tills du stänger din webbläsare eller tills variabeln varit inaktiv en längre tid (tiden för detta anger man i php-inställningarna på servern).

För att sedan använda din session skapar du variabler som du vill komma åt från dina andra sidor som ligger på samma server.

 

ex. sida som skapar variabler.

<?php session_start(); ?>
<html>
    <head>
        <title>Skicka</title>
    </head>
    <body>
        <?php
            $_SESSION[‘variabel1’] = "text i variabel 1";
            $_SESSION[‘variabel2’] = "text i variabel 2";
        ?>
        <h3>Denna sida skapar en session med variabler</h3>
        <br />
        <br />
        <BUTTON onClick="location=’mottagare3.php’" >Knapp som skickar dig till mottagare3.php</BUTTON>
        <br />
    </body>
</html>

 

image

 

ex. sida som läser från en session.

<?php session_start(); ?>
<html>
    <head>
        <title>Ta emot</title>
    </head>
    <body>
        <?php
            echo "<h3>Denna sida läser från en session:</h3>";
            echo "<p>Variabel 1: ". $_SESSION[‘variabel1’] ."</p>";
            echo "<p>Variabel 2: ". $_SESSION[‘variabel2’] ."</p>";

        ?>
    </body>
</html>

 

image

 

>> PHP-Skolan

Recent Entries

Kommentera