Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Miten kiellän merkin "

Suominen90 [04.09.2005 14:10:52]

#

En oo kovinkaan paljoa tutustunu preg_matchiin joten kysynkin miten kiellän vielä merkin "
koodi on tällänen nyt

if(preg_match("/[.,|\[\]+\/\\? -]+/", $knimi)) {
    echo 'Kiellettyjä merkkejä';
    return;
}

Sami [04.09.2005 14:21:39]

#

Lisäät vaan sinne lainausmerkkien väliin \" niin sillä sen pitäisi mennä.

Suominen90 [04.09.2005 14:23:49]

#

Oon pihalla. Minkä lainaus merkin väliin?

leftover [04.09.2005 14:27:22]

#

<?php

/* Kiellettyjen merkkien lista */
if (preg_match('/[.,|\[\]+/\\?\s-"]+/', $knimi)) {
    echo "Kiellettyjä merkkejä";
    return;
}

?>

Mutta eikö helpompi olisi käyttää pitkän, epäsäännöllisen ja mahdollisesti vielä jopa vajavaisen (veikkaisin että tuosta listasta uupuu mm. !#@£$ yms.) sijasta listaa sallituista merkeistä? Eli tyyliin [a-zA-Z0-9äöåÄÖÅ_] joka sallisi kirjaimet (myös ääkköset), numerot ja alaviivan?

<?php

if (!preg_match("/^[a-zA-Z0-9äöåÄÖÅ_]*$/i", $knimi)) {
    echo "Kiellettyjä merkkejä";
    return;
}

?>

PS: Ei kannata välttämättä yrittää kieltää kaikkea mahdollista, joskus on helpompaa vain sallia tietyt...

Muoks: Ja tuohon on helppo upottaa myös pituustarkistus, * tilalle vain +{4,16} ja minimipituus on tämän jälkeen 4, maksimipituus 16 merkkiä.

Suominen90 [04.09.2005 14:46:28]

#

Miksi tulee tälläinen ilmoitus
Warning: preg_match(): Compilation failed: nothing to repeat at offset 25 in /home/*****/public_html/****/rekisteroidy.php on line 194

Voisko joku tehä ton niin että sallii merkit ^ *

Niin mä käytän tota leftoverin jälkimmäistä vaihtoehtoa

<?php
if (!preg_match("/^[a-zA-Z0-9äöåÄÖÅ_]+{2,11}$/i", $knimi)) {
    echo "Kiellettyjä merkkejä";
    return;
}
?>

leftover [04.09.2005 18:07:06]

#

ota plussa pois { edestä ja lisää alaviivan jälkeen ^\*

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta