login  Naam:   Wachtwoord: 
Registreer je!
 Forum

login.php

Offline SilVeX - 02/06/2006 14:38
Avatar van SilVeXHTML beginner Mijn login.php wil niet werken.

Citaat:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/kris/montfort/login.php on line 13

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/kris/montfort/login.php on line 14
Er is geen combinatie mogelijk met het door uw ingevulde wachtwoord/email
Klik hier om het opnieuw te proberen


Dit is mijn code:
http://www.plaatscode.be/517/

Ziet iemand wat ik verkeerd doe?

12 antwoorden

Gesponsorde links
Offline Gerard - 02/06/2006 14:40
Avatar van Gerard Ouwe rakker $inloggen = mysql_query("SELECT `id`, `email`, `wachtwoord` FROM `klanten` WHERE email=".$email." AND wachtwoord=".$wachtwoordmd5."");

je bent single quotes vergeten binnen je SQL query voor je strings.
Offline SilVeX - 02/06/2006 14:50
Avatar van SilVeX HTML beginner Dankje, maar nu werkt hij nog niet. . .
Als ik de juiste gegevens invul dan geeft hij alsnog aan dat ik de verkeerde gegevens heb ingevuld :S
Offline Vipergtsr - 02/06/2006 16:07
Avatar van Vipergtsr Nieuw lid
  1. #
  2. $result = mysql_num_rows($inloggen);
  3. if($result == 1)


vervangt da is door:

  1. if (@mysql_num_rows($inloggen)>0)


Da gebruik ik altijd voor login.
Wa ge ook kunt voor te debuggen is uwe invoer en de waarde uit uw db is vergelijken. Dan weet ge wa er juist fout gaat.
Offline Ibrahim - 02/06/2006 16:17 (laatste wijziging 02/06/2006 16:20)
Avatar van Ibrahim PHP expert @Vipergtsr:

wat jij doet is onderdrukken van een error 

@topicstarter:

  1. $inloggen = mysql_query("SELECT id, email, wachtwoord FROM klanten WHERE email='".$email."' AND wachtwoord='".$wachtwoordmd5."'") or die("Error: <br />".mysql_error());


backticks zijn om gereserveerde woorden te gebruiken. Als het woord niet gereserveerd is, gebruik ze dan ook niet 
Offline Rens - 02/06/2006 16:31
Avatar van Rens Gouden medaille

Crew algemeen
http://www.site...cat=2#faq3
Offline SilVeX - 02/06/2006 17:55 (laatste wijziging 02/06/2006 17:55)
Avatar van SilVeX HTML beginner Hij werkt nu (denk ik)

Want nu wil ik het testen en nu heb ik een pagina met wat tekst die ik dacht beveiligd te hebben. Maar dan zegt hij dat ik niet ben ingelogd:

  1. <?php
  2. include "config.php";
  3.  
  4. if(isset($_SESSION['login'])) {
  5. ?>
  6. Dit zou je dus moeten kunnen lezen als je bent ingelogd
  7. <?
  8. }
  9. else {
  10. echo "U bent niet ingelogd";
  11. }
  12. ?>


Hoe moet ik mijn pagina anders beveiligen? :S
Offline Rens - 02/06/2006 17:57
Avatar van Rens Gouden medaille

Crew algemeen
dan zal $_SESSION['login'] wel niet geset zijn? 
Offline SilVeX - 02/06/2006 17:58 (laatste wijziging 02/06/2006 18:00)
Avatar van SilVeX HTML beginner Maar dat heb ik toch bij login.php gedaan?
(link staat in eerste msg van dit bericht)

edit: http://www.plaatscode.be/520/
Nog een x login.php (dit is de werkende versie)
Offline Scythen - 02/06/2006 18:00 (laatste wijziging 02/06/2006 18:00)
Avatar van Scythen PHP gevorderde Wil je misschien de WERKENDE script op plaatscode.be posten en de link hier op zetten? Is wel handig voor andere mensen. Bvd.


Edit edit: Oh, zie dat je het al hebt. Okidoki.
Offline Rens - 02/06/2006 18:02
Avatar van Rens Gouden medaille

Crew algemeen
Er staat geen session_start(); op die pagina;-)
Offline Voldemort - 02/06/2006 18:26
Avatar van Voldemort PHP ver gevorderde Tips:

- Haal nooit te veel info uit de DB (email en wachtwoord haal je eruit, maar je gebruikt ze nergens, dus moet je ze er niet uithalen)
- Gebruik mysql_error() achter elke query (in combinatie met die() of dergelijke) om zulke fouten gedetailleerder te kunnen zien (nu zie je dat de functies niet slaagden, dan zal je kunnen zien waar de fout zich localiseert in je query)
- Leer veiliger scripten, als ik in dat input veld kwaadaardige code invul, zo kan ik die variable aanpassen en je hele DB lezen, kopieren en verwijderen.
- Error_reporting op E_ALL zetten om zo nog beter te kunnen debuggen.
- En voor de rest de algemene tip (waaraan jij voldoet, dit doe je goed): Variablen buiten de quotes.

Oplossing:
- Misschien heb je (zoals Rensjuh al zei) geen session_start(); gebruikt.
- Misschien krijg je de fout dat je verkeerde combinaties hebt gebruikt, maar let je er niet op, in dat geval de juiste combinatie gebruiken.
Offline SilVeX - 02/06/2006 18:45
Avatar van SilVeX HTML beginner Thanks het werkt nu.
met session_start(); bovenaan 

@Voldemort
Citaat:
- Leer veiliger scripten, als ik in dat input veld kwaadaardige code invul, zo kan ik die variable aanpassen en je hele DB lezen, kopieren en verwijderen.

Hoe kan ik het veiligen maken? :S
Citaat:
- Haal nooit te veel info uit de DB (email en wachtwoord haal je eruit, maar je gebruikt ze nergens, dus moet je ze er niet uithalen)

Ik haal email en wachtwoord uit de db om in te loggen.
(dat moet toch?)

Alsvast bedankt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s