if($_SESSION["navn"] == Mikkel && $_SESSION["password"] == mikkel) { echo "Velkommen tilbage {$_SESSION["navn"]}"; } else { echo "Brugernavn eller adgangskode er forkert"; }
?>
</div>
Det PHP script includer jeg så i side2.php, som formular dokumentet har 'action' på. Og det virker perfekt på side 2. Men så snart jeg går fra side 2 til side 3 skriver den bare adgangskode eller brugernavn er forkert, fordi den slet ikke har fat i inputtet mere. Der er præcis det samme på side2 og side3 og begge har:
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du bliver lige nød til at forklare mig nogle ting i den kode: Du har i toppen af scriptet skrevet:
header("Location:side2.php"); exit();
Hvad sker der så når jeg gerne vil bruge den værdi som brugeren har indtastet i navn, på en anden side end side 2?, skal jeg så skrive header("Location:side3.php"); i stedet? Og hvad er det egentligt scriptet helt præcist gør?
selvf. Selve formen submitter til filen som viser formen, og sender derefter brugeren videre, enten til sig selv igen, eller, hvis navn og password er ok, til side2.php
if($_POST["navn"] == "mikkel" && $_POST["password"] == "mikkel") { //tjekker hvad brugeren har indtastet $_SESSION["navn"] = $_POST["navn"]; // Det var ok, så sæt en session header("Location:side2.php"); //send bruger videre til side2.php exit(); // Stop script }else{ // Forkert navn eller pass $_SESSION["fejl"] = "Forkert navn eller password"; // sæt en session til visning af fejl header("Location:". $_SERVER["PHP_SELF"] .""); // send tilbage til selvsamme side exit(); // stop script } } ?> <html><head></head> <body> <div id="navnogalder">
navn: <input type="text" name="navn" value=""><p> password: <input type="password" name="password" value="" size="10"> <p> <input type="submit" value="Login"> </form> <?php if(isset($_SESSION["fejl"])) { // Er en session sat, så vis indholdet, og slet den, unset() echo $_SESSION["fejl"]; unset($_SESSION["fejl"]); } ?> </div> </body></html>
side2.php:
<?php session_start(); if(!isset($_SESSION["navn"])) { // hvis ikke session er sat, send bruger til side1.php header("Location:side1.php"); exit(); }
echo"Hej ". $_SESSION["navn"]; Output indhold af session navn
?>
Dette,
<?php session_start(); if(!isset($_SESSION["navn"])) { // hvis ikke session er sat, send bruger til side1.php header("Location:side1.php"); exit(); } ?>
kan du jo så med fordel lave til en fil du includer på alle sider hvor man skal være logget ind for at se siden.
jeg forsår stadigvæk ikke helt hvad det er jeg skal include på mine andre sider, for at den husker at man er logget ind. Kan du give et eksempel på hvordan man kan lave en fil, hvor man skal være logget ind for at kunne se den?
<?php session_start(); if(!isset($_SESSION["navn"])) { // hvis ikke session er sat, send bruger til side1.php header("Location:side1.php"); exit(); } ?>
De sider du så ønsker at beskytte, starter du alle med: <?php include("tjek.php"); ?> resten af din side.........................
tjek.php tjekker så blot om en session "navn" er sat, og er den ikke det, så sendes man til side1.php med login formen.
Husk, at når du bruger en header() så skal den komme før du laver noget output, ellers får du en fejl.
Ok. Hvad så hvis jeg har en side, hvor man på forsiden skal skrive sit navn, og jeg derefter vil have mulighed for at bruge navnet på andre sider, hvad gør jeg så? Tror det er lidt mere simpelt, så kunne være jeg kunne forstå det 100% så. I øvrigt mange tak for de andre svar.
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.