Sonder sowie Leerzeichen im Nick unterbinden

DasLicht

Mitglied
Hallo Leute,

wie bekomme ich es hin Sonderzeichen sowie leerzeichen bei der Registrierung als Fehler auszugeben?

Hier mal ein ausschnitt aus meiner register.php:

PHP:
mysql_connect( "$db_host", "$db_user", "$db_pass")  or  die("Konnte Datenbankverbindung nicht herstellen");
@mysql_select_db( "$db_name")  or  die("Datenbank nicht gefunden");

$userpass = md5($password);

$id_auslesen = mysql_query("SELECT id FROM usertable ORDER BY id DESC");

$nr=mysql_fetch_assoc($id_auslesen);
$neue_id= $nr[id]+1; 


if($user=="new"){
   if(empty($nick) || empty($email) || empty($password) || empty($plz)|| empty($wohnort))
   {
      echo "<tr><td><center>Bitte füllen Sie alle Felder aus!</center></tr></td>";
   }
   else
   {
	if (mysql_num_rows ($result) > 0) { 

  		echo "<tr><td><center>Benutzername leider schon vergeben!</center></tr></td>";
	} else { 

  		$sql = "INSERT INTO `usertable` 
				(
					id, 
					nick, 
					passwd, 
					email, 
					geschlecht,  
					wohnort, 
					plz,
				) 
			VALUES 
				(
					'$neue_id', 
					'".$nick."', 
					'$userpass', 
					'$email',
					'$geschlecht', 
					'$wohnort, 
					'$plz'
				)"; 
		
		$result = mysql_query($sql) OR die(mysql_error());
		echo "<tr><td><center>Vielen dank für Ihre Registrierung</center></tr></td>";

  		}  
   	}
}

MFG DasLicht
 
Hallo,

also buchstaben von A-Z und Zahlen von 0-9, aber keine Sonderzeichen wie @§$%&äöü usw *g*.

Hoffe ihr versteht was ich meine.


MFG DasLicht
 
Probier mal Folgendes:
PHP:
<?php

	…
	if( preg_match_all('/[^a-zA-Z0-9]/', $string, $matches) ) {
		$matches = $matches[0];
		$count = count($matches);
		echo sprintf(
			'<p>Ihre Eingabe <tt>%s</tt> besitzt %d unzulässige%s Zeichen: <tt>%s</tt>.</p>',
				htmlspecialchars($string),
				$count,
				$count > 1 ? '' : 's',
				implode('</tt>, <tt>', array_map('htmlspecialchars', array_unique($matches)))
		);
		echo '<p>Bitte korrigieren Sie Ihre Eingabe.</p>';
	}
	…

?>
Falls du die Fehlerbehandlung nicht so komplex haben möchtest, reicht auch das preg_match_all()-Konstrukt aus.
 
Dieser Code sollte Deinen Wünschen entsprechen:

Code:
<?

$text = "Hallo@";

if(preg_match("/[^a-zA-Z0-9]/",$text))
{
print("Name ist unzulässig!");
}
else
{
print("Name ist zulässig!");
}

?>
 
Hallo,

ich danke euch beiden eliasb und Gumbo, eure Beispiele funktionieren einwandfrei.

Danke für die Hilfe
MFG DasLicht
 
Zurück