# Eingabe Überprüfen nach ÄÖÜ und GROSS und KLEINSCHREIBUNG



## chrisbhv (15. November 2004)

Hallo,

Ich habe ein kleines Bildgaleriescript gebaut, wo die anzeigefunktion schon funktioniert - jedoch nicht die erstelleungsfunktion.

Hier das Problem:

Ich möchte das der User einen Ordner erstellt, jedoch das er KEIN ÄÖÜ dort eingeben und es MUSS ALLES KLEINGESCHRIEBEN sein!

Ich habe schon viele sachen durchgesucht und auch schon einiges davon probiert, jedoch leider ohne Erfolg 

Ich hoffe nun darauf, dass jemand mir vielleicht einen Ansatz geben kann wie man soetwas vernünftig gestaltet und vielleicht hat jemand soetwas schonprogrammiert.. wo ich mir dann die Struktur anschauen könnte und es für miene Bedürfnisse umbearbeiten kann.....

Vielen dank

christian


----------



## Zatic (15. November 2004)

kleinschreibung ist ja recht einfach, lass ihn eingeben was er will und wandel es in Kleinschreibung um, so:

```
$s = strtolower($grosz);
```


Das mit den Umlauten kannst du mit Regex finden, zB so:


```
if (preg_match('/[üöäÜÖÄ]/', $eingabe))
```

Schlagt mich wenn das jetzt nicht ganz richtig war, aber ich denke mal es geht so. Anstatt Regex kannst du auch String Funktionen nehmen, zB strpos(), ist umstaendlicher, kann dafuer aber schneller sein.


```
if (false !== strpos('ö', $eingabe))
```


----------



## chrisbhv (15. November 2004)

Super, danke erstmal für deine Antwort - jedoch habe ich glaube ich gerade ein Problem in meinem Gedankengang.....

ich habe das Formular per POST mit $dir an den case geschickt wo dann der case add_dir dann das verzeichnis anlegt und zwar so:


```
<?
case "add_dir":

$dir= strtolower($grosz); 

$ordner = "$dir";
$maindir  = "bildgalerie";
$tmb = "tmb";

		
		umask(0000);
		mkdir("$maindir/$ordner", 0777); 
		mkdir("$maindir/$ordner/$tmb", 0777);

		echo "Ordner:\"<B>$dir</B>\" wurde Erfolgreich erstellt!";
break;

?>
```

Das klappt jedoch nicht, 
BSP:
Ich wollte dern Ordner HHHH anlegen und er sagt in der Zeile:
mkdir("$maindire/$ordner", 0777); 
ist ein fehler, wenn ich mir dann die Ausgabe ansehe, welchen ordner er erstellt hat (folgende Zeile: echo "Ordner:\"<B>$dir</B>\" wurde Erfolgreich erstellt!"; )
steht nur:

Ordner:"" wurde Erfolgreich erstellt! 

weiß leider gerade nicht weiter...

Danke
Chris


----------



## saila (15. November 2004)

dein Problem liegt am path.

Siehe hierzu http://de.php.net/manual/de/function.mkdir.php und http://de.php.net/manual/de/function.dirname.php


----------



## saila (15. November 2004)

Zatic hat gesagt.:
			
		

> kleinschreibung ist ja recht einfach, lass ihn eingeben was er will und wandel es in Kleinschreibung um, so:
> 
> ```
> $s = strtolower($grosz);
> ...



Hier eine wichtige Info zu preg_match:
http://de.php.net/manual/de/function.preg-match.php

Schneller und besser ist:
strstr();
eregi_replace();
str_replace();
preg_replace();


----------



## chrisbhv (15. November 2004)

Hallo Salia,

Danke erstmal für Deine Antworten .....

Ich habe es nun so gelöst:


```
<?

case "add_dir":


#Variablenübergabe
$ordner = "$dir";


#Nach ÄÖÜ suchen und ersetzen
	$suchmuster[0] = "/ä/";
	$suchmuster[1] = "/ö/";
	$suchmuster[2] = "/ü/";

	$suchmuster[3] = "/A/";
	$suchmuster[4] = "/B/";
	$suchmuster[5] = "/C/";
	$suchmuster[6] = "/D/";
	$suchmuster[7] = "/E/";
	$suchmuster[8] = "/F/";
	$suchmuster[9] = "/G/";
	$suchmuster[10] = "/H/";
	$suchmuster[11] = "/I/";
	$suchmuster[12] = "/J/";
	$suchmuster[13] = "/K/";
	$suchmuster[14] = "/L/";
	$suchmuster[15] = "/M/";
	$suchmuster[16] = "/N/";
	$suchmuster[17] = "/O/";
	$suchmuster[18] = "/P/";
	$suchmuster[19] = "/Q/";
	$suchmuster[20] = "/R/";
	$suchmuster[21] = "/S/";
	$suchmuster[22] = "/T/";
	$suchmuster[23] = "/U/";
	$suchmuster[24] = "/V/";
	$suchmuster[25] = "/W/";
	$suchmuster[26] = "/X/";
	$suchmuster[27] = "/Y/";
	$suchmuster[28] = "/Z/";
	
	$suchmuster[29] = "/ /";


	$ersetzungen[0] = "ae";
	$ersetzungen[1] = "oe";
	$ersetzungen[2] = "ue";

	$ersetzungen[3] = "a";
	$ersetzungen[4] = "b";
	$ersetzungen[5] = "c";
	$ersetzungen[6] = "d";
	$ersetzungen[7] = "e";
	$ersetzungen[8] = "f";
	$ersetzungen[9] = "g";
	$ersetzungen[10] = "h";
	$ersetzungen[11] = "i";
	$ersetzungen[12] = "j";
	$ersetzungen[13] = "k";
	$ersetzungen[14] = "l";
	$ersetzungen[15] = "m";
	$ersetzungen[16] = "n";
	$ersetzungen[17] = "o";
	$ersetzungen[18] = "p";
	$ersetzungen[19] = "q";
	$ersetzungen[20] = "r";
	$ersetzungen[21] = "s";
	$ersetzungen[22] = "t";
	$ersetzungen[23] = "u";
	$ersetzungen[24] = "v";
	$ersetzungen[25] = "w";
	$ersetzungen[26] = "x";
	$ersetzungen[27] = "y";
	$ersetzungen[28] = "z";
	
	$ersetzungen[29] = "_";

	
	#Zusammensortieren von "suchmuster" und "ersetzungen" 
	ksort($ersetzungen);
	ksort($ersetzungen);
	
	#ergebnis in variable speichern
	$ordner_check = preg_replace($suchmuster, $ersetzungen, $ordner);


$maindir  = "bildgalerie";
$tmb = "tmb";

		umask(0000);
		mkdir("$maindir/$ordner_check", 0777); 
		mkdir("$maindir/$ordner_check/$tmb", 0777);

		echo "Ordner:  \"<B>$ordner_check</B>\" wurde Erfolgreich erstellt!";
break;
?>
```

ist GARANTIERT nicht die schönste lösung - jedoch funktioniert sie gerade für den moment.... vielleicht hat jemand bezüglich der kleinschriebung noch eine andere Variante.

Danke 
Chris


----------

