# PHP - Datenbank und Umlaute probleme



## bygones (17. Okt 2007)

HI,

ich hoffe ein PHPler kann mir helfen:

ich versuche ein login mit einer Datenbank zu realisieren.

mein php script schaut in etwa so aus

```
$login = $_POST['login'];
$password = $_POST['passwort'];
$query = "SELECT * FROM xyz WHERE benutzer = '$login' AND passwort='$password'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0) {
```

In der Datenbank gibt es den eintrag

Mario.Müllermann

wenn ich mich nun mit Mario.Müllermann einlogge, so bekomm ich bei mysql_num_rows($result) 0.

lass ich mir $query ausgeben und paste dies in phpMyAdmin erhalte ich den entsprechenden eintrag zurück.

mach ich aus Mario.Müllermann -> Mario.Muellermann so klappt alles wunderbar, d.h. irgendwo muss das mit dem ü probleme geben.

Nur ich weiss einfach nicht wo und wie ?
ich habe auch schon mysql_escape_string probiert, was aber nix änderte.

Hat jemand eine Idee ?

danke euch

PS: aus einem anderen forum kam auch der Vorschlag

```
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
```
vorher zu schreiben, aber das half auch nicht... die Umlaute werden ja korrekt umgesetzt scheinbar in MySQL - phpMyAdmin gibt ja was zurück... 

*verzweifelt*


----------



## maki (17. Okt 2007)

Ich hab 0 Ahnung von PHP, aber sollte das ü nicht als & vom Browser zum Server geschickt werden?


----------



## Guest (17. Okt 2007)

Wenn du einen Wert mit einem Umlaut in deine DB speicherst, ist dann der Umlaut in der DB korrekt? Also nicht wenn du diesen wieder mittels PHP ausgibst, sondern wenn du direkt by phpMyAdmin nachsiehst


----------



## AlArenal (17. Okt 2007)

Anonymous hat gesagt.:
			
		

> Also nicht wenn du diesen wieder mittels PHP ausgibst, sondern wenn du direkt by phpMyAdmin nachsiehst



Gibt *php*MyAdmin den Inhalt etwa nicht mittels PHP aus? 

Korrekterweise müsste er das über den Kommandozeilen-Client prüfen, aber damit ist es bei Shared Hosting natürlich ürre...


----------



## Roar (17. Okt 2007)

deathbyaclown hat gesagt.:
			
		

> ```
> $login = $_POST['login'];
> $password = $_POST['passwort'];
> $query = "SELECT * FROM xyz WHERE benutzer = '$login' AND passwort='$password'";
> ...



oh oh 
http://xkcd.com/327/


----------



## bygones (18. Okt 2007)

und ? 

also hier auch keine idee ?


----------



## maki (18. Okt 2007)

Mein Tip ist leider nciht mehr lesbar, sollte heisse: ü wird zu & u u m l ;


----------



## Guest (18. Okt 2007)

AlArenal hat gesagt.:
			
		

> Anonymous hat gesagt.:
> 
> 
> 
> ...



Nein, scheinbar nicht. phpMyAdmin hat neben dem was in reinem php möglich ist noch andere Features. Wenn du dich bei phpMyAdmin mal als root einloggst wirst du das sehen. Außerdem hatte ich schonmal ein ähnliches Problem, nur lag es da daran wie cihd die Daten gespeichert habe.

Normalerweise brauch man nichtmal den UTF-Blub im Source anzugeben, vorrausgesetzt das Tabellenfeld hat die richtige Konvertierungseinstellung


----------



## AlArenal (18. Okt 2007)

Ich kenne und nutze phpMyAdmin seit vielen Jahren. Da es aber komplett in PHP entwickelt ist, kann es schwerlich etwas anderes als PHP-Ausgabefunktionen zur Ausgabe nutzen. Vielleicht solltest du besser dort mal einen Blick in die Sourcen werfen?


----------

