Avatar billede cskott Nybegynder
04. november 2009 - 19:30 Der er 9 kommentarer og
1 løsning

Login script virker ikke mere

Hej,

Hvad er der galt med dette login script?
Det har virket men nu virker det ikke mere.

Hvis man taster bruger1 og 1234 skulle den gå til hovedmenu.php men den går kun til logmigind.php

logmigind.php:
<?PHP
if((@$BeenSubmitted) && ($UserName == "bruger1") 
    && ($Passw == "1234")){
    setcookie("UserName", "$UserName", time() + 3600);
    setcookie("Passw", "$Passw", time() + 3600);
        echo "<META HTTP-EQUIV='refresh'
    content='0;URL=hovedmenu.php'>";
   
} else {

?> 
<form action="<?=$PHP_SELF?>" method="post">
Brugernavn: <input type="text" name="UserName" value="" Kodeord:<input type="password" name="Passw" value="" size="20">
<input type="submit" value="OK" name="BeenSubmitted">



hovedmenu.php:
<?PHP
if((@$UserName == "bruger1") && (@$Passw == "1234")){
?>

<?PHP 
} else {
    header("Location: logmigind.php");
exit;
}
?>
Avatar billede intenz Novice
04. november 2009 - 19:43 #1
Du skal bruge $_POST til at hente dine variabler ud fra formularen, i stedet for at kalde variablerne direkte. Herudover skal du bruger $_SERVER til din PHP_SELF og $_COOKIE til din cookie parametre.
Mon ikke det er det, udover det kan det være den browser du bruger ikke kan benytte cookies.

<?PHP
if((@$_POST['BeenSubmitted']) && ($_POST['UserName'] == "bruger1") 
    && ($_POSTPassw'] == "1234")){
    setcookie("UserName", $_POST['UserName'], time() + 3600);
    setcookie("Passw", "$_POST['Passw']", time() + 3600);
        echo "<META HTTP-EQUIV='refresh'
    content='0;URL=hovedmenu.php'>";
   
} else {

?> 
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Brugernavn: <input type="text" name="UserName" value="" Kodeord:<input type="password" name="Passw" value="" size="20">
<input type="submit" value="OK" name="BeenSubmitted">



hovedmenu.php:
<?PHP
if((@$_COOKIE['UserName'] == "bruger1") && (@$_COOKIE['Passw'] == "1234")){
?>

<?PHP 
} else {
    header("Location: logmigind.php");
exit;
}
?>
Avatar billede cskott Nybegynder
04. november 2009 - 20:14 #2
Hmm.. jeg har erstattet min kode med det du har skrevet men nu skriver den at den ikke kan finde webstedet..
Avatar billede intenz Novice
04. november 2009 - 20:17 #3
Hmm, det kan være PHP_SELF koden. Prøv at ændre det til:
<form action="logmigind.php" method="post">
Avatar billede cskott Nybegynder
04. november 2009 - 20:28 #4
Jeg har skrevet
<form action="logmigind.php" method="post">

Men det virker stadig ikke..
Avatar billede intenz Novice
04. november 2009 - 21:05 #5
Så må du lige hjælpe lidt selv... de der "det virker ikke" beskeder kan man ikke bruge til noget. Den skal selvfølgelig pege på logmigind.php filen. Også hvis den ligger i en anden mappe f.eks.
Avatar billede cskott Nybegynder
04. november 2009 - 21:19 #6
Jeg har gjort det sådan her:

<?PHP
if((@$_POST['BeenSubmitted']) && ($_POST['UserName'] == "bruger1") 
    && ($_POSTPassw'] == "1234")){
    setcookie("UserName", $_POST['UserName'], time() + 3600);
    setcookie("Passw", "$_POST['Passw']", time() + 3600);
        echo "<META HTTP-EQUIV='refresh'
    content='0;URL=hovedmenu.php'>";
   
} else {

?> 
<form action="logmigind.php" method="post">
Brugernavn: <input type="text" name="UserName" value="" Kodeord:<input type="password" name="Passw" value="" size="20">
<input type="submit" value="OK" name="BeenSubmitted">
Avatar billede intenz Novice
04. november 2009 - 21:32 #7
Men du siger, at du får en "siden er ikke fundet" fejl.

Den side der står i formularen (logmigind.php) skal pege på den fil hvor selv koden også står i. Hvis den ikke kan finde den sidste når du logger ind er det fordi filnavn eller stien til den er forkert.
Jeg ved ikke hvor du lagt filen, så det må du selv kunne ordne.
Avatar billede cskott Nybegynder
04. november 2009 - 21:44 #8
Jamen de står i samme fil..
Nedenstående kode står i logmigind.php

Er der noget jeg har misforstået? :-)

<?PHP
if((@$_POST['BeenSubmitted']) && ($_POST['UserName'] == "bruger1") 
    && ($_POSTPassw'] == "1234")){
    setcookie("UserName", $_POST['UserName'], time() + 3600);
    setcookie("Passw", "$_POST['Passw']", time() + 3600);
        echo "<META HTTP-EQUIV='refresh'
    content='0;URL=hovedmenu.php'>";
   
} else {

?> 
<form action="logmigind.php" method="post">
Brugernavn: <input type="text" name="UserName" value="" Kodeord:<input type="password" name="Passw" value="" size="20">
<input type="submit" value="OK" name="BeenSubmitted">
Avatar billede cskott Nybegynder
04. november 2009 - 21:57 #9
Nu har jeg lavet følgende:

Nu kan den åbne logmigind.php og den går også videre til kode.php men der går den så i fejl kan ikke vise siden..

logmigind.php:
<form action="kode.php" method="post">
Brugernavn:<input type="text" name="UserName" value="" size="20">
Kodeord:<input type="password" name="Passw" value="" size="20">
<input type="submit" value="OK" name="BeenSubmitted">

kode.php
<?PHP
if((@$_POST['BeenSubmitted']) && ($_POST['UserName'] == "bruger1") 
    && ($_POSTPassw'] == "1234")){
    setcookie("UserName", $_POST['UserName'], time() + 3600);
    setcookie("Passw", "$_POST['Passw']", time() + 3600);
        echo "<META HTTP-EQUIV='refresh'
    content='0;URL=hovedmenu.php'>";
   
} else {

?> 

hovedmenu.php
<?PHP
if((@$_COOKIE['UserName'] == "bruger1") && (@$_COOKIE['Passw'] == "1234")){
?>

<?PHP 
} else {
    header("Location: logmigind.php");
exit;
}
?>
Avatar billede cskott Nybegynder
06. november 2009 - 14:24 #10
Lukker spørgsmål.

Bruger det her istedet: http://www.phpeasystep.com/phptu/6.html
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester