Avatar billede komet Nybegynder
25. januar 2005 - 10:00 Der er 36 kommentarer og
1 løsning

Få PHP til og hente en kode ud af en MySQL database

Jeg er nybegynder i PHP, jeg skal have lavet noget hvor jeg skal ha PHP til og tjekke om det er den rigtige adgangskode man skriver. Altså på siden skal der være et sted hvor man kan taste sin adgangskode ind, hvis den er rigtig bliver man sendt videre til den rigtige side. Hvis ikke bliver sendt til en side som siger adgangskoden er forkert. Og den rigtige adgangskode ligger så i min Mysql database
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 10:10 #1
prøv det her:
$result = mysql_query (SELECT password FROM tabel)
while ($row=mysql_fetch_row($result)) {
  if ($row['password']==kodeord) {
    rigtigt kodeord
  }
  else {
    prøv igen din klovn
  }
}
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 10:16 #2
mht at gå til forskellige sider vil jeg foreslå at du kigger på http://dk.php.net/header
Avatar billede komet Nybegynder
25. januar 2005 - 10:51 #3
Øhh kan overhovedet ikke få din kode til og virke... Får fejl allerede i din den første linje, $result = mysql_query (SELECT password FROM admin. (Min tabel hedder admin)
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 10:52 #4
hvad for du af fejl?
Avatar billede Slettet bruger
25. januar 2005 - 10:52 #5
$result = mysql_query (SELECT password FROM tabel)

skal være

$result = mysql_query ('SELECT password FROM tabel');
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 10:56 #6
det er også rigtigt der mangler de 2 ' og det ;
det kan godt gå lidt for stærk til tider :D
Avatar billede komet Nybegynder
25. januar 2005 - 11:47 #7
Jeg prøver lige og poste hele koden. Jeg kan ikke få det til og virke.

<?php
mysql_connect ("localhost", "root", "kommet");
mysql_select_db ("admin");
$result = mysql_query ('SELECT password FROM admin');
while ($row=mysql_fetch_row($result)) {
  if ($row['password']==kodeord) {
echo "rigtigt kodeord";
}
  else {
echo    "prøv igen din klovn";
  }
}
?>
<html>
<head>
<body>
<br>
<br>
<br>
<h2 align="center">Administrator Password</h2>
</TABLE>
<TABLE align=center>
<TR>
    <TD><form action="admin.php method="post">
        <input type="password" name="password" size="10" /><br />
        <input type="submit" name="submitknap" value="Log ind"</>
        </form>
    </TD>   
</TR>
</TABLE>
<br>
<br>
<br>
<a href="index.php">Tilbage</a>
</body>
</head>
</html>
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 12:05 #8
hvad kommer der af fejlmeddelelser?
hvordan ser din admin tabel ud?
prøv at bruge det her i stedet:
if (isset($_POST['password'])) {
  $result = mysql_query ('SELECT password FROM admin');
  while ($row=mysql_fetch_row($result)) {
    if ($row['password']==$_POST['password']) {
      echo "rigtigt kodeord";
    }
    else {
      echo    "prøv igen din klovn";
    }
  }
}
Avatar billede komet Nybegynder
25. januar 2005 - 12:16 #9
Så nu tror jeg PHP delen virker:) Men jeg skal have sat det ind i den HTML formular. Ved du hvordan jeg gør det???
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 12:18 #10
du skal ændre de to echo du har med noget header (location: ) som jeg ikke kan huske så prøv at kigge på det link jeg gav dig. Hvis det der står på det link er meget forvirrende så kan jeg godt se om jeg kan få det til at virke.
Avatar billede komet Nybegynder
25. januar 2005 - 12:33 #11
Den skriver bare nu, hvor jeg indtaster adgangskoden, You don't have permission to access /login/="" on this server. Også selvom jeg indtaster den rigtige adgangskode
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 12:40 #12
du mangler vidst en " efter action="admin.php i din <form>
er det et linie nummer på den fejl? hvis der er hvad står der så der?
Avatar billede komet Nybegynder
25. januar 2005 - 12:55 #13
Min kode ser sådan ud nu...

<?php
mysql_connect ("localhost", "root", "kommet");
mysql_select_db ("admin");
  if (isset($_POST['password'])) {
  $result = mysql_query ('SELECT password FROM admin');
  while ($row=mysql_fetch_row($result)) {
    if ($row['password']==$_POST['password']) {
      echo "rigtigt kodeord";
    }
    else {
      echo    "prøv igen din klovn";
    }
  }
}
?>
<html>
<head>
<body>
<br>
<br>
<br>
<h2 align="center">Administrator Password</h2>
</TABLE>
<TABLE align=center>
<TR>
    <TD><form action==="<?=$_SERVER[REQUEST_URI];?>"  method="post">
        <input type="password" name="password" size="10" /><br />
        <input type="submit" name="submitknap" value="Log ind"</>
        </form>
    </TD>   
</TR>
</TABLE>
<br>
<br>
<br>
<a href="index.php">Tilbage</a>
</body>
</head>
</html>

Burde den ikke skrive "rigtigt kodeord" hvis koden var rigtig. Og "prøv igen dit fjols" hvis den var forkert??? Fordi det gør den nemlig ikke nu, den skriver bare FORBIDDEN
You don't have permission to access /login/="" on this server
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 13:02 #14
øhh det kan være pga den action du har skrevet.
prøv med action="<?php $_SERVER['PHP_SELF'] ?>" i stedet for.
Avatar billede komet Nybegynder
25. januar 2005 - 13:07 #15
Det gør overhovedet ingen forskel. Men prøver lige og se om jeg ikke kan finde noget et sted.
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 13:12 #16
står der noget linienummer? jeg kan ikke umiddelbart se hvor der er noget med /login/ i den kode så jeg er ret lost
Avatar billede komet Nybegynder
25. januar 2005 - 13:15 #17
Øhh nej tror ikke der står noget nummmer. Jeg får jo ikke nogen general fejl. Øhh login??? Hvor skal der stå noget med login henne?
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 13:15 #18
kan du evt. give den fulde sti til din php fil?
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 13:16 #19
det skal der ikke stå noget om nogen steder men det er det fejlen siger du ikke har adgang til
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 13:28 #20
kommer fejlen før eller efter du har indtastet password og trykket på knappen eller starter den med den fejl?
Avatar billede komet Nybegynder
25. januar 2005 - 13:33 #21
Nej nej siden ser ud som den skal. Men når jeg indtaster adgangskoden og trykker ok, kommer jeg videre til en anden side som siger siden er FORBIDDEN. Men når jeg trykker den rigtige adgangskode, skal den vel skrive rigtigt kodeord. Sådan som min PHP kode ser ud lige nu???
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 13:41 #22
som din kode ser ud både den skrive rigtigt kodeord hvis du har tastet det rigtigt ind ellers burde den skrive prøv igen din klovn.
har du krypteret dit kodeord i tabellen?
Avatar billede komet Nybegynder
25. januar 2005 - 14:09 #23
Min database hedder admin, min tabel hedder pass og min row hedder password. Og nej den er ikke krypteret. Koden ser således ud.

<?php
mysql_connect ("localhost", "root", "kommet");
mysql_select_db ("admin");
  if (isset($_POST['password'])) {
  $result = mysql_query ('SELECT password FROM pass');
  while ($row=mysql_fetch_row($result)) {
    if ($row['password']==$_POST['password']) {
      echo "rigtigt kodeord";
    }
    else {
      echo    "prøv igen din klovn";
    }
  }
}
?>
<html>
<head>
<body>
<br>
<br>
<br>
<h2 align="center">Administrator Password</h2>
</TABLE>
<TABLE align=center>
<TR>
    <TD><form action======"<?php $_SERVER['PHP_SELF'] ?>"  method="post">
        <input type="password" name="password" size="10" /><br />
        <input type="submit" name="submitknap" value="Log ind"</>
        </form>
    </TD>   
</TR>
</TABLE>
<br>
<br>
<br>
<a href="index.php">Tilbage</a>
</body>
</head>
</html>

Håber virkelig du kan hjælpe mig, for jeg sidder virkelig fast lige nu
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 14:19 #24
ikke fordi jeg tror det er det der er galt men hvorfor har du så mange = efter action?
der mangler vidst ; efter $_SERVER['PHP_SELF']
ellers så prøv at skrive navnet på din fil i stedet for <?php $_SERVER['PHP_SELF']; ?>
har du evt. mulighed for at give et link så jeg kan se det?
Avatar billede komet Nybegynder
25. januar 2005 - 14:37 #25
Så nu sker der noget:) Når jeg skriver en adgangskode, skriver den oppe i venstre hjørne "prøv igen din klovn" Men skriver jeg den rigtige adgangskode, skriver den det samme
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 14:40 #26
prøv at sætte en exit; ind efter echo "rigtigt kodeord";
Avatar billede komet Nybegynder
25. januar 2005 - 14:50 #27
Tror du ikke det er Databasen der er problemet??? Altså den ikke hiver noget kodeord ud af den?
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 14:55 #28
muligvis. prøv at skrive det her ind hvor der står prøv igen din klovn
echo "".$row['password']."";
Avatar billede komet Nybegynder
25. januar 2005 - 15:13 #29
Så sker der ingenting overhovedet, når jeg sætter det ind. Det er som om den ikke kigger i databasen efter det rigtige kodeord
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 15:18 #30
OK så laver vi det lidt om.
prøv det her i stedet for:
if (isset($_POST['password'])) {
  $result = mysql_query ('SELECT password FROM pass WHERE password == $_POST['password']');
    if($result) {
      echo "rigtigt kodeord";
    }
    else {
      echo "prøv igen din klovn";
    }
  }
}
Avatar billede komet Nybegynder
25. januar 2005 - 15:26 #31
Det hjælper ikke nu får jeg fejl i denne linje $result = mysql_query ('SELECT password FROM pass WHERE password == $_POST['password']');
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 15:33 #32
hvilken fejl?
Avatar billede komet Nybegynder
25. januar 2005 - 15:33 #33
Parse error: parse error in c:\programmer\apache group\apache\htdocs\login\pass.php on line 5
Avatar billede sw_red_6 Nybegynder
25. januar 2005 - 15:36 #34
hmmm, prøv lige at sætte det her ind en gang:
if (isset($_POST['password'])) {
  $result = mysql_query ("SELECT * FROM pass");
  while ($row=mysql_fetch_row('$result')) {
    if ($row['password']==$_POST['password']) {
      echo "rigtigt kodeord";
    }
    else {
      echo    "prøv igen din klovn";
    }
  }
}
Avatar billede hmortensen Nybegynder
25. januar 2005 - 15:47 #35
Prøv sådan her:
<?php
mysql_connect("localhost", "root", "kommet");
mysql_select_db("admin");

if (isset($_POST['passwd']))
{
    $result = mysql_result(mysql_query("SELECT COUNT(*) FROM pass WHERE password = '".$_POST['passwd']."'"), 0);
    if ($result == 1)
    {
        echo "Korrekt kode";
    } else {
        echo "Forkert kode";
    }
}
?>

<html>
<head>
<body>
<br>
<br>
<br>
<h2 align="center">Administrator Password</h2>
</TABLE>
<TABLE align=center>
<TR>
    <TD><form action="<?php echo $_SERVER['PHP_SELF']; ?>"  method="post">
        <input type="password" name="passwd" size="10" /><br />
        <input type="submit" name="submitknap" value="Log ind"</>
        </form>
    </TD>   
</TR>
</TABLE>
<br>
<br>
<br>
<a href="index.php">Tilbage</a>
</body>
</head>
</html>
Avatar billede komet Nybegynder
26. januar 2005 - 12:47 #36
Jo det virker nu:) Jeg takker mange gange. Det var ikke gået uden hjælp, det er sgu lidt svært, når, man lige er startet på det... Men i må komme med et svar, hvis i vil have point
Avatar billede komet Nybegynder
10. februar 2005 - 13:15 #37
Nå hvis der ikke er nogen der vil svare, så gør jeg det selv
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