[MySQL] Geeft foutmelding weer
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\wamp\www\paginas\handlers\handle_login.php on line 40"
Iemand enig idee hoe dat komt ?
Ik word helemaal gek! ik zit hier nu zo'n 2 1/2 dag mee bezig. en ik heb zowat alles geprobeerd.
Heeft iemand enig idee wat de fout is ?
//My SQL en database gegevens.
$dbc = mysql_connect('localhost', 'root', '******');
mysql_select_db('knorfski', $dbc);
$query1 = "SELECT * FROM login WHERE username = $gebruikersnaam";
$result = MySQL_query(query1, $dbc);
($row = mysql_fetch_array($result));
print($row['username']);
print($row['password']);
print($row['login_id']);
Mysql_close();
Gewijzigd op 14/11/2005 11:40:00 door Knorfski
dat is sneller
bestaat de tabel login?
$query1 = "SELECT * FROM login WHERE username = '".$gebruikersnaam."'";
http://www.knorfski.nl.eu.org/overige/phpmyadmin_1.jpg
In de url kan je zien dat de tabel login bestaat.
Ik heb ook de query regel vervangen door die jij geeft, en helaas nogsteeds hetzelfde resultaat...
post je formulier hier ook eens
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
#Layer1 {
position:relative;
width:178px;
height:108px;
z-index:1;
left: 412px;
top: 18px;
}
.style5 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
.style7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
.style8 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
}
-->
</style>
</head>
<body>
<div align="center"><span class="style7"> Vul de velden in om in te loggen. </span></div>
<div align="center"><br />
<table width="200" border="1">
<tr>
<td><div align="center" class="style8">
<form id="form1" name="form1" method="post" action="handlers/handle_login.php">
Gebruikersnaam:
<input type="text" name="gebruikersnaam" />
Wachtwoord:
<input type="text" name="wachtwoord" />
<br />
<br />
<input type="submit" name="Submit" value="Log in!" />
</form>
</div></td>
</tr>
</table>
<br />
<br />
</div>
<div align="center" class="style5"><a href="lostpass.php">Wachtwoord vergeten</a> / <a href="register.php">Registeren</a></div>
</body>
</html>
$query1 = "SELECT * FROM login WHERE username = '".$_POST['gebruikersnaam']."'";
Helaas nog precies hetzelfde,
www.knorfski.nl.eu.org
en dan login:
gebruikersnaam: TEST
wachtwoord: TEST
En dan krijg je weer precies dezelfde vervelende foutmelding!
De naam test bestaat gewoon niet!
$row = mysql_fetch_array($result);
ipv
($row = mysql_fetch_array($result));
Anders kan je een foutmelding van mysql genereren door
$query1 = "SELECT * FROM login WHERE username = $gebruikersnaam";
$result = MySQL_query(query1, $dbc) or die(mysql_error());
Je hebt wel een invoervak met wachtwoord, maar in de query zie ik niet dat je ook op wachtwoord controleert.
Is hier een speciale reden voor?
Bedankt voor je reactie,
Het script is nog niet klaar.
Maar ik wou het als volgd doen:
Eerst zoeken op gebruikersnaam, dan kijken als het wachtwoord klopte, maar ik test altijd tussendoor even mijn scripts, en dus wou ik eerst deze fout er graag uit hebben voordat ik verder ga.
Qua veiligheid is dat dus niet de beste optie.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'query1' at line 1
@Han, de gebruikersnaam en wachtwoord bestaan dus wel: http://www.knorfski.nl.eu.org/overige/phpmyadmin_2.jpg
Daar was ik ook van op hoogte :)
Maar ik ben de site eerst nog even aan het ontwikkelen. Die zaken pak ik later even aan.
Maar als ik het met root doe dan weet ik even zeker als het werkt.
$query1 = "SELECT * FROM login WHERE username = $gebruikersnaam";
$result = MySQL_query(query1, $dbc) or die('QUERY:<br>'.$query1.'<br><br>FOUT:<br>'.mysql_error());
Dus even de query echo'en
Misschien werkt dit
$query1 = "SELECT * FROM login WHERE username = '".$_POST['gebruikersnaam']."'";
Dus quotes gebruiken, want als gebruikersnaam een spatie bevat, krijg je een error, omdat hij dat niet meer als geheel woord ziet.
Gewijzigd op 14/11/2005 10:30:00 door Barman V
QUERY:
SELECT * FROM login WHERE username = TEST
FOUT:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'query1' at line 1
Maar hij krijgt de username wel goed door.
Ik vind het nu helemaal vreemd.
Bestaat login wel?
$result = MySQL_query(query1, $dbc);
Maak daar een $ bij en het wordt
$result = MySQL_query($query1, $dbc);
Uiteraard bestaat de login!
Twee tips:
1. $dbc = mysql_connect('localhost', 'root', '*****');
Zet nooit je password op Internet.
2. <input type="password" name="wachtwoord" />
Maak hier type password van zodat niemand kan meekijken.
Edit: Nog een typfoutje:
Standaard is met een d.
Processor: Pentium 3 600 Mhz Coppermine Core
Moederbord: Standaart moederbordje (Slot 1)
Geheugen: 265 MB SD-Ram Geheugen PC133
Grafische kaart: Onboard ATI RageXL 2X AGP 8MB
Netwerk kaart: Onboard 3Com 10/100Mbit
Voeding: Standaart
Behuizing: Standaart Compaq deskpro
Gewijzigd op 14/11/2005 11:03:00 door - SanThe -
Kleine fouten, grote oorzaken!!
Ik wil jullie allemaal hartelijk bedankten voor jullie inzet ! :D
Edit:
Achtja, een dyslectiefout :P
Dank u,
Gewijzigd op 14/11/2005 11:41:00 door Knorfski