Avatar billede jevbabz Nybegynder
19. maj 2006 - 17:34 Der er 7 kommentarer

Ændre i preg match

Hejsa

Jeg har et community, hvor jeg selvfølgelig har et script til at oprette brugere med osv. Folk opretter så brugere til at efterligne andre brugere altså. De opretter feks "Jevbabz  " eller feks. "The  Guy" (bemærk de sætter to mellemrum imellem.
Dette går ind og irritere noget af mit andet programmering. Er der mulighed for at lave så de kun kan bruge et mellemrum og ikke kan sætte mellemrum efter navn?

Jesper

Kode :


<?
include "../../mysql.php";
$ip = $_SERVER['REMOTE_ADDR'];
$dato = date('d/m/Y H:i:s');
$holdoje = mysql_query("SELECT navn FROM community WHERE navn = '$navn'");
$hej = mysql_num_rows($holdoje);
$navn=trim($navn);
if (preg_match("/^[a-z0-9æøåÆØÅ][a-z0-9æøåÆØÅ ]*[a-z0-9æøåÆØÅ]$/i", $navn )) {
if((empty($navn)) OR (empty($kode))) {
echo "
Du mangler at skrive et navn eller kode. <a href='index.php'>Her</a>";
}
else {
if(($navn == 'alles') OR ($navn == 'alle') OR ($navn == ' ') OR ($navn == '  ') OR ($navn == '  ')) {
echo "<div align='center'><font face='Tahoma' style='font-size: 9pt'>Dette navn kan ikke bruges. <a href='../index.php'>Her</a></div>";
}
else {
if (mysql_num_rows($holdoje) == 0) {
if($kon == "hun") {
mysql_query("INSERT INTO community (navn, kode, ip, online, kon, figur, mail) VALUES ('$navn', '$kode' ,'$ip' ,'$dato' ,'$kon' ,'pigenormal.gif', '$mail')") OR DIE (mysql_error());
}
if($kon == "han") {
mysql_query("INSERT INTO community (navn, kode, ip, online, kon, figur, mail) VALUES ('$navn', '$kode' ,'$ip' ,'$dato' ,'$kon' ,'drengnormal.gif', '$mail')") OR DIE (mysql_error());
}
mysql_close;
echo "Din bruger er nu oprettet! Du kan logge ind <a href='../index.php'>Her</a></div>";

}else{
echo "Brugeren Findes allerede. Gå tilbage <a href='index.php'>Her</a>";
}
}
}
}
else {
echo "Brugernavnet indeholder ulovlige tegn Gå tilbage <a href='index.php'>Her</a>";
}
?>
Avatar billede nielle Nybegynder
19. maj 2006 - 17:59 #1
Brug trim() til at fjerne mellemrum før og efter:

http://dk2.php.net/trim

Brug derefter:

if (preg_match("/ {2,}"/, $navn))
{
    echo "2 eller flere mellemrum";
}

- til at tjekke om de har mere end ét mellemrum efter hinanden.
Avatar billede nielle Nybegynder
19. maj 2006 - 17:59 #2
preg_match("/ {2,}/", $navn)
Avatar billede jevbabz Nybegynder
19. maj 2006 - 18:08 #3
Kan du sætte det ind i koden for mig? :P
Avatar billede nielle Nybegynder
19. maj 2006 - 18:14 #4
Jeg kan se at du allerede bruger trim() - så dit nuværende system tillader faktisk ikke mellemrum i start eller slut af et navn.
Avatar billede nielle Nybegynder
19. maj 2006 - 18:20 #5
Normalt er Eksperten "hjølp til selvhjølp", men siden at jeg er i godt humør idag, så kan jeg da godt lave det for dig:

<?
include "../../mysql.php";
$ip = $_SERVER['REMOTE_ADDR'];
$dato = date('d/m/Y H:i:s');
$holdoje = mysql_query("SELECT navn FROM community WHERE navn = '$navn'");
$hej = mysql_num_rows($holdoje);
$navn = trim($navn);

if (preg_match("/^[a-z0-9æøåÆØÅ][a-z0-9æøåÆØÅ ]*[a-z0-9æøåÆØÅ]$/i", $navn) || preg_match("/ {2,}/", $navn))
{
    if (empty($navn) || empty($kode))
    {
        echo "Du mangler at skrive et navn eller kode. <a href='index.php'>Her</a>";
    }
    else
    {
        if ($navn == 'alles' || $navn == 'alle' || $navn == '')
        {
            echo "<div align='center'><font face='Tahoma' style='font-size: 9pt'>Dette navn kan ikke bruges. <a href='../index.php'>Her</a></div>";
        }
        else
        {
            if (mysql_num_rows($holdoje) == 0)
            {
                if ($kon == "hun")
                {
                    mysql_query("INSERT INTO community (navn, kode, ip, online, kon, figur, mail) VALUES ('$navn', '$kode', '$ip', '$dato', '$kon', 'pigenormal.gif', '$mail')") or die(mysql_error());
                }
                else if ($kon == "han")
                {
                    mysql_query("INSERT INTO community (navn, kode, ip, online, kon, figur, mail) VALUES ('$navn', '$kode', '$ip', '$dato', '$kon', 'drengnormal.gif', '$mail')") or die(mysql_error());
                }

                echo "Din bruger er nu oprettet! Du kan logge ind <a href='../index.php'>Her</a></div>";

            }
            else
            {
                echo "Brugeren Findes allerede. Gå tilbage <a href='index.php'>Her</a>";
            }
        }
    }
}
else
{
    echo "Brugernavnet indeholder ulovlige tegn. Gå tilbage <a href='index.php'>Her</a>";
}
mysql_close();
?>
Avatar billede nielle Nybegynder
25. maj 2006 - 23:05 #6
Har du fået kigget på det?
Avatar billede nielle Nybegynder
01. juni 2006 - 22:12 #7
Hvad med noget respons?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester