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
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
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"); }
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>
Du mangler vist en afsluttende } i din sidste else sætning.
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 :(
Din form action="<?php echo $actionfile; ?>" - hvilken side henviser den til? Går ud fra den defineres i include filen "functions.php"
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"); } ?>
du skrev jeg at jeg var nybegynder.. så jeg fatter ikke lige en ... af hvad du skrev der :) Hvad skal jeg fjerne? :)
:) Jeg har udkommenteret if sætningen med to // Det giver det samme resultat som at slette linien...
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 :)
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....
hvordan er det lige jeg giver jeg point :)? for det VIRKER! :)
Sweet...:) Her er et svar...
hmm hvordan giver jeg dig de sidste point?
Det behøves du ikke.. Jeg er fint tilfreds :) Det er bare fedt at se det virker....
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.