moet kunnen
maar wat is er nou precies mee
wat is de reden da hij het niet doet
EDIT:
er moet dus form_ voor
moet kunnen
maar wat is er nou precies mee
wat is de reden da hij het niet doet
EDIT:
er moet dus form_ voor
Jah (had weer me vorige post geedit )
er blijven nu nog 3 fouten over
daar moet ik dus ook ff form voor gaan zetten?
lijkt mij wel dus dat ga ik alvast even doen
idd maar volgens mij stond dat er
Alle fouten zijn er nu uit maar als ik er nu gegevens invoer slaat hij die niet op!
EDIT: de wachtwoorden doet hij wel goed!
maar de andere nog niet
Alleen als ik de wachtwoorden EN de andere invoer doet hij het wel goed
Laatst gewijzigd door slommy; 29/04/05 om 16:05.
Ik kijk er thuis mss wel ff naar ben nu namelijk op me stage en niet echt veel tijd
edit: heb beetje te veel bier op hierzo en vanaaf weer en morgen dus zal wel zondag of maandag worde
is goed ik ga ook ff naar de party`s hier in de buurt
en kijk maar als je tijd heb graag
en echt alvast bedankt he
Functions en classes are your friend !
Naast dat je code redelijk onleesbaar is, heb je een if-else spaghetti. Vuistregel voor het programmeren is om niet meer dan 10-15 regels code te hebben. Heb je dit wel > functie (of class, maar php4 classes zijn een beetje onnozel).
Als je gebruik maakt van $HTTP_SESSION_VARS weet je trouwens zeker dat deze niet via GET/PUT zijn geset, die kun je alleen veranderen door regelrecht bijvoorbeeld $HTTP_SESSION_VARS["username"]="Jan"; in te voeren.
Hier is een suggestie om je code wat duidelijker (en werkend) te maken, ik ga niet alle (sub)functies voor je uitschrijven, maar je kan wel afleiden wat de inhoud daarvoor moet zijn:
Zoals je ziet word er gebruikt gemaakt van een $form en een $sql class.PHP Code:
function login_user( $user, $pass, $pass2 )
{
global $sql,$form,$HTTP_SESSION_VARS;
if(!$user||!$pass) error("Username or password missing.");
else {
$form->checkString($user,"Username",16,1);//max 16 chars,
$form->checkString($pass,"Password",16,1);//check on weird chars
if($pass!=$pass2) $form->add_error("Passwords aren't equal");
if(!$form->ok()) error($form->get_errors());
$sql->query("select u_lvl,user_id from users ".
"where username='".$user."'".
" and password='".$pass."'");
if(!$sql->num_rows()!=1) error("Invalid username / password combination.");
$info=$sql->get();
$HTTP_SESSION_VARS["user_lvl"]=$info->u_lvl;
$HTTP_SESSION_VARS["user_id"]=$info->user_id;
return "";
}
}
De form-class kun je een zut preg controles op uitvoeren, en tevens mysql_escape_string() (gebruik niet addslashes! Gebruik de mooie functies die PHP je al gratis aanbied!). $form->checkString is een pass-by-refrence value. D.w.z. dat de waarde van $user die je aanbied veranderd kan worden door de functie checkString om eventueel slashes toe te voegen (wat mysql_escape_string bv (kan) doen).
De sql-class handeld alle SQL transacties af; verbinding, eventuele beveiliging, handige get methoden (object to array etc etc is handig, of een soort "get_all_rows").
Om het nog mooier te maken zet je login in een user-class.
Op deze manier is je code veel duidelijker en kan je meteen zien in welke class een eventuele bug zit. Tevens is het hergebruik van je code voor andere projecten ook beter.
Suc6
Ik denk dat ik ook een beetje verkeerd ben begrepen,
want het is mijn bedoeling:
Als ik bijv. mijn naam wijzig moet hij het wachtwoord niet wijzigen.
Als ik mijn wachtwoord wil wijzigen moet hij het wel wijzigen.
Als ik dus alleen maar wat bij wachtwoord invoer wijzigt hij het wachtwoord, als ik dan tegelijk ook mijn naam wil wijzigen moet hij dat ook doen.
maar het moet dus niet andersom
want volgens mij werkt het nu zo:
Als ik mijn naam wil wijzigen MOET ik mijn wachtwoord invoeren om mijn naam te wijzigen maar dat was niet mijn bedoeling
heeft iemand zo`n soort script liggen?
Alvast bedankt!