Sonderzeichen werden nicht angezeigt

Leider ist immernoch der Fehler, hier nochmal das Skript wie ich es jetzt von Ihnen habe
PHP:
<?php
echo '<p>';
    $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/';
    $filetyparr = array('.jpg', '.rar', '.gif', '.GIF');

    if (isset($_FILES['datei']))
    {
        $filetyp = preg_match('~[a-z0-9].*?[^\.](\.\w{2,})~i', $filename, 

$s);
        $newfilename = md5(uniqid(rand(),false)).$s[1];
        $datei = $upload_dir.$newfilename;  

        $error = '';

        if( file_exists( $datei ) )
        {
            $error .= '<b>Dateiname bereits vorhanden!</b> Die Datei 

wurde unter '.htmlspecialchars( $filename ).' abgespeichert!<br />';
            $err = 1;
        }

        if( !in_array( substr( $s[1],1 ),$filetyparr ) )
        {
            $error .= 'Die Dateiendung entspricht nicht den 

Upload-Regeln!<br />';
            $err = 1;
        }

        if( ( empty( $err ) || $err != 1 ) && move_uploaded_file( 

$_FILES['datei']['tmp_name'], $datei ) )
        {
            echo '<p style="color:#CD7054">Sie haben 

soebend<br>http://hundeschule-redbone.de/upload/<strong>'.$newfilename.'<

/strong> 
                    <br>erfolgreich hochgeladen.<a 

href="/upload/'.$newfilename.'">Voransicht</a><br>Zum Einfügen ins Forum 

können  Sie auch folgende 
                    Cods benutzen:<br><hr>[ img]  

http://hundeschule-redbone.de/upload/'.$newfilename.'
                    

[ /img]<br><hr>[grafik]http://hundeschule-redbone.de/upload/'.$newfilename

.'[/grafik]';
        }
        else
        {
            echo '<p style="color:#c00">Ihr Upload konnte wegen einem 

Tempor&auml;ren Fehler <strong>nicht</strong> hochgeladen werden!</p><br 

/>'. $error;
            }
        }  
?>
 
Schreibe mal nach:
PHP:
    if (isset($_FILES['datei']))
    {
folgendes dazu:
PHP:
$filename = $_FILES['datei']['tmp_name'];
 
Ehrlich gesagt kann ich mir das nicht mehr weiter mit ansehen... wie wäre es wenn du mal selber auf Fehlersuche gehst? Wie wäre es z.B. wenn du alle Variablen Schritt für Schritt mit print_r(), var_dump() o.ä. ausließt und schaust, ob auch alle Variablen einen/den richtigen Inhalt zugewiesen bekommen? Wenn das der Fall ist prüfst du die ganzen Schleifen auf ihre Argumente und ermittelst mit echo "test"; welche Schleife, wann ausgeführt bzw. ob sie richtig ausgeführt wird.
Du verlässt dich viel zu sehr auf Andere (und machst es dir ganz schön einfach). Wir machen zum Teil nichts anderes, als ich oben geschrieben habe. Mit der Zeit entwickelt man ein Auge für typische Fehler und macht dadurch weniger.
Das mag vielleicht gemein klingen, doch ich glaube kaum, dass es etwas bringt, wenn dir jetzt jemand die Lösung sagt. Vielleicht tue ich dir unrecht, doch ich glaube du würdest den Code einfach übernehmen und daraus nichts/wenig lernen. Das nächste Mal stehst du mit einem ähnlichen Problem wieder hier. Du möchtest dich doch weiter entwickeln oder nicht? Und sooo schwer ist so eine Fehlersuche nun wirklich nicht -> dein Code ist ja noch sehr überschaubar ;) also nur Mut beim selber Suchen!

Und sollte es wirklich nicht klappen, könntest du z.B. schreiben bis wohin das ganze funktioniert und an welcher Schleife, Variable der Wurm drin ist ^^ bei so eine (präzisen) Anfrage würdest du dich hier vor Antworten kaum retten können ;)
 
Können Sie mir denn wohl sagen wie ich dann vorgehe, wie geschrieben kenne ich mich mit php nicht so wirklich aus. Hatte schon gegoogled nach einen Parser, aber komme da auch nicht wirklich mit klar. Währe schön wenn mir jemand für die Fehlersuche hilfe gibt wie man da vorgeht.
 
Ich würde hier anfangen:
PHP:
    if (isset($_FILES['datei']))
    {
        $filetyp = preg_match('~[a-z0-9].*?[^\.](\.\w{2,})~i', $filename, 

$s);
        $newfilename = md5(uniqid(rand(),false)).$s[1];
        $datei = $upload_dir.$newfilename;  

        $error = '';
echo 'Test'; und du siehst, ob dieser if-Block überhaupt ausgeführt wird.
Und so machst du immer weiter. Einen if-Block testen mit echo.
Dann im if-Block lässt du dir alle relevanten Variablen/Arrays ausgeben,
im Code oben zum Beispiel print_r( $datei );
usw. bis du einen Fehler bzw eine unerwünschte Ausgabe gefunden hast.
 
Nur am Rande:
Deine RegEx sucht nur nach kleingeschriebenen Buchstaben.
Wenn deine Datei Evanzo.GIF heißt dann wird nur vanzo.GIF gefunden.
Code:
[a-zA-Z0-9].*?[^\.](\.\w{2,})
Sollte Abhilfe schaffen :)
 
Nur am Rande:
Deine RegEx sucht nur nach kleingeschriebenen Buchstaben.
Wenn deine Datei Evanzo.GIF heißt dann wird nur vanzo.GIF gefunden.
Code:
[a-zA-Z0-9].*?[^\.](\.\w{2,})
Sollte Abhilfe schaffen :)

Danke für die Hilfe, habe es mal eingebaut. Den Fehler hat es halt nicht weck gemacht aber werde dann mal es so versuchen wie Loomes es mir schrieb.
 
Zurück