Begin met het verzinnen van een betere topic-titel; 1 die het probleem omschrijft.
Klik eens op session_register --> "This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0"
Verder zie ik hier nergens hoe/waar je bij een header zou kunnen komen.
mysql_real_escape_string gebruik je _in_ een query.
Geadviseerd wordt om variabelen buiten quotes te houden.
Je slaat het wachtwoord niet beveiligd op?!
Benoem het veld/de velden die je wilt opvragen ipv * te gebruiken.
mysql_fetch_array is hier niet nodig, mysql_fetch_assoc volstaat (je maakt immers geen gebruik van de array mogelijkheden).
Bij minder dan 1 resultaat, moet de if doorlopen worden? Verwacht dat bij exact 1 resultaat dit zou moeten gebeuren.
Or die is geen foutafhandeling.
Wat is het nut van regel 14, 15 en 16?
Waarom een exit opo regel 24?
Script consequent: de {} bij de else laat je op een andere plek inspringen dan bij de if.
De functie session_start() moet je altijd wel gebruiken. Het gaat om session_register() die je niet meer gebruiken moet. Zie onder andere de handleiding die ik gaf, daar staat een voorbeeld van het correcte gebruik in.
Wanneer je 1 record wil ophalen (bv. dit is typisch voor een login), wil je weten of mysql_query() succesvol een record heeft opgehaald, met if.
nl zo:
<?php
$res = mysql_query("SELECT * FROM users WHERE name='$name' AND password='$pass'");
if ($row=mysql_fetch_assoc($res)) { // geen mysql_num_rows nodig
// $row is hier het eerste (en enige) record
}
else {
// eventueel hier een boodschap 'verkeerde login' of zo
}
?>
Als je meerdere records nodig hebt, heb je een if() nodig die meerdere malen wordt uitgevoerd. Die noemen we while()
<?php
$res = mysql_query(...)
while ($row=mysql_fetch_assoc($res)) { // geen mysql_num_rows nodig
// $row is hier telkens een nieuw record. Tot alle records overlopen zijn, dan stopt de while()
}
?>
Alex Oosterveen op 17/02/2013 22:05:39
Ik ben helaas een beginner.
Hackers zijn geen beginners.
Zolang je niet deftig beseft waarmee je bezig bent, is een eigen login-systeem heel erg gevaarlijk.
Ik zou het iedereen afraden om zo iets online te zetten.