preg_match validering

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
sorteslyngel
Begynder
Indlæg:4
Tilmeldt:2. okt 2012, 15:17
preg_match validering

Indlæg af sorteslyngel » 13. okt 2012, 15:58

Hejsa, håber admins har det godt :) og andre brugere selvfølgelig!

Jeg har et problem med preg_match validering af mine formularer. Min kode er således:

Kode: Vælg alt

    
if(preg_match("/^[a-zA-z0-9æøåÆØÅ]+/", $_POST['pass']) === 0) {
        echo('<br /><br /><br /><br /><br /><bt>Fejl: Kodeord må kun indeholde bogstaver (a-å) og tal. <a href="javascript:history.go(-1)">Tilbage</a>');
        goto end;
}
Jeg vil gerne have den til, kun at acceptere store og små bogstaver (a-å) og tal. Problemet er at den også accepterer tegn :/

En rettelse:
Manglede en $, men det hjalp ikke så koden ser sådan ud:

Kode: Vælg alt

    if(preg_match("/^[a-zA-z0-9æøåÆØÅ]+$/", $_POST['pass']) === 0) {
        echo('<br /><br /><br /><br /><br /><bt>Fejl: Kodeord må kun indeholde bogstaver (a-å) og tal. <a href="javascript:history.go(-1)">Tilbage</a>');
        goto end;
    }

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: preg_match validering

Indlæg af ThomasI » 15. okt 2012, 19:49

Hey! :D

Jeg fandt det her på et engelsk forum - svaret er taget fra preg match manualen/dokumentationen, så tror helt sikkert det er noget der fungere:
If you just want to ensure a string contains only alphanumeric characters. A-Z, a-z, 0-9 you don't need to use regular expressions.

Use ctype_alnum()

Example from the documentation:

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
if (ctype_alnum($testcase)) {
echo "The string $testcase consists of all letters or digits.\n";
} else {
echo "The string $testcase does not consist of all letters or digits.\n";
}
}
?>
The above example will output:

The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consist of all letters or digits.

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: preg_match validering

Indlæg af ThomasI » 15. okt 2012, 19:50

Om det vi give dig problemer med æøå skal jeg ikke kunne sige...det må du lige teste

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: preg_match validering

Indlæg af Daniel » 15. okt 2012, 21:13

ctype_ er desværre ikke udviklet til at køre med UTF-8 encoding endnu, hvilket betyder den ikke kan klare æøå endnu, dette har jeg dog hørt en lille fugl synge om bliver anderledes i fremtiden. ;)

Vil enlig anbefale noget jQuery hvis du gerne vil have en god validation til dit login system. :)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: preg_match validering

Indlæg af ThomasI » 15. okt 2012, 22:16

OK - tak for info´en Daniel! :D

Men ja...måske er Jquery en løsning...ellers tænker jeg at du laver nogle else if og tjekker din string igennem flere gange...

Måske kan denne artikel hjælpe dig:

http://www.phpartikler.dk/artikler/regexp.php

sorteslyngel
Begynder
Indlæg:4
Tilmeldt:2. okt 2012, 15:17

Re: preg_match validering

Indlæg af sorteslyngel » 23. okt 2012, 13:11

Hej tak for svarene!

Jeg har fået det til at fungere med preg_match... Det er en længere forklaring, hvorfor jeg havde problemet. Men Jeg har helt sikkert tænkt mig at tjekke ctype_alnum() ud alligevel :)

Besvar