Databas problem! eller kanske PHP..

Permalänk
Medlem

Databas problem! eller kanske PHP..

kör dehär på min wampserver men jag får inte in nått i databasen när ja klickar på submit..
nån som har en aning?

tack på förhand

<?php include ('mysql.php'); if (isset ($_POST['submit'])) { $username = mysql_escape_string ($_POST ['username']) ; $password = mysql_escape_string (sha1($_POST ['password'])) ; if ( !empty ($username) && !empty ($password)) { $sql = mysql_query (" INSERT INTO users (user_id,username,password) VALUES ('0',' ".$username." ',' ".$password." ') "); echo 'you are now registered'; } else { echo 'you must enter a pasword and a username'; } } else { echo '<form action="register.php" method="post"> username: <input type="text" name="username" /><br /> password: <input type="password" name="password" /><br /> <input type="submit" name="submit" value="register"><br /> </form>' ; } ?>

Permalänk
Medlem

Efter SQL-frågan lägg till

or die(mysql_error())

och kolla om du får några felmeddelanden.

Permalänk
Medlem

aa najs, första kolumnen hette inte user_id utan bara id^^
tack så mycket

Permalänk
Medlem

efter som de andra var så lätt så kanske den här me är det,
dock kan jag inte förstå mig på skiten!

your username and/or password is incorrect! är de enda den vill säga till mig någon?

<?php session_start(); include ('mysql.php'); if (isset ($_POST['submit'])) { $username = mysql_escape_string ( $_POST ['username']) ; $password = mysql_escape_string ( sha1($_POST ['password'])) ; if (!empty ($username) && !empty ($password)) { $sql = mysql_query ("SELECT * FROM users WHERE username=' ".$username." ' AND password=' ".$password." ' LIMIT 1"); if (mysql_num_rows ($sql) > 0) { $_SESSION['loggedin'] = true; $_SESSION['username'] = $username; echo 'You are now log in'; } else { echo 'your username and/or password is incorrect!'; } } else { echo 'You must enter a username anda password'; } } else { echo '<form name="login" action="login.php" method="post"> <label><h4>Username:</h4></label> <input type="text" name="username" /> <label><h4>Password:</h4></label> <input type="password" name="password" /> <input class="submit" type="submit" value="Go" name="submit" /> </form> login failed'; } ?>

Permalänk

Är ingen php-kodare direkt men det är antagligen något fel i den delen där den hämtar infon från databasen. La du till "or die" delen? Kan inte se den...
Då borde du ju iaf kunna se ifall felet ligger i mysql koden. Annars så kan du ju få den att skriva ut inskrivna användarnamnet och lösenordet och se ifall allt stämmer (har hashningen gått rätt till osv).

Får ursäkta ifall jag svamlar helt nu, C# e min hemmaplan

Permalänk
Medlem

Ja eftersom den skriver ut det så går den inte in i 2:a if-satsen.

Kör en echo på $username och $password för att se vad dom innehåller. Sen ska du använda mysql_real_escape_string inte mysql_escape_string.

Permalänk
Medlem

det borde inte ha med saken att göra, eftersom det är samma "fel" på registrerings-sidan, men sql-satsen ser ut att innehålla extra mellanslag innan och efter användarnamn och lösenord.

ex:

WHERE username=' ".$username." ' // blir WHERE username=' RuCKk ' WHERE username='".$username."' // blir WHERE username='RuCKk'

om man vill kan man ju skriva SQL-satsen såhär:

"SELECT * FROM users WHERE username='{$username}' AND password='{$password}' LIMIT 1"

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Medlem

ja rätta de till de och körde echo på $username & $password
och de visa sig att de fattades en siffra i slutet av lösenordet!
hade tydligen satt varchar(40) i databasen av nån anledning

tack så mycket för hjälpen!

Permalänk

bra att det löste sig