Ik heb een inlogscript.

maar om de een of andere onbekende reden heeft hij problemen met accountnamen met rare tekens zoals é ä ò e.d.

Deze wilt hij niet uitlezen
Enig idee hoe ik dat moet veranderen?
Geen idee als ik niet weet waarin iets veranderd kan worden.
Wat bedoel je trouwens met uitlezen? Echt weergeven of in een vergelijking gebruiken?
Die moet je sowieso niet accepteren. Ik weet niet of het met dit script werkt, maar je kan het proberen:

[code]<?php
if (!preg_match("/^[a-zA-Z0-9\-]+$/", $_POST['naam'])) {
echo 'Je naam mag alleen a-z, A-Z en 0-9 bevatten!';
}
?>
Dit moet ik wel accepteren, omdat de namen gekoppeld zijn aan de namen van een spel (en die accepteert dit ook)

Verder word het in deze query gebruikt waar hij dus niet op verder gaat

SELECT * FROM user_users WHERE naam = '" . $naam . "'
En hoe wordt $naam tot stand gebracht?
$naam = $_post['naam'];

Die komt van <input type='text' name='naam' />
stefan lenders schreef op 17.05.2009 21:27
$naam = $_post['naam'];

Die komt van <input type='text' name='naam' />

Dat mag je dan wel even beveiligen.
Roel schreef op 17.05.2009 19:24
Die moet je sowieso niet accepteren. Ik weet niet of het met dit script werkt, maar je kan het proberen:

<?php
if (!preg_match("/^[a-zA-Z0-9\-]+$/", $_POST['naam'])) {
       echo 'Je naam mag alleen a-z, A-Z en 0-9 bevatten!';
}
?>

Je regex klopt niet, want jij laat ook - toe.
De encoding zal niet consistent zijn. Zorg ervoor dat je database, PHP files en HTML output (bij voorkeur) in utf-8 formaat zijn. Tutorial.
Ja ok, maar ik snap hier niet veel van en het moet makkelijk gefixt worden. we hebben namelijk een db met over de 3000 bezoekers. en ik ben niet van plan om die allemaal er uit te gooien
Ànders moet je de query effe taggen.. "" dus.

Reageren