Just nu i M3-nätverket
Jump to content

Session - lösenord php funkar ej


matta14

Recommended Posts

Hej,

jag har gjort en webbsida programmerad i php.

 

Den allra första, indexsidan, refererar till en sida login.php.

Här anger användare namn & lösenord. Dessa placeras i variabler, vilka valideras. Om det är fel visas ett felmeddelande och rätt så ska man routas till en sida main.php.

 

Detta fungerar jättebra när jag kör lokalt (localhost) men när jag lägger upp det på mitt webbhotell så visas inte sidan main.php. Valideringen funkar - för anger man fel så visas felmeddelandet.

 

Vad kan detta bero på?

 

Koden är byggd enligt denna princip: http://www.webdesignskolan.se/php/login_basic/login_basic.html

 

Jättetacksam för hjälp!

 

 

/matta14

 

Link to comment
Share on other sites

Felmeddelanden?

 

Kanske du kan visa koden Du gjort om det avviker!?

 

[inlägget ändrat 2007-10-17 17:27:51 av Micke_skane]

Link to comment
Share on other sites

Det kommer tyvärr inget felmeddelande, utan det enda som visas där main.php ska visas är en blank sida.

Dvs, inget kontent laddas.

 

På loginsidan finns 2 fält som fylls i och som fyller variablerna. Detta funkar.

 

Loginsidans kod:

<?php

// startar sessionen

session_start();

 

// ange ditt användarnamn och lösenord i variablerna

$anvandarID = "xxx";

$losenord = "xxx";

 

if (isset($_POST["anvandarID"]) && isset($_POST["losenord"])) {

 

// kontrollerar om användarnamn och lösenord är rätt

if ($_POST["anvandarID"] === $anvandarID && $_POST["losenord"] === $losenord)

{

 

// ange den session som lagrar rätt inloggningsuppgifter

$_SESSION["inloggning"] = true;

 

// efter rätt inloggning förflyttas användaren till den skyddade sidan

header("Location: ../main.php");

 

exit;

}

// om användarnamn och lösenord är fel lagras meddelandetexten i variabeln

else {$felmeddelande = "Tyvärr - Du har angivit fel användarnamn eller lösenord.";}

}

?>

 

Valideringen, t.ex på main.php

 

<?php

// startar sessionen

session_start();

 

// om ingen session finns med rätt användarnamn och lösenord visas inloggningssidan igen

if (!isset($_SESSION["inloggning"]) || $_SESSION["inloggning"] !== true) {

header("Location: Login/login.php");

exit;

}

// om sessionen finns är inloggningen korrekt och då visas innehållet nedan:

?>

 

 

 

 

Link to comment
Share on other sites

Har du testat att skriva ut ett meddelande om man nu lyckats logga in?

Då är du ju säker på att if-satsen fungerar fullt ut.

 

Vad händer om du lägger main-php i samma mapp?

header("Location:main.php");

 

Står där inte i adressfältet vilken sida som visas?

Det är kanske main-php men att där inte syns något på den sidan, då är ju felet där istället.

 

[inlägget ändrat 2007-10-19 10:40:25 av Micke_skane]

Link to comment
Share on other sites

Hej igen, nu har jag testat lite enligt dina förslag.

Precis som jag gör med felmeddelandet vid fel inlogg så har jag triggat ett meddelande vid korrekt för att testa if-satsen. Det funkar.

 

Sen testade jag att lägga main.php i samma mapp. Det funkar lokalt men ej på servern.

 

Dvs, jag testade fram och tillbaka baserat på följande kod:

$_SESSION["inloggning"] = true;

// efter rätt inloggning förflyttas användaren till den skyddade sidan
header("Location: main.php");
    {$felmeddelande = "Korrekt.";}

//exit;

 

Dvs, labbade lite med exit, med location mm.

 

Summering:

Att skriva ut "Korrekt" funkar både lokalt och på servern (inaktiverar "header"-koden med //)

När jag aktiverar header-koden så funkar det lokalt men ej på servern.

Då visas ingen sida alls - dvs sidan login.php laddas men med "korrekt" skrivet.

Det verkar alltså som att

header("Location: main.php");

inte fungerar på webbservern.

 

Kommentarer..?

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...