Avatar billede wqazr Nybegynder
16. august 2004 - 14:53 Der er 16 kommentarer og
1 løsning

brugere kan kun hedder tal og bogstaver

hey er der en der kan lave så nedenstående kode så den skriver at man ikke må have tegn.. og den skal self tjekke det.. de ting den skal acceptere:
a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å 1 2 3 4 5 6 7 8 9 0

alt andet skal den skrive: Du må ikke have ulovlige tegn, i dit brugernavn

Man må heller ikke lave mellem rum i starten af navnet eller til sidst.. man må god have mellemrum i midten af et bruger navn som fx: Glade svend
Avatar billede wqazr Nybegynder
16. august 2004 - 14:55 #1
hov glemte koden :S den er her:

if ($_POST['system'] == 'opret_bruger') {
include("menu_af.php");
$result = mysql_query("SELECT username FROM users WHERE username='" . $_POST['username'] . "'");
if(mysql_num_rows($result) > '0')
echo 'Der fandtes allerede en bruger med det ønskede brugernavn!';
else {
$password = $_POST['password'];
$password2 = $_POST['password2'];
if ($password != $password2) {
echo "De 2 koder er ikke ens!";
} else {

$kode = md5($_POST["password"]);

mysql_query("INSERT INTO users (username, password, email, ip, profil) VALUES ('$_POST[username]','$kode','$_POST[email]', '$_POST[ip]', '$_POST[profil]')") or die(mysql_error());
echo '';
}
}
exit;
}
Avatar billede exp Juniormester
16. august 2004 - 14:58 #2
<?php
$str = $_POST['streng'];
if(eregi("^[a-z0-9-]$",$str)) {
    echo "Korrekt";
} else{
    echo "Forkert";
}
?>

måske... ikke testet - er nybegynder til regular expressions :-)
Avatar billede exp Juniormester
16. august 2004 - 14:59 #3
Der er faktisk et spørgsmål her, der omhandler nøjagtig det samme:
www.exp.dk/spm/475477
Avatar billede exp Juniormester
16. august 2004 - 14:59 #4
og et svar
Avatar billede dennismp Nybegynder
16. august 2004 - 15:01 #5
har lavet en funktion for et par år siden:

function charsInRange( $range, $value ) {
    for( $i=0; $i<strlen($value); $i++ ) {
        $ok = false;
        for( $j=0; $j<strlen($range) && $ok == false; $j++ ) {
            if( $value[$i] == $range[$j] )
                $ok = true;
        }
        if( $ok == false )
            return false;
    }
    return true;
}

bruges sådan her:

if ($_POST['system'] == 'opret_bruger') {
include("menu_af.php");
$_POST['username'] = trim($_POST['username']);
$result = mysql_query("SELECT username FROM users WHERE username='" . $_POST['username'] . "'");
if(mysql_num_rows($result) > '0')
echo 'Der fandtes allerede en bruger med det ønskede brugernavn!';
else {
$password = $_POST['password'];
$password2 = $_POST['password2'];
if ($password != $password2) {
echo "De 2 koder er ikke ens!";
}elseif(! charsInRange( 'abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ1234567890 ',$value )) {
      echo 'Du må ikke have ulovlige tegn, i dit brugernavn';
}
else {

$kode = md5($_POST["password"]);

mysql_query("INSERT INTO users (username, password, email, ip, profil) VALUES ('$_POST[username]','$kode','$_POST[email]', '$_POST[ip]', '$_POST[profil]')") or die(mysql_error());
echo '';
}
}
exit;
}
Avatar billede wqazr Nybegynder
16. august 2004 - 15:02 #6
Vil gerne have en til at sætte det sammen med min kode .. det kan jeg nemlig ikke finde ud af :S
Avatar billede dennismp Nybegynder
16. august 2004 - 15:02 #7
det er måske også på tide jeg får set nærmere på den funktion :)
Avatar billede wqazr Nybegynder
16. august 2004 - 15:05 #8
Fatal error: Call to undefined function: charsinrange() in /customers/woox.dk/woox.dk/httpd.www/community/system_af.php on line 12

altså:

}elseif(! charsInRange( 'abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ1234567890 ',$value ))
Avatar billede wqazr Nybegynder
16. august 2004 - 15:07 #9
$value er hvist ikke angivet :S
Avatar billede dennismp Nybegynder
16. august 2004 - 15:07 #10
Jooo.. men hvis du ser øverst op i mit indlæg, der kan du finde funktionen - den skal også med.
Avatar billede detox Nybegynder
16. august 2004 - 15:09 #11
if(eregi("^[a-z0-9-]$",$str)) {

mangler lige æøå:

if(eregi("^[a-zæøå0-9]$",$str)) {
Avatar billede detox Nybegynder
16. august 2004 - 15:11 #12
Husk der er forskel på små og store bogstaver i funktionsnavne.
Avatar billede wqazr Nybegynder
16. august 2004 - 15:11 #13
Vil du ikke lige prøve at sætte det hele sammen?
Avatar billede dennismp Nybegynder
16. august 2004 - 15:17 #14
erstat $value med $_POST['username']
Avatar billede wqazr Nybegynder
16. august 2004 - 15:21 #15
kan ikke få det til at virke vil du ik nok prøve at sætte det sammen for mig?
Avatar billede wqazr Nybegynder
16. august 2004 - 15:44 #16
Kan du ik gøre det?
Avatar billede dennismp Nybegynder
16. august 2004 - 16:00 #17
<?php
if( count($_POST) > 0 ) {
    include("menu_af.php");

    $username = trim($_POST['username']);
    $password = $_POST['password'];
    $password2 = $_POST['password2'];
    $ip = $_POST['ip'];
    $profil = $_POST['profil'];

    $result = mysql_query("SELECT username FROM users WHERE username='$username'") or die(mysql_error());

    if(mysql_num_rows($result) > 0) {
        echo 'Der fandtes allerede en bruger med det ønskede brugernavn!';
    }else {
        if ($password != $password2) {
            echo "De 2 koder er ikke ens!";
        }elseif(!preg_match('#^[a-zæøå0-9 ]+$#',$username)) {
              echo 'Du må ikke have ulovlige tegn, i dit brugernavn';
        } else {
            mysql_query("INSERT INTO users (username, password, email, ip, profil) VALUES ('$username','$password','$email', '$ip', '$profil')") or die(mysql_error());
            echo 'Oprettet';
        }
    }
}
?>
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