Toon posts:

Fout melding Resource id #5 na echo variable

Pagina: 1
Acties:
  • 316 views

Onderwerpen


Verwijderd

Topicstarter
Hallo,

Ik ben nieuw hier op dit forum. Ben er via een vriend opgekomen. Maar ik zit met een probleem. Ik krijg als ik een query run en die echo krijg ik Resource id #5 als melding. Ik denk zelf dat hij de hele rij pakt. Hier hebben jullie de code:

?php
if(isset($_POST) && !empty($_POST))
{
session_start();
include("configDB.php"); //including config.php in our file
$username = mysql_real_escape_string(stripslashes($_POST['username'])); //Storing username in $username variable.
$password = mysql_real_escape_string(stripslashes(md5($_POST['password']))); //Storing password in $password variable.


$match = "select id from $table where username = '".$username."' and password = '".$password."';";
$isadmin = mysql_query("SELECT is_admin FROM $table where username = '".$username."';");
$qry = mysql_query($match);

$num_rows = mysql_num_rows($qry);

if ($num_rows <= 0) {

echo "Sorry, there is no username $username with the specified password.";

echo "Try again";

exit;

} else {
if ($isadmin == 1){
//$_SESSION['user']= $_POST["username"];
//header("location:AdminPage.php");
echo $isadmin;
} else {
//$_SESSION['user']= $_POST["username"];
//header("location:UserPage.php");
echo $isadmin;

}
}
}else{
?>
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="container login">
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" class="form-signin" id = "login_form" >
<h2 class="form-signin-heading">Login</h2>
<input type="text" name="username" size="20" placeholder="Username">
<input type="password" name="password" size="20" placeholder="Password"></br>
<input type="submit" value="Log In" class="btn btn-large btn-primary">
</form>
</div>
</body>
</html>
<?php
}
?>

Hopelijk vinden jullie het probleem,


Groetjes,
Vanaart


ps. Als jullie ook nog tips hebben voor dit topic dan hoor ik het graag.

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Verwijderd schreef op vrijdag 06 september 2013 @ 14:04:
[..]

ps. Als jullie ook nog tips hebben voor dit topic dan hoor ik het graag.
Leesvoer: Overzicht van UBB-codes

Zet de code in code-tags, en het wordt een stuk overzichtelijker ;)

Ey!! Macarena \o/


  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 16:15
A. Zet je code even tussen [code=php] tags. Dat maakt het wat leesbaarder.
B. Wat heb je zelf gevonden door dingen te gaan uitsluiten? Door verschillende stukken code weg te halen of als comment te zetten kan je de fout isoleren en gemakkelijk oplossen.
C. print_r() is je vriend.

Edit:
Even wat losse opmerkingen:
- Als je $_POST['password'] als MD5 encrypt dan hoef je die niet nog een keer te escapen.
- MD5 als wachtwoord versleuteling is wat achterhaald. SHA is een betere keus, niet de beste keus.
- Je krijgt inderdaad een array terug dus die zal je als dusdanig moeten verwerken.
- Wat nou als ik direct naar AdminPage.php ga? >:)
- Je gooit bij een succesvolle login de $_POST['username'] direct in een session variable. Ik hoop dat je die later niet vertrouwd?

[ Voor 46% gewijzigd door MuddyMagical op 06-09-2013 14:14 ]


  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 14:13

AW_Bos

Liefhebber van nostalgie... 🕰️

Het leuke van queries zijn dat ze een boolean of een resource geven, en niet de uitvoer die je verwacht.
je zult het na een query nog moeten fetchen met mysql_fetch_assoc() om er een array van te maken....

Dus in korte lijnen komt het neer op:
PHP:
1
2
3
4
5
<?php
$result = mysql_query("SELECT id, dit, dat, zus, zo FROM dingen WHERE id='42' ");
$data = mysql_fetch_assoc($result);
echo $data['id']; // geeft 42
?>


Los daarvan moet er natuurlijk wel goede foutafhandeling worden gebouwd om je query op $result.

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Verwijderd schreef op vrijdag 06 september 2013 @ 14:04:
Ik krijg als ik een query run en die echo krijg ik Resource id #5 als melding.
Als je echo $match; doet, krijg je inderdaad een resource terug. Probeer eens de rijen in $match te fetchen voordat je de echo doet, zoiets als (disclaimer: code niet gecheckt)
PHP:
1
2
3
4
while ($result=mysql_fetch_assoc($match))
{
  print_r($result);
}


Edit: spuit 11

When life gives you lemons, start a battery factory


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02-12 18:25

Creepy

Tactical Espionage Splatterer

Oftewel: gewoon even de manual erbij pakken en zelf wat debuggen.

Met alle respect natuurlijk maar dit wordt echt in *elke* PHP/MySQL tutorial uitgelegd. Dat je dan een fout als deze maakt is niet direct erg maar dat je hier maar je code dumpt en wacht totdat wij het gaan fixen is dan weer net niet de bedoeling. Met 1 minuut google werk op je melding had je direct zelf de oplossing gevonden. We gaan er hier dan ook vanuit dat je dat in eerste instantie dan ook doet (googlen, debuggen etc) en als je het dan nog niet hebt opgelost dat je dat dan ook aangeeft in je topic. Zie ook Het algemeen beleid #quickstart waarin dat allemaal netjes wordt uitgelegd

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.