Jpmaster77
Bij de gebruikersnaam kan je alleen een alfa nummerieke naam gebruiken, maar op mijn site wordt ingelogd met het emailadres.
Dit kan niet met dit systeem omdat het @ niet wordt geaccepteerd.
In session.php staat deze regel:
/* Check if username is not alphanumeric */
if(!preg_match("/^([0-9a-z-_])*@([0-9a-z-_])*$/", $subuser)){
$form->setError($field, "* Username not alphanumeric");
}
heb dit al op verschillende manieren aangepast maar nog steeds accepteerd hij het emailadres niet.
Het gewoon weghalen van deze regel werkt ook niet.
Lukt het niet dan kan ik dit niet gebruiken.
Hier de code wat uitgebreider:
function login($subuser, $subpass, $subremember){
global $database, $form; //The database and form object
/* Username error checking */
$field = "user"; //Use field name for username
if(!$subuser || strlen($subuser = trim($subuser)) == 0){
$form->setError($field, "* Username not entered");
}
else{
/* Check if username is not alphanumeric */
if(!preg_match("/^([0-9a-z-_])*@([0-9a-z-_])*$/", $subuser)){
$form->setError($field, "* Username not alphanumeric");
}
}
Jan
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if (!filter_var($subuser, FILTER_VALIDATE_EMAIL)) {
$form->setError($field, "* Username not an e-mail address");
}
?>
if (!filter_var($subuser, FILTER_VALIDATE_EMAIL)) {
$form->setError($field, "* Username not an e-mail address");
}
?>
De reden dat dit niet werkt, is (onder andere) omdat je niet toestaat dat er punten in het emailadres zitten. En zeker in de domeinnaam komen die voor (zoals de . bij .nl). Daarentegen accepteer je ook "jan@" of "jan@1" en in een domeinnaam kan geen _ voorkomen, wat jij weer wel toestaat.
Wat niet wegneemt dat de controle van een emailadres zo complex is, dat je dat beter gewoon door de eigen functies van PHP kunt laten gaan. Zie post van Ward.
Ivo P op 09/05/2016 14:34:23:
/^([0-9a-z-_])*@([0-9a-z-_])*$/
De reden dat dit niet werkt, is (onder andere) omdat je niet toestaat dat er punten in het emailadres zitten. En zeker in de domeinnaam komen die voor (zoals de . bij .nl). Daarentegen accepteer je ook "jan@" of "jan@1" en in een domeinnaam kan geen _ voorkomen, wat jij weer wel toestaat.
Wat niet wegneemt dat de controle van een emailadres zo complex is, dat je dat beter gewoon door de eigen functies van PHP kunt laten gaan. Zie post van Ward.
De reden dat dit niet werkt, is (onder andere) omdat je niet toestaat dat er punten in het emailadres zitten. En zeker in de domeinnaam komen die voor (zoals de . bij .nl). Daarentegen accepteer je ook "jan@" of "jan@1" en in een domeinnaam kan geen _ voorkomen, wat jij weer wel toestaat.
Wat niet wegneemt dat de controle van een emailadres zo complex is, dat je dat beter gewoon door de eigen functies van PHP kunt laten gaan. Zie post van Ward.
Toevoeging op 09/05/2016 14:45:23:
Hallo heren
Bedankt voor jullie reactie, maar nog één vraagje, kan de controle naar alfnumeriek blijven staan.
Het staat in sesion.php wel 5 maal in.
Groeten en nogmaals bedankt