Avatar billede 20 Nybegynder
18. november 2004 - 23:21 Der er 12 kommentarer og
1 løsning

Fejl ved php kode (loginsystem)

Hvorfor siger den hele tiden "Forkerte dataer" selv om jeg har skrevet det rigtige?

Login siden:
2 input med brugernavn i den ene, og den anden hedder kode
submit knappen hedder login

Der hvor den tjekker ser sådan herud
<?
session_start();
include "db.php";
?>
<?
if(isset($_POST[brugernavn])) {
include("db.php");
  $sql = mysql_query("SELECT * FROM wgbrugere WHERE brugernavn='$_POST[brugernavn]' AND kodeord='$_POST[kode]'") or die(mysql_error());
  $num = mysql_num_rows($sql);
  $row = mysql_fetch_array($sql);

  if($num == 0) {
    echo "<font color=#5C0D0D size=2 face=Verdana>Forkerte dataer!<br />";
  } else {
?>

Logget ind, vises her.

<?
    mysql_query("UPDATE wgbrugere SET online='ja' WHERE brugernavn='$row[brugernavn]'") or die(mysql_error());
    $_SESSION[brugernavn] = $row[brugernavn];
    exit;
  }
}
?><
Avatar billede 13thsky Nybegynder
18. november 2004 - 23:24 #1
if(isset($_POST[brugernavn]))  -->  if(isset($_POST['brugernavn']))

- maybe

/13
Avatar billede 13thsky Nybegynder
18. november 2004 - 23:25 #2
ja, og nok også i sql-forsp. linien...

/13
Avatar billede 20 Nybegynder
18. november 2004 - 23:39 #3
virker ikke.
Avatar billede michael_stim Ekspert
18. november 2004 - 23:53 #4
if(isset($_POST['login'])) {
Avatar billede 13thsky Nybegynder
18. november 2004 - 23:53 #5
kan du ikke prøve at printe variablerne ud inden if(isset....

/13
Avatar billede Slettet bruger
19. november 2004 - 06:42 #6
"Forkerte dataer" bliver udskrevet INDE i den if, som tester på $_POST, så det er altså ikke den if, det går galt.

Jeg går ud fra, at der ikke kan være flere brugere med samme brugernavn, så prøv at lave den anden if om til:

if($num != 1) {
Avatar billede 20 Nybegynder
19. november 2004 - 13:20 #7
Fik lavet, det var pga. jeg havde sat start_side.php ind i en iframe, fra en ?side= af. ;) men læg da svar for jeres indsats!
Avatar billede michael_stim Ekspert
19. november 2004 - 13:21 #8
Skal ikke have nogen, da du selv klarede problemet.
Avatar billede 20 Nybegynder
19. november 2004 - 13:21 #9
Men nu ser min index.php sådan her ud:

  <?php
              if ($  == "login_tjek"){
              ?>
<?
session_start();
include "db.php";
?>
<?
if(isset($_POST['brugernavn'])) {
  $sql = mysql_query("SELECT * FROM wgbrugere WHERE brugernavn='$_POST[brugernavn]' AND kodeord='$_POST[kode]'") or die(mysql_error());
  $num = mysql_num_rows($sql);
  $row = mysql_fetch_array($sql);

if($num != 1) {
    echo "<font color=#5C0D0D size=2 face=Verdana>Forkerte dataer!<br />";
  } else {
?><b><font color="#774012" size="6" face="Tahoma">
              Startside</font></b><br /><hr>
<a href="butikker.php">font color="#5C0D0D" size="2" face="Verdana">Butikken</font></a><hr>
<font color="#5C0D0D" size="2" face="Verdana"><?
    mysql_query("UPDATE wgbrugere SET online='ja' WHERE brugernavn='$row[brugernavn]'") or die(mysql_error());
    $_SESSION[brugernavn] = $row[brugernavn];
    exit;
  }
  }
?>


                        <?php } ?>


Og den udskriver:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /usr/home/web/web11111/site/siet/index.php:4) in /usr/home/web/web11111/site/siet/index.php on line 456
Avatar billede schaefner Juniormester
19. november 2004 - 13:23 #10
if ($  == "login_tjek"){

$ ?? - Hvilken variabel tester du her?
Avatar billede 20 Nybegynder
19. november 2004 - 13:23 #11
Satte bare session_start() overst..

Min variabel er ALt + 0160 som er usynligt :D
Avatar billede 20 Nybegynder
19. november 2004 - 13:37 #12
den vil ikke vise menuen i højre side, når den udskriver den? men sagtens med alle andre sider.. hvorfor? :-s
Avatar billede 20 Nybegynder
21. november 2004 - 15:50 #13
lukker, har fikset!
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