login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gebruikersnaam van loginsysteem onhoofdletter gevoelig maken (Opgelost)

Offline Pietje - 15/10/2011 19:59 (laatste wijziging 16/10/2011 12:08)
Avatar van PietjeLid Kan iemand mij helpen? 

  1. $username = clean($_POST[username]);
  2. $password = md5($_POST[password]);
  3. $date = date('Y-m-d');
  4. $time = date('H:i:s');
  5. $sql = mysql_query("select * from usr_users where username = '$username' and password = '$password'");
  6. $check = mysql_num_rows($sql);
  7.  
  8. if($check!=1)
  9. {
  10. echo 'Kijk je alles even na?';
  11. echo '<meta http-equiv="refresh" content="1;url=index.php" />';
  12. $success = 'Failed';
  13.  
  14. if($content[loginlog]==1)
  15. $sqllog = mysql_query("insert into usr_logs(user, ip, time, date, success) values('$username', '$ip', '$time', '$date', '$success')");
  16. }

11 antwoorden

Gesponsorde links
Offline WouterJ - 15/10/2011 20:02
Avatar van WouterJ HTML gevorderde Gebruik PHP.net: strtolower. Zo zet je de string naar kleine letters en dan maken de hoofdletters niks meer uit.
Bedankt door: Pietje
Offline Pietje - 15/10/2011 20:03 (laatste wijziging 16/10/2011 12:09)
Avatar van Pietje Lid Bedankt voor je snelle reactie! Alleen, ik weet niet hoe ik dat in mijn script moet bouwen.

Een error bij dit:

  1. $username = strtolower(clean($_POST[username]));
  2. $password = md5($_POST[password]);
  3. $date = date('Y-m-d');
  4. $time = date('H:i:s');
  5. $sql = strtolower(mysql_query("select * from usr_users where username = '$username'")) and mysql_query("select * from usr_users where password = '$password'");
  6. $check = mysql_num_rows($sql);

Citaat:
Warning: strtolower() expects parameter 1 to be string, resource given in /home/code/domains/website/public_html/bestand.php on line 60

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /home/code/domains/website/public_html/bestand.php on line 61

EDIT: Ik snap wel dat er niets van klopt...
Offline WouterJ - 15/10/2011 20:42
Avatar van WouterJ HTML gevorderde Een mysql_query returnd (geeft terug) een resource. Hiermee kun je niks, deze data moet je eerst fetchen en dan kan je ze gebruiken.
Voor fetchen heb je vele methodes, maar ik raad je PHP.net: mysql_fetch_assoc aan.

Vervolgens kun je deze data gaan gebruiken. Een uitgebreide uitleg heb ik eerder deze week hier geplaatst: http://www.sitemasters.be/forum/2/39794/1#id253478
Offline vinTage - 15/10/2011 20:45
Avatar van vinTage Nieuw lid Select is gewoon case insensitive
Offline Pietje - 15/10/2011 20:52 (laatste wijziging 16/10/2011 12:12)
Avatar van Pietje Lid Mijn gehele script:
  1. if($login==login)
  2. {
  3. $username = clean($_POST[username]);
  4. $password = md5($_POST[password]);
  5. $date = date('Y-m-d');
  6. $time = date('H:i:s');
  7. $sql = mysql_query("select * from usr_users where username = '$username' and password = '$password'");
  8. $check = mysql_num_rows($sql);
  9.  
  10. if($check!=1)
  11. {
  12. echo 'Kijk je alles even na?';
  13. echo '<meta http-equiv="refresh" content="1;url=index.php" />';
  14. $success = 'Failed';
  15.  
  16. if($content[loginlog]==1)
  17. $sqllog = mysql_query("insert into usr_logs(user, ip, time, date, success) values('$username', '$ip', '$time', '$date', '$success')");
  18. }
  19. else
  20. {
  21. $user = mysql_fetch_array($sql);
  22. $_SESSION[usr_name] = $user[username];
  23. $_SESSION[usr_level] = $user[level];
  24. $_SESSION[usr_ip] = $ip;
  25.  
  26. if($_SESSION[usr_level]==1)
  27. {
  28. $success = 'Success';
  29. echo 'Je bent ingelogd als '. $username .'!'."\n";
  30. echo '<meta http-equiv="refresh" content="1;url=me.php" />'."\n";
  31. }
  32. else
  33. {
  34. $success = 'Failed';
  35. echo 'Je hebt te weinig rechten.'."\n";
  36. echo '<meta http-equiv="refresh" content="1;url=index.php" />'."\n";
  37. }
  38. }
  39.  
  40. if($content[loginlog]==1)
  41. $sqllog = mysql_query("insert into usr_logs(user, ip, time, date, success) values('$username', '$ip', '$time', '$date', '$success')");
  42. }
  43.  
  44. if($login==logout)
  45. {
  46. echo 'Succesvol uitgelogd!'."\n";
  47. }

Ik snap er nog steeds niets van, ik ben niet zo'n pro in mysql en php 
Offline kilian - 15/10/2011 23:11
Avatar van kilian Lid Je gebruikt geen ' tekentjes bij je indexen van je $_POST array's. Misschien dat dat er wel iets mee te maken heeft.

Vervang eens $_POST[eenindex] door $_POST['eenindex'], misschien dat dat wel werkt?
Deze opmerking telt trouwens ook voor $_SESSION, $_COOKIE, $content en alle andere array's die je gebruikt.

Mocht dat niet werken, dan kan volgende tip misschien nog van pas komen.
Als je vermoed dat hetgeen je terugkrijgt van je query dat je met mysql_query oproept moet je die query eens in een echo zetten, dan kan je de query, zoals deze aan de database wordt doorgegeven, inclusief de ingevulde variabelen bekijken evn eventueel uitvoeren in phpMyAdmin, om te controleren dat daar al niets mis mee is.

Vb:
  1. mysql_query("select * from usr_users where username = '$username' and password = '$password'");

Als je nu hiervan nu het onderstaande maakt:
  1. echo "select * from usr_users where username = '$username' and password = '$password'";


Offline WouterJ - 16/10/2011 09:13
Avatar van WouterJ HTML gevorderde @pietje:
- MySQL heeft standaard hoofdletters schrijf dus de queries zo: SELECT iets, nogwat FROM tabel WHERE iets = 'nogwat'
- Haal variabele uit de quotes:
  1. $naam = 'Wouter';
  2. echo 'hallo'.$naam;

- Zorg ook voor een goede foutafhandeling. Voorbeeld: snipplr.com/view/45252/goede-foutafhandeling-mysql/
- Verder gewoon even lezen wat ik in mijn vorige bericht heb gezegd en het voorbeeld doorkijken, dan kom je er wel uit.
Offline Pietje - 16/10/2011 09:30 (laatste wijziging 16/10/2011 12:13)
Avatar van Pietje Lid Zoiets kan ik ook doen denk ik, toch?

  1. $username = $_POST('username');
  2. $sql = [i]mysql_query("select * from usr_users where username");[/i]
  3. if($username = $sql)
  4. {
  5. echo '//TEKST';
  6. }
  7. else
  8. {
  9. echo '//TEKST';
  10. }

Hmmm... Klopt dat schuingedrukte zinnetje? Ik zal het is testen...
Iemand interresse in een bb systeem toevallig? Ik heb er pas eentje gemaakt.

EDIT: Ik heb nu geen errors ofzo, maar ik krijg steeds de melding 'kijk je alles even na?'.
Offline Abbas - 16/10/2011 12:14
Avatar van Abbas Gouden medaille

Crew .NET
CODETAGS gebruiken!
Offline WouterJ - 16/10/2011 13:44
Avatar van WouterJ HTML gevorderde @Pietje, het lijkt erop alsof je beter gewoon bij de basis van PHP kunt beginnen. De fouten:
Regel 1) $_POST superglobals is een soort array de () moeten [] zijn
Regel 2) Kijk eens naar de tips die ik vanochtend heb gegeven en pas die eens aan.
Regel 3) De if statement zal altijd true opleveren, omdat je altijd de waarde van $username kan veranderen. Ik denk dat je == bedoelt (kijk ook eens naar PHP.net: language.operators)

Verder moet je nog steeds de gegevens fetchen.
Offline Pietje - 16/10/2011 13:49 (laatste wijziging 16/10/2011 13:58)
Avatar van Pietje Lid Ik heb de code inderdaad even snel en met fouten gemaakt, zal nog eens nakijken...

Lukt niet :L, laat maar anders...
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.28s