juiste plaats van trim ()???

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bruno -

bruno -

19/05/2005 20:31:00
Quote Anchor link
Hi mensen in deze code wil ik voorkomen dan men zich twee keer onder dezelfde naam kan registrere dmv spaties te geven. kep een trim er in zitten maar dies blijkbaar verkeerd of op verkeerd plaats HELP?
thx alvast

------------------------------------------------------------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
include("inc_connect.php");
$gebruikersnaam = $_POST["gebruikersnaam"];
if(isset($_POST['Submit'])) {
 if($_POST['gebruikersnaam'] != "" AND $_POST['email'] != "" AND $_POST['voornaam'] != "" AND $_POST['achternaam'] != "" AND $_POST['geboortedatum'] != "" AND $_POST['homepage'] != "" AND $_POST['wachtwoord'] != "") {
   if($_POST['wachtwoord'] == $_POST['wachtwoord2']) {    
    $sql = "SELECT * FROM users WHERE Gebruikersnaam='".$_POST['gebruikersnaam']."'";
    $resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
    if(mysql_num_rows($resultaat) == 0) {
        $gebruikersnaam = trim(chop($_POST["gebruikersnaam"]));
     $md5pass = ($_POST['wachtwoord']);
     $insert = "INSERT INTO users (Gebruikersnaam , Email , Voornaam , Achternaam , Geboortedatum , Homepage , Wachtwoord) VALUES ('".$_POST['gebruikersnaam']."','".$_POST['email']."','".$_POST['voornaam']."','".$_POST['achternaam']."','".$_POST['geboortedatum']."','".$_POST['homepage']."','".$md5pass."')";
     mysql_query($insert) OR die ("Kon geen verbinding maken met MySQL");
     $tekst = "Thanks for signing up. You can now <a href=\"index.php\">sign in</a>.";
        echo ($tekst);
    
    }
else{    
    $tekst2 = "<b>$gebruikersnaam</b> is already in use. Please try another nickname.";
    echo ($tekst2);
    }
   }
else{
    echo "Your passwords don't match.";
   }
  }
else{
   echo "You have to fill all fields please.";
  }
}
else{ }
?>
 
PHP hulp

PHP hulp

24/11/2024 06:30:21
 
Martijn B

Martijn B

19/05/2005 20:55:00
Quote Anchor link
Waarom doe je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$gebruikersnaam
= trim(chop($_POST["gebruikersnaam"]));
?>


Want hier weet je al dat $_POST["gebruikersnaam"] niet in de database zit. Je moet denk ik gewoon voorkomen dat gebruikers spacies kunnen invoeren.
Gewijzigd op 19/05/2005 20:56:00 door Martijn B
 
Bruno -

bruno -

19/05/2005 21:05:00
Quote Anchor link
jah maar hoe dan? :S
en trouwens echt verstand van php heb ik nie :P
ik doe maar wat , er staat niet voor niets newbie onder mijnnaam
Gewijzigd op 19/05/2005 21:07:00 door bruno -
 
Alfred -

Alfred -

19/05/2005 21:11:00
Quote Anchor link
Quote:
include("inc_connect.php");
$gebruikersnaam = $_POST["gebruikersnaam"];


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
include("inc_connect.php");
$gebruikersnaam = str_replace(" ", "", $_POST["gebruikersnaam"]);
# Dit zal alle spaties eruit filteren...
?>


Je kan trouwens ook een extra account aanmaken door hoofdletters... Kan je vermijden door elke gebruikersnaam in lowercase te saven...

Tip: strtolower();
 
Bruno -

bruno -

19/05/2005 21:20:00
Quote Anchor link
hij blijft gewoon registreren :s
 
- SanThe -

- SanThe -

19/05/2005 22:10:00
Quote Anchor link
Als je doet wat Rafael zegt moet je wel alle $_POST["gebruikersnaam"] vervangen door $gebruikersnaam.
 
Alfred -

Alfred -

19/05/2005 22:16:00
Quote Anchor link
SanThe:
Als je doet wat Rafael zegt moet je wel alle $_POST["gebruikersnaam"] vervangen door $gebruikersnaam.


Excuses, had niet verder gekeken...

Of simpelweg zo doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
include("inc_connect.php");
$_POST["gebruikersnaam"] = str_replace(" ", "", $_POST["gebruikersnaam"]);
# Dit zal alle spaties eruit filteren...
?>
 
- SanThe -

- SanThe -

19/05/2005 22:20:00
Quote Anchor link
Kan ook.
 
Martijn B

Martijn B

19/05/2005 22:20:00
Quote Anchor link
Je zou het ook met een regular expression kunnen doen. Hieronder mag een gebruikers naam alleen bestaan uit A t/m Z, a t/m z, 0 t/m 9, _ en -.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$gebruikersnaam
= 'afcdsfjk';

if( preg_match('#^[A-Za-z0-9_-]+$#', $gebruikersnaam, $match) ){

  echo 'Je gebruikernaam is goed!';

}

else{
  echo 'In je gebruikernaam zitten verkeerde tekens!';
}

?>
Gewijzigd op 19/05/2005 22:24:00 door Martijn B
 
Bruno -

bruno -

19/05/2005 22:29:00
Quote Anchor link
pr0 manne hij werkt :P
Thx :D:D:D
 
Mitch X

Mitch X

19/05/2005 23:38:00
Quote Anchor link
@Martijn, $match is niet echt nodig, en PECR kennen ook zogenaamde pattern modifiers :)
Dus ipv '#^[A-Za-z0-9_-]+$#', '#^[A-Z0-9_-]+$#i' voor case insensitive.
 
Eris -

Eris -

19/05/2005 23:56:00
Quote Anchor link
Daarnaast de kolom gebruikers uniqe maken. Lost alle problemen op :)
 
Martijn B

Martijn B

20/05/2005 00:06:00
Quote Anchor link
Mitch:
@Martijn, $match is niet echt nodig, en PECR kennen ook zogenaamde pattern modifiers :)
Dus ipv '#^[A-Za-z0-9_-]+$#', '#^[A-Z0-9_-]+$#i' voor case insensitive.


Ik kom er nu pas acher dat match idd optioneel is.
Gewijzigd op 20/05/2005 00:08:00 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.