Avatar billede mette_hansen Nybegynder
05. maj 2004 - 10:30 Der er 14 kommentarer og
1 løsning

Problemer med login.php fil

Jeg er ny med hensyn til php. Jeg har, ved hjælp af af downloade et tutorial, lavet et lille loginsystem som efter lang tid virker. Når man logger ind kommer der en besked frem hvor der står hej (username).
Det er meningen at man skal logge ind, og hvis man har skrevet username og password rigtigt skal man komme videre til en anden side (har ikke lavet siden endnu).
Mit problem er så hvordan jeg skal definere det i min login fil. Login filen ser således ud:

<?php
include("functions.php");
cookie_user();
?>
<html><head><title><?php echo basename($_SERVER["PHP_SELF"]); ?></title>
</head>
<body>
<?php
if(!isset($_SESSION["user"]))
    {
?>
<form action="<?php echo $actionfile; ?>" method="post">
<input type="hidden" name="login" value="true">
Username:<br>
<input type="text" name="username"><br>
Password:<br>
<input type="password" name="password"><br>
<input type="checkbox" name="husk"> husk mig<br>
<input type="submit" value="Log ind">
</form>
<?php

vis_besked();

    }else{
if(isset($_SESSION["user"]["husk"]))
    {
echo"<a href=\"". $actionfile ."?dellogin=true\">Slet autologin</a>";
    }else{
echo"<a href=\"". $actionfile ."?logud=true\">Log ud</a>";
    }

echo "<p>\nHej ". $_SESSION["user"]["username"];
}
?>

<h2 align="center"><b><?php echo basename($_SERVER["PHP_SELF"]); ?></b></h2>
<a href="side2.php">side 2</a>

</body></html>

Jeg mener det er et svært spørgsmål så jeg gir 80 point til den der hjælper mig helt igennem
Avatar billede andersdp Nybegynder
05. maj 2004 - 10:45 #1
Jeg bruger en header:Location til at sende brugeren videre til den næste side når brugernavn og password er godkendt.

Dvs. at du smider dette ind i din if-else sætning:
    header("Location: filnavn.php");

Du kunne smide det ind istedet for:
}
echo "<p>\nHej ". $_SESSION["user"]["username"];
}
så det bliver:
}
header("Location: filnavn.php");
}
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 10:48 #2
jeg prøver lige :)
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 10:51 #3
nu skriver den at der er en fejl

Parse error: parse error, unexpected $ in /home/sv_intermetdk/login/login.php on line 33

Siden ser nu således ud:

<?php
include("functions.php");
cookie_user();
?>
<html><head><title><?php echo basename($_SERVER["PHP_SELF"]); ?></title>
</head>
<body>
<?php
if(!isset($_SESSION["user"]))
    {
?>
<form action="<?php echo $actionfile; ?>" method="post">
<input type="hidden" name="login" value="true">
Username:<br>
<input type="text" name="username"><br>
Password:<br>
<input type="password" name="password"><br>
<input type="checkbox" name="husk"> husk mig<br>
<input type="submit" value="Log ind">
</form>
<?php

vis_besked();

    }else{
if(isset($_SESSION["user"]["husk"]))
    header("Location: sidst.php");
?>

<h2 align="center"><b><?php echo basename($_SERVER["PHP_SELF"]); ?></b></h2>
<a href="side2.php">side 2</a>

</body></html>
Avatar billede andersdp Nybegynder
05. maj 2004 - 10:56 #4
Du mangler vist en afsluttende } i din sidste else sætning.
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 11:01 #5
Hej.. nu virker det.. Men den går ikke hen til nogen side..
Den logger bare ind.. der hvor der stod hej (username før) står der ingenting nu :(
Avatar billede andersdp Nybegynder
05. maj 2004 - 11:10 #6
Din form action="<?php echo $actionfile; ?>" - hvilken side henviser den til? Går ud fra den defineres i include filen "functions.php"
Avatar billede andersdp Nybegynder
05. maj 2004 - 11:17 #7
Du skal også fjerne den nederste if sætning. Den else der kommer udløses jo kun hvis $_SESSION['user'] er sat...

vis_besked();
}
else
{
//if(isset($_SESSION["user"]["husk"]))
header("Location: sidst.php");
}
?>
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 11:26 #8
du skrev jeg at jeg var nybegynder.. så jeg fatter ikke lige en ... af hvad du skrev der :)
Hvad skal jeg fjerne? :)
Avatar billede andersdp Nybegynder
05. maj 2004 - 11:30 #9
:)
Jeg har udkommenteret if sætningen med to //
Det giver det samme resultat som at slette linien...
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 11:35 #10
ny fejl:
Warning: Cannot modify header information - headers already sent by (output started at /home/sv_intermetdk/login/login.php:5) in /home/sv_intermetdk/login/login.php on line 28

filen ser sådan ud:
<?php
include("functions.php");
cookie_user();
?>
<html><head><title><?php echo basename($_SERVER["PHP_SELF"]); ?></title>
</head>
<body>
<?php
if(!isset($_SESSION["user"]))
    {
?>
<form action="<?php echo $actionfile; ?>" method="post">
<input type="hidden" name="login" value="true">
Username:<br>
<input type="text" name="username"><br>
Password:<br>
<input type="password" name="password"><br>
<input type="checkbox" name="husk"> husk mig<br>
<input type="submit" value="Log ind">
</form>
<?php

vis_besked();
}
else
{
//if(isset($_SESSION["user"]["husk"]))
header("Location: sidst.php");
}
?>

<h2 align="center"><b><?php echo basename($_SERVER["PHP_SELF"]); ?></b></h2>
<a href="side2.php">side 2</a>

</body></html>

sætter point op til 120 :)
Avatar billede andersdp Nybegynder
05. maj 2004 - 11:39 #11
Du placerer denne linie helt øverst i filen:
<?php ob_start();?>

Og denne linie helt nederst i din fil:
<?php ob_end_flush();?>

Det skulle fixe header problemet....
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 11:43 #12
hvordan er det lige jeg giver jeg point :)?
for det VIRKER! :)
Avatar billede andersdp Nybegynder
05. maj 2004 - 11:45 #13
Sweet...:)
Her er et svar...
Avatar billede mette_hansen Nybegynder
05. maj 2004 - 11:49 #14
hmm hvordan giver jeg dig de sidste point?
Avatar billede andersdp Nybegynder
05. maj 2004 - 11:50 #15
Det behøves du ikke.. Jeg er fint tilfreds :)
Det er bare fedt at se det virker....
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Test Architect - Projects

Udviklings- og Forenklingsstyrelsen

ITSM-koordinator

SporingsGruppen ApS

Frontend-udvikler

Sindico Group A/S

Business Central Specialist