Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  7 868
Hei, jeg lurte på om noen kunne hjelpe meg med bokstav-sjekk før registrering, altså det jeg vil at funksjonen sjekker om navnet ikke innholder spesielle tegn, kun følgende tegn: _ - ( ) [ ] , . 0-9 og a-z, hvordan får jeg dette til dersom jeg har koder under:

Kode

function do_Register(){
          global $db, $prefix, $username, $password, $password2, $email, $fullname, $sex, $usercolour, $user_taken_err, $email_taken_err;
          global $site_name, $site_email, $site_url;
          
          //this function will check fields incase of javascript not working.
          if((!$username) || (!$password) || (!$password2) || (!$email)){

                if(trim(empty($username))){

                }
                if(empty($password)){

                }
                if(empty($password2)){

                }
                if(trim(empty($email))){

                }
                //print the error message and load the form.

include("header.php");
				register_form();
				
                echo "<table width=\"386\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\">
  <tr align=\"center\">
    <td class=\"error\">"._ERROR_PLEASE_FILL_FIELDS."</td>
  </tr>
</table>";
                
include("footer.php");
                exit();
          }
          //this code will check if the 2 passwords are match or not.
          if($password != $password2){
                //print the error message and load the form.

include("header.php");
                register_form();
                echo "<table width=\"386\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\" >
  <tr align=\"center\">
    <td class=\"error\">"._ERROR_PASSWORD_DOESNT_MATCH."</td>
  </tr>
</table>";
include("footer.php");

                exit();
          }
          //this code will check if the email is correct or not
          if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
                //print the error message and load the form.

include("header.php");
                register_form();
                echo "<table width=\"386\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\" >
  <tr align=\"center\">
    <td class=\"error\">"._ERROR_INVALID_EMAIL."</td>
  </tr>
</table>";
include("footer.php");
                exit();
          }
Takk for svar!
19.........bokstaver
bavarai's Avatar

Kode

<?php
$input = "e/&///0799";
preg_match("/^[a-z0-9]+$/i", $input);
?>
Sist endret av comi; 27. august 2007 kl. 23:34.
Trådstarter
74 0
skal koden se slik ut, siden input-navnet er username???

Kode

$username = "e/&///0799";  //Skjønner ikke hva den er for, de tegnene!
preg_match("/^[a-z0-9]+$/i", $username); 

                echo "Feil: Brukernavnet innholder spesielle tegn!"; 

                exit(); 
          }
m0b
m0b's Avatar
DonorAdministrator
Vel, du må jo i det minste kjøre det inn i en if-statement slik at du kan sjekke den, og ikke bare kjøre funksjonen uten mål og mening.
19.........bokstaver
bavarai's Avatar
$input er posten som kommer til scriptet.
Trådstarter
74 0
skjønte ikke helt! Tror dere den funker nå?

Kode

if(!eregi("/^[a-z0-9]+$/i", $username)){ 

echo "Feil: Brukernavnet innholder spesielle tegn!"; 

                exit(); 
          }
Sist endret av -AXMEDUS-; 27. august 2007 kl. 23:55.
m0b
m0b's Avatar
DonorAdministrator
Sikkert. Men altså, globale variabler stammer fra helvete og skal ikke under noen omstendigheter benyttes. Variabler tilhører innenfor et scope av en grunn! Pass variabler igjennom klasser eller som funksjonsparametre.
Trådstarter
74 0
TUSEN TAKK! |d13m0b & comi , Funket med litt ekstra endringer!
Sist endret av -AXMEDUS-; 28. august 2007 kl. 00:31.