18. december 2004 - 22:11
Der er
15 kommentarer og 1 løsning
Hvad er da galt med mit loginscript?
hej kloge mennesker... Jeg har et login scrip... men det virker ikke som jeg tænkte det skulle: ..:: scriptet ::.. <?php if ($_POST("submit") != '') { $username = $_POST("brugernavn"); $password = $_POST("adgangskode"); if ($username == '' && $password == '' ){ $fejl = 1; } elseif ($username == "" ) { $fejl = 2; } elseif ($password == "" ) { $fejl = 3; } else { if ($username == "bruger" && $password == "adgang"){ Header("Location: ?mode=add"); } else { $fejl = 4; } } } else { ?> <div id="gallerier"><h1>Admin</h1> <?php if (fejl == 1){ print("<p></p>"); } elseif (fejl == 2){ print("<p>Du har ikke adgang til denne side!</p>"); } else { print("<p> </p>"); } ?> <p>For at kunne adminstrere denne hjemmeside skal du først logge ind!</p> <form action="?mode=admin" method="post"> <p>Brugernavn: <br /><input type="text" size="30" name="brugernavn" /></p> <p>Adgangskode: <br /><input type="password" size="30" name="adgangskode" /></p> <p><input type="submit" value=" Login " name="login"></p> </form> </div> <?php } ?>
Annonceindlæg fra Genetec
18. december 2004 - 22:17
#1
og hvad får du af fejl ? eller hvad er der galt ?
18. december 2004 - 22:19
#2
nåe ja... jamen jeg får fejl i 2. linie: if ($_POST("submit") != '') { Fatal error: Function name must be a string in og siden vises overhovedet ikke...
18. december 2004 - 22:31
#3
$_POST['submit'] ikke parenteser ;)
18. december 2004 - 22:31
#4
Og et svar ;)
18. december 2004 - 22:34
#5
hmm... nu viser den siden... men den gør ikke noget inde i funktionen!
18. december 2004 - 22:42
#6
Har du husket at ændre: $_POST("brugernavn") og $_POST("adgangskode") også? Desuden har du jo kaldt submitknappen for login, og ikke submit ;) Så ændr $_POST['submit'] til $_POST['login']
18. december 2004 - 23:01
#7
hmm... ja nu er det kommet lidt længere :) men når jeg bare skriver et eller andet så viser den ikke noget (mente den skulle vise fejlteksterne) men når jeg skriver de rigtige ord får jeg følgende fejl :Warning: Cannot modify header information - headers already sent by osv... linie 10: Header("Location: ?mode=add"); ..:: scriptet igen ::.. <?php if ($_POST['login'] != '') { $username = $_POST['brugernavn']; $password = $_POST['adgangskode']; if ($username == '' && $password == '' ){ $fejl = 1; } elseif ($username == "" ) { $fejl = 2; } elseif ($password == "" ) { $fejl = 3; } else { if ($username == "bruger" && $password == "adgang"){ Header("Location: ?mode=add"); } else { $fejl = 4; } } } else { ?> <div id="gallerier"><h1>Admin</h1> <?php if (fejl == 1){ print("<p></p>"); } elseif (fejl == 2){ print("<p>Du har ikke adgang til denne side!</p>"); } else { print("<p> </p>"); } ?> <p>For at kunne adminstrere denne hjemmeside skal du først logge ind!</p> <form action="?mode=admin" method="post"> <p>Brugernavn: <br /><input type="text" size="30" name="brugernavn" /></p> <p>Adgangskode: <br /><input type="password" size="30" name="adgangskode" /></p> <p><input type="submit" value=" Login " name="login"></p> </form> </div> <?php } ?>
18. december 2004 - 23:02
#8
Det er fordi du udskriver noget før din header() - Gør du det? Et enkelt mellemrum er nok til at få den i dammen ;)
18. december 2004 - 23:03
#9
Den vil heller aldrig vise fejlene, da du har den i en else... Ændr til: <?php if ($_POST['login'] != '') { $username = $_POST['brugernavn']; $password = $_POST['adgangskode']; if ($username == '' && $password == '' ){ $fejl = 1; } elseif ($username == "" ) { $fejl = 2; } elseif ($password == "" ) { $fejl = 3; } else { if ($username == "bruger" && $password == "adgang"){ Header("Location: ?mode=add"); exit; } else { $fejl = 4; } } ?> <div id="gallerier"><h1>Admin</h1> <?php if (fejl == 1){ print("<p></p>"); } elseif (fejl == 2){ print("<p>Du har ikke adgang til denne side!</p>"); } else { print("<p> </p>"); } ?> <p>For at kunne adminstrere denne hjemmeside skal du først logge ind!</p> <form action="?mode=admin" method="post"> <p>Brugernavn: <br /><input type="text" size="30" name="brugernavn" /></p> <p>Adgangskode: <br /><input type="password" size="30" name="adgangskode" /></p> <p><input type="submit" value=" Login " name="login"></p> </form> </div>
18. december 2004 - 23:04
#10
fatter intet 8| jeg er ikke med på hvor det mellem skal være... hele sciptet er include i min index
18. december 2004 - 23:26
#12
nederen... forstår det ikke... :(
18. december 2004 - 23:44
#13
jeg ved slet ikke hvad jeg gør... er det noget i denne stil? eller er jeg helt væk? <?php function callback() { // replace all the apples with oranges return (?mode=add); } ob_start("callback"); ?>
18. december 2004 - 23:49
#14
Derudover... skulle den så ikke vise fejlene alligevel? når man taster forkert?
19. december 2004 - 01:07
#15
Nej, nej, bare skriv ob_start() i starten af det første script - Se om det så ikke virker der, ellers tilføk ob_end_clean() før din header() Den ville ikke vise fejlene før, da de var inde i en if, og du skrev fejlen ud i if'ens else ;)
19. december 2004 - 13:08
#16
jamen nu ser det sku ud til at virke... og jeg har også løst problemet med redirect... så tak for hjælpen! :)
Vi tilbyder markedets bedste kurser inden for webudvikling