Avatar billede dstjulle Nybegynder
08. maj 2008 - 09:30 Der er 28 kommentarer og
1 løsning

problemer med user_login.php

hej jeg er ved at lave en login og har en fejl i min user_login.php og kan ikke finde fejlen kan i hjælpe mig ?


<?php
session_start();
include "conn.inc.php";
if (isset($_POST['submit'])) {
    $query ="SELECT username, password FROM user_info " .
            "WHERE username ='" . $_POST['username'] . "' " .
            "AND Password = (PASSWORD('" . $_POST['password'] . "'))";
    $result = mysql_query($query)
        or die(mysql_error());
    if (mysql_num_rows($_result) == 1) {
        $_SESSION['user_logged'] = $_POST['username'];
        $_SESSION['user_password'] = $_POST['password'];
        header ("Refresh: 5; URL=" . $_POST['redirect'] . "");
        echo "You are being redrected to your orignal page request!<br>";
        echo "(If your browser doesn´t support this, " .
            "<a href=\"" . $_POST['redirect']. "\">Click here</a>";
    }
    } else {
    ?>
    <html>
    <head>
    <title>Beginning PHP5, Apache and MySQL</title>
    </head>
    <body>
    <p>
        Invalid Username and/or Password<br>
        Not registered?
        <a href="register.php">click here</a> to register.<br>
        <Form action="user_login.php" method="post">
        <input type="hidden" name="redirect"
          value="<?php echo $_post['redirect']; ?>">
        Username: <input type="text" name="username"><br>
        Password: <input type="password" name="password"><br><br>
        <input type="submit" name="submit" value="Login">
      </form>
    </p>
    </body>
    </html>
<?php
}
?>
Avatar billede dstjulle Nybegynder
08. maj 2008 - 09:31 #1
glemte fejlen : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /volume1/web/test/cms-6/user_login.php on line 10
Avatar billede showsource Seniormester
08. maj 2008 - 09:42 #2
Prøv

$query ="SELECT username, password FROM user_info
        WHERE username ='".$_POST['username']."'
        AND
        Password = (PASSWORD('".$_POST['password']."'))";

$result = mysql_query($query) or die(mysql_error());
Avatar billede dstjulle Nybegynder
08. maj 2008 - 09:52 #3
så får jeg denne fejl : 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /volume1/web/test/cms-6/user_login.php on line 12
Avatar billede showsource Seniormester
08. maj 2008 - 09:57 #4
hov, du bruger jo
mysql_num_rows($_result)
men skal være
mysql_num_rows($result)
Avatar billede dstjulle Nybegynder
08. maj 2008 - 09:58 #5
ok hade ikke set det tak
Avatar billede dstjulle Nybegynder
08. maj 2008 - 10:00 #6
ja nu melder den ikek fejl mere men jeg kan stadig ikke komem ind på siden selv om koden og bruger navn er rigtig !
Avatar billede dstjulle Nybegynder
08. maj 2008 - 10:08 #7
har måtte lave en ny bruger så virker det ;-) ved ikke helt hvorfor ?
Avatar billede dstjulle Nybegynder
08. maj 2008 - 10:09 #8
men hvis du laver et svar får du point !
Avatar billede dkfire Nybegynder
08. maj 2008 - 10:09 #9
Hvad viser den dig ?
Avatar billede showsource Seniormester
08. maj 2008 - 10:11 #10
Nu bruger du PASSWORD(), hvordan har du gemt password'et i mysql?
Selv bruger jeg et varchar felt i db til password, 32 tegn langt, og så f.eks.

AND Password = '".md5($_POST["password"])."'
Avatar billede showsource Seniormester
08. maj 2008 - 10:11 #11
?
Så har dit password vel været forkert ? :O)
Avatar billede dstjulle Nybegynder
08. maj 2008 - 10:15 #12
jeg bruger den her

$query = "INSERT INTO user_info (username, password, email, " .
"first_name, last_name, city, state, hobbies) " .
"VALUES ('" . $_POST['username'] . "', " .
"(PASSWORD('" . $_POST['password'] . "')), '" .
$_POST['email'] . "', '" . $_POST['first_name'] .
"', '" . $_POST['last_name'] . "', '" . $_POST['city'] .
"', '" . $_POST['state'] . "', '" .
implode(", ", $_POST['hobbies']) . "');";
$result = mysql_query($query)
or die(mysql_error());
$_SESSION['user_logged'] = $_POST['username'];
$_SESSION['user_password'] = $_POST['password'];
?>
Avatar billede dstjulle Nybegynder
08. maj 2008 - 10:23 #13
og nej problemer er det stadig jeg tror det er noget med hvordan jeg får den til at sætte min kode ind !
Avatar billede dkfire Nybegynder
08. maj 2008 - 11:32 #14
Hvad gør PASSWORD() ???
Avatar billede dstjulle Nybegynder
08. maj 2008 - 12:20 #15
kan du ikke se det i filen ?eller såkan jeg poste dem jeg har her
Avatar billede dstjulle Nybegynder
08. maj 2008 - 12:54 #16
for skal jeg være helt ærlig så ved jeg ikke hvad PASSWORD() gør :-(men vil godt vide det for så har jeg lært lidt !
Avatar billede showsource Seniormester
08. maj 2008 - 13:04 #17
PASSWORD() er en mysql funktion

$p = mysql_query("SELECT PASSWORD('juhu')") or die (mysql_error());

echo mysql_result($p,0);
Avatar billede dstjulle Nybegynder
08. maj 2008 - 13:19 #18
ok det var da godt at vide men hvad gør jeg fejl i det for den vil ikke loge mig ind !
Avatar billede dstjulle Nybegynder
08. maj 2008 - 13:20 #19
i kan teste den her http://84.238.71.130/test/cms-6
Avatar billede dkfire Nybegynder
08. maj 2008 - 13:50 #20
Efter lidt søgning på mysql.com:
http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_password

Og er står bl.a.:
The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead.

Så jeg tror det er en meget dårlig ide at bruge PASSWORD() i din kode. Du kan i stedet bruge md5 eller sha1 eller sha256.
Avatar billede dstjulle Nybegynder
08. maj 2008 - 17:04 #21
ok så skal jeg bare lige finde ud af hvordan man bruger dem og hvilken der er bedst! takker
Avatar billede dstjulle Nybegynder
11. maj 2008 - 22:46 #22
har i en ide til hvordan og hvilken det er bedst ?
Avatar billede dkfire Nybegynder
11. maj 2008 - 23:43 #23
Tror det er ligegodt begge, men har læst at en del password kombinationer som er krypteret med md5 er gemt af hackere.
Jeg ville råde dig til, hvis du skal gemme password for brugere, at du salter de password du gemmer, inden du kryptere dem.
Avatar billede dstjulle Nybegynder
19. maj 2008 - 08:09 #24
ok det lyder som en godt ide

men hvor man jeg finde noget om det ??? kender ikke til salt ( ud over det der kommer på mad )
Avatar billede dkfire Nybegynder
19. maj 2008 - 14:55 #25
Har lige fundet en lille artikel om det:
http://www.aspheute.com/english/20040105.asp
Har dog ikke lige læst den igennem.

Men princippet er at, inden du kryptere brugerens password lægger du et kendt ord (salt) til passwordet. Derefter kryptere du passwordet med saltet og den krypterede værdi gemmer du i databasen sammen med dit salt.
Du bør lave et nyt salt hvor hver kodeord du gemmer.

Når du så skal sammenligne et indtastet password med et password i databasen, så henter du dit salt fra databasen, lægger det til det indtastet password og kryptere det, så kan du sammenligne det med din værdi som du har liggende i databasen.

Håber det gav lidt mening.
Avatar billede dstjulle Nybegynder
24. juni 2008 - 14:36 #26
det er noget je gvil se på ( undskyl for at jeg ikke har være her i lang tid men give et svar og du får point
Avatar billede dstjulle Nybegynder
04. juli 2008 - 10:46 #27
dkfire vil du lave et svar så du kan få point ?? eller så tager ejg dem selv !!
Avatar billede dkfire Nybegynder
04. juli 2008 - 11:15 #28
Jamen så kommer der et svar :-)
Avatar billede dstjulle Nybegynder
08. juli 2008 - 21:50 #29
tak så kunen jeg få den lukket
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