Gå til innhold

Ta imot session fra annet nettsted?


Anbefalte innlegg

Jeg har en side hvor jeg starter en session (feks $_SESSION['eks'] = "sant";).

Når jeg prøvde med: echo $_SESSION['eks']; på en side på en annen server fikk jeg ingen ting.

Gjør jeg det feil eller er det pga av sikkerhetsmessige årsaker?

Lenke til kommentar
Videoannonse
Annonse

Ja, kanskje det. Kan du plassere en kjeks i denne koden, så når man kommer tilbake til sida uten å logget ut? Eller modifisere den litt? Eller rett og slett gi et annet script som er sikrere osv :)

 

<?php
session_start();
?>
<html>
<head>
<title>Logg inn :)</title>
<style type="text/css">
body {
color: black;
font-size: 12pt;
font-family: tahoma,arial;
background-colr: white;
}
a:link, a:active, a:visited {
color: black;
font-size: 12pt;
font-family: tahoma,arial;
background-color: transparent;
}
a:hover {
color: red;
font-size: 12pt;
font-family: tahoma,arial;
background-color: transparent;
}
</style>
</head>
<body>
<?php

$db=mysql_connect("localhost", "brukernavn", "passord");
mysql_select_db("database", $db);


    $bruker = htmlentities($_POST['bruker']);
    $pass = htmlentities($_POST['pass']);
    
    $bruker = mysql_real_escape_string($bruker);
    $pass = mysql_real_escape_string($pass);

    $query = mysql_query("SELECT bruker, pass FROM tabell WHERE bruker = '$bruker' AND pass = '$pass'");

    
    if(mysql_num_rows($query) == 1 OR $_SESSION['online'] == true ) {
    $_SESSION['online'] = true;
    echo "
<meta http-equiv='refresh' content='1;url=leggtil.php'>
Velkommen $bruker!
          ";
    }

elseif(isset($_POST['navn']) && mysql_num_rows($query)== 0)
echo "
<span style='color: red;'>Feil brukernavn eller passord</span>
<br />
<form action='' method='post'>
<p>Brukernavn</p>
<input type='text' name='bruker' />
<p>Passord:</p>
<input type='password' name='pass' />
<input type='submit' value='Logg inn' />
</form>
";

    else {
   echo "
<br />
<form action='' method='post'>
<p>Brukernavn</p>
<input type='text' name='bruker' />
<p>Passord:</p>
<input type='password' name='pass' />
<input type='submit' value='Logg inn' />
</form>
    ";
    }

mysql_close($db);
?>

 

 

edit: glemte å ta bort brukernavn og passord fra koden :blush:

Endret av Andy-Pandy
Lenke til kommentar
Men kanskje hvis du bruker cookies derimot. Siden disse lagres på brukerens PC. :)

7727911[/snapback]

ev. bruke database-basert session.

 

Edit: Det går jo selvsagt ikke. Cookie kan jo aldri "overtas" av en annen server. Dvs. man kan jo forsåvidt det, men da må man sette en 3.parts cookie på forhånd, og det liker ikke endel nettlesere.

Endret av Ernie
Lenke til kommentar
Hva skal den andre webserveren gjøre med denne SESSIONID'en ?

7731682[/snapback]

Sålenge session-en er tilgjengelig fra den andre serveren, f.eks. ved å bruke en database for å lagre sessions, så ser jeg egentlig ganske mange muligheter...

Lenke til kommentar
Hva skal den andre webserveren gjøre med denne SESSIONID'en ?

7731682[/snapback]

Sålenge session-en er tilgjengelig fra den andre serveren, f.eks. ved å bruke en database for å lagre sessions, så ser jeg egentlig ganske mange muligheter...

7733086[/snapback]

 

Aha, men det var vel et ganske viktig tilleggspoeng for trådstarteren

Lenke til kommentar
Det var sikkert et godt poeng, men jeg skjønte ikke så veldig mye av det.

7741518[/snapback]

Sessions er ikke noen magiske greier. Når du bruker sessions, tildeles brukeren en unik session id. Når dette skjer opprettes en FLATFIL på serveren, som inneholder informasjonen du lagrer i sessionene. Det er alt som skjer.

Når du da prøver å bruke denne sessionen på en annen server, så har ikke denne andre serveren tilgang til FLATFILEN som ble opprettet av den første serveren, og resultatet vil ikke bli at det ikke fungerer.

 

Det jeg sa over, er at istedenfor at informasjonen lagres i FLATFILER, så lagres de i en DATABASE som kan nåes utenfor den lokale serveren. På denne måten får du tilgang til innholdet i sessionene uavhengig av hvilen serveren du egentlig jobber på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...