PHP - Warning: mysql_num_rows()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: 1 2 volgende »

Zie Foto

Zie Foto

22/05/2010 10:05:36
Quote Anchor link
Heej,

Ik heb hier een check php file voor als iemand zich wilt inloggen op een website.

Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$host
="xxxxx";
$username="xxxxx";
$password="xxxxx";
$db_name="xxxxx";
$tbl_name="xxxxx";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$UserID=$_POST['UserID'];
$Paswoord=$_POST['Paswoord'];

$UserID = stripslashes($UserID);
$Paswoord = stripslashes($Paswoord);
$UserID = mysql_real_escape_string($UserID);
$Paswoord = mysql_real_escape_string($Paswoord);

$sql="SELECT * FROM $tbl_name WHERE username ='$UserID' and Paswoord='$Paswoord'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){
session_register("UserID");
session_register("Paswoord");
header("location:login_success.php");
}

else {
echo "Foute duiker of paswoord";
}

?>


Nu krijg ik volgende fout:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /customers.../checklogin.php on line 24
Wrong Username or Paswoord

Hoe kan ik dit oplossen?
Alvast bedankt.
 
PHP hulp

PHP hulp

17/11/2024 13:51:56
 
Crude Oil

Crude Oil

22/05/2010 10:18:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql="SELECT * FROM $tbl_name WHERE username ='$UserID' and Paswoord='$Paswoord'";

$tbl_name moet toch tussen ' en ' ?
of dat het probleem oplost weet ik niet, het viel me alleen op
 
Tobias Tobias

Tobias Tobias

22/05/2010 10:18:37
Quote Anchor link
het enige wat ik evt kan ontdekken is op lijn 19:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql="SELECT * FROM $tbl_name WHERE username ='$UserID' and Paswoord='$Paswoord'";

Hier heb je Paswoord met een hoofdletter geschreven, ik neem aan dat hij in de MySQL-database ook met een hoofdletter is?
 

22/05/2010 10:20:29
Quote Anchor link
Foutafhandeling inbouwen. De query klopt vast niet.
Zie ook mysql_query.
 
Zie Foto

Zie Foto

22/05/2010 10:33:00
Quote Anchor link
@ Tobias Witmer

Er was idd een fout op mijn lijn 19.
username moest UserID worden.

----

Ik heb een project in mijn hoofd en hiervoor moet ik PHP kunnen.
Daarom ben ik nu bezig met wat PHP te leren.

Nu ga ik is zien of ik met zo'n Sessions kan werken.

Groetjes en alvast bedankt
 
Milo S

Milo S

22/05/2010 19:03:44
Quote Anchor link
Hey,

Voordat je allemaal gekke dingen gaat doen raad ik je wel aan dit eerst eens af te handelen. Zoals Karl al zegt bouw eens een fout afhandeling, weet je hoe dat moet? Of probeer eens de functies mysql_real_escape_string() en / of intval() stuk voor stuk handige dingen om te weten.
Wat me handig lijkt voor je verdere script carrière probeer eens met tabs etc werken dat maakt je code overzichtelijker.
 
- SanThe -

- SanThe -

22/05/2010 20:24:34
Quote Anchor link
Verder is session_register() antiek. Gebruik $_SESSION['...'].
 
Zie Foto

Zie Foto

22/05/2010 22:23:53
Quote Anchor link
@ Milo S
Ja fout afhandeling zit in de code al zelf zo.. Lijn 28 - 31
Meestal zet ik alles wat bij elkaar hoort in blokniveau

@ SanThe Nvt
Dit session_register() stond in een boek van mijn papa.
Hij kan alleen ASP want vindt PHP wat te moeilijk.
Maar heeft dit een zelfde werking?

Groetjes, Gerrie
 

22/05/2010 23:00:49
Quote Anchor link
Je hebt dus niet eens op php.net gekeken?
Dat is écht geen foutafhandeling.
Dat is beveiliging o.i.d.
Foutafhandeling zorgt ervoor, zoals het woord zegt, dat de fouten afgehandeld worden.
Jij had een foute query, als je foutafhandeling in je script had gehad dan had je dat dus gemerkt.
 
Zie Foto

Zie Foto

22/05/2010 23:14:28
Quote Anchor link
@Karl karl
Neen op php.net ben ik nog niet geweest.
Als ik iets fout doe geeft hij altijd "Warning: blablabla, da bestand, die lijn"
Wat doet een foutafhandeling dan juist?
Klein voorbeeldje mss mogelijk (a)

Thanks
 

22/05/2010 23:20:01
Quote Anchor link
Zie die link die ik hierboven heb geplaatst.
Php.net is eigenlijk de eerste plek waar je naar toe gaat als je een probleem hebt. Daar staat namelijk de documentatie van php. Dat is dus hoe alles moet, en wat je terug kan verwachten.
Verder kan je hier op phphulp.nl eens kijken naar een beginners-handleiding. Is vast wel te vinden.


(Je voorbeeld staat dus op php.net.)
 
- SanThe -

- SanThe -

22/05/2010 23:21:23
 
Joren de Wit

Joren de Wit

22/05/2010 23:22:44
Quote Anchor link
Degelijk foutafhandeling zorgt ervoor dat je tijdens de testfase te allen tijde een gedetailleerde foutmelding voorgeschoteld krijgt zodat je precies weet wat er wanneer fout gaat. Zodra de website op de productieserver staat, zorgt de foutafhandeling ervoor dat de bezoeker een nette foutmelding te zien krijgt en wordt de gedetailleerde foutmelding bijvoorbeeld weggeschreven naar een log.

Een voorbeeldje: PHP zal uit zichzelf geen foutmelding geven als een query die je met mysql_query uitvoert mislukt. Een eventuele foutmelding zul je zelf altijd moeten ophalen en tonen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$result
= mysql_query($sql);

if($result == false) {
  trigger_error(mysql_error());
}

?>

Dit is natuurlijk heel basaal, maar laat wel zien waar het om gaat.
 
Zie Foto

Zie Foto

22/05/2010 23:39:11
Quote Anchor link
Ha, dat is veel informatie in één keer xD
Ik zal het maandag allemaal even doornemen als het slecht weer is zo.
Goed weekend iedereen ^^
 
Zie Foto

Zie Foto

25/05/2010 18:03:03
Quote Anchor link
Voor mijn foutafhandeling heb ik nu
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

Nu zit ik met dat session probleem.
Als je gewoon in je browser naar de link "login_success.php" gaat dan moet je zelf niet zijn ingelogd...
Kan ik dit niet beter met een Cookie doen?
 
Victor Php

Victor Php

25/05/2010 18:11:20
Quote Anchor link
Gewoon kijken of er iets in de sessie staat..

if (isset($_SESSION['naam_van_sessie'])){

echo 'Je sessie bestaat!';

}
else
{

echo 'Nooo.. hij bestaat niet!';

En natuurlijk altijd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php session_start(); ?>
bovenaan!
Gewijzigd op 25/05/2010 18:12:14 door Victor Php
 
Zie Foto

Zie Foto

25/05/2010 18:19:59
Quote Anchor link
Function session_register() is deprecate --"
 
Zie Foto

Zie Foto

25/05/2010 18:44:18
Quote Anchor link
Gerrie:
Function session_register() is deprecate --"

Kan er mij iemand helpen wat ik er aan moet veranderen?
Hier zit de fout in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
session_register("duikerid");
session_register("paswoord");  
header("location:login_success.php");


Mijn login_success ziet er zo uit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
session_register("duikerid");
session_register("paswoord");  
header("location:login_success.php");
 
Zie Foto

Zie Foto

25/05/2010 18:46:12
Quote Anchor link
Oeps foutje!
Mijn login_success ziet er zo uit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}

?>


<html>
<body>
Login Successful
</body>
</html>
 
Joren de Wit

Joren de Wit

25/05/2010 18:46:29
Quote Anchor link
Gebruik de superglobal $_SESSION:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
$_SESSION['duikerid'] = $duikerid;
?>

Wachtwoorden sla je verder NOOIT op in een sessievariabele, dat is nergens voor nodig. Die gebruik je alleen om te controleren of een gebruiker juist inlog.
 
Zie Foto

Zie Foto

25/05/2010 19:01:43
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
$_SESSION['duikerid'] = $duikerid;
?>

Dus deze code heb ik in mijn "login_success.php" gezet.

Nu op mijn pagina om in te loggen als ik op "inloggen" wil drukken heb ik nog een fout door die Sessie... Een Sessie aanmaken daar snap ik blijkbaar niet veel van :s
- Hij geeft dus nog een fout op de pagina als hij een juiste login krijgt.
- Bij een foute login geeft hij een foutmelding aan de gebruiker.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.