PHP Merkwürdiges Warning durch $_POST

ismon

Lieutenant
Registriert
Dez. 2006
Beiträge
720
Ich bekommen aktuell folgende Warnings:

Code:
Warning: Unexpected character in input: '' (ASCII=27) state=1 in /is/htdocs/wp1080741_GC19W3L3CF/sis/fileUploadpogress.php on line 33

Warning: Unexpected character in input: '' (ASCII=27) state=1 in /is/htdocs/wp1080741_GC19W3L3CF/sis/fileUploadpogress.php on line 34

Warning: Unexpected character in input: '' (ASCII=27) state=1 in /is/htdocs/wp1080741_GC19W3L3CF/sis/fileUploadpogress.php on line 35

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /is/htdocs/wp1080741_GC19W3L3CF/sis/fileUploadpogress.php:33) in /is/htdocs/wp1080741_GC19W3L3CF/sis/fileUploadpogress.php on line 2

Ich habe zwei Dateien.

Die ersten Datei enthält folgendes:
Code:
	<form name="Formular" action="fileUploadpogress.php" onsubmit="return chkFormular()" method="post" enctype="multipart/form-data" > 
	
	<table>
                <tr>
                    <td><h1>Dokument</h1></td>
                    <td></td>
                </tr>
                <tr>
                    <td>Name:</td>
                    <td><input type="text" name="filename" size="47"></td> 
                </tr>
                <tr>
                     <td>Beschreibung:</td> 
                     <td> <textarea name="filebeschreibung" cols="35" rows="5"></textarea></td>
                </tr>
                <tr>
                     <td>F&uuml;r:</td> 
                     <td>
                     	<select name="sichtbar" size="4" style="width:263px" multiple> 
  						<option selected value="alle">alle</option> 
  						<option  value="alle">Klasse1</option>
  						<option  value="alle">Klasse2</option>

						</select>  
                     
                     </td>
                </tr>
                <tr>
                     <td>Datei:</td> 
                     <td><input type="file" name="datei"></td>
                </tr>
                <tr>
                     <td></td> 
                     <td></td>
                </tr>
                <tr>
                     <td></td> 
                     <td><input type="submit" value="Hochladen"></td>
                </tr>
                
            </table>

	</form>

Die Datei "fileUploadpogress.php" sollte das Ausgewählte File auf in ein Verzeichnis hochladen und alle Daten in einer Datenbank erfassen:
Code:
<?php
session_start();


if (isset ($_SESSION['username']) AND isset($_SESSION['password']) AND isset($_SESSION['rechte']))
{
    $username=$_SESSION['username'];
    $password=$_SESSION['password'];
    $rechte=$_SESSION['rechte'];
    
    if($rechte==1)
    {       
        echo "Willkommen $username <br>";
        echo "<a href=\"logout.php\">abmelden</a>";
    }else
    {
        echo "Zugriff verweigert: <a href=\"index.php\">zum Login</a>";
        session_destroy();
        exit;  
    }
    
}else
{
    echo "Zugriff verweigert: <a href=\"index.php\">zum Login</a>";
    session_destroy();
    exit;
}

$originalFilename=$_FILES['datei']['name'];
$originalFiletype=$_FILES['datei']['type'];
$sizeFile=$_FILES['datei']['size'];

$beschreibungFile=$_POST["filebeschreibung"];
$nameFile=$_POST["filename"];
$rechtFile=$_POST["sichtbar"];

if ($originalFiletype=="application/pdf" OR $originalFiletype=="application/msword" OR $originalFiletype=="application/msexcel")
{

$verbindung = mysql_connect ("xxxxx","xxxxx", "xxxxx") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
mysql_select_db("xxxxx") or die ("Die Datenbank existiert nicht.");

$abfrage = "INSERT INTO Dokumente (Pfad,Beschreibung,Groesse,Typ,Recht,Name) VALUES ('docs/$originalFilename','$beschreibungFile','$sizeFile','$originalFiletype','$rechtFile','$nameFile')";

$ergebnis = mysql_query($abfrage);
echo $abfrage;


move_uploaded_file($_FILES['datei']['tmp_name'], "docs/$originalFilename"); 
}else
{
echo "Dateityp nicht unterstützt! Bitte nur PDF/Word/Excel hochladen";
}


?>



Wenn ich über folgenden Code die Daten aus dem Formularen abgreifen möchte erhalte ich die oben stehende Warnung:

$beschreibungFile=$_POST["filebeschreibung"];
$nameFile=$_POST["filename"];
$rechtFile=$_POST["sichtbar"];

Der Code wird aber korrekt ausgeführt. Also der Upload geht und der Eintrag in der DB geht auch.


Wenn ich die $_POST Einträge rausnehmen kommt auch keine Warnung.

Hat einer ne Idee was ich falsch mache (bin Anfänger)?

gruß
Simon
 
Was machen denn Die Pfeile zwischen $_POST und ["filebeschreibung"] ? die gehören da nicht hin
 
Einfach mal eine Vermutung von mir.
Bei ersten Aufruf des Formulars sind natürlich noch keine Werte eingetragen.
Dann ist die Variable leer und es könnte zu dem Fehler kommen.

Das einfach vorher Abfragen und der Fehler sollte verschwinden.

if(isset($_POST['filebeschreibung']))
{
$beschreibungFile=$_POST["filebeschreibung"];
$nameFile=$_POST["filename"];
$rechtFile=$_POST["sichtbar"];
}

Alternativ versuch mal nur ein ' und kein ". Aber keine Ahnung was davon jetzt richtiger wäre. :)
 
versuch mal einfach $_POST["name"] also den Pfeil weg
 
sorry ich steh gerade aufem Schlauch. Welchen Pfeil meint Ihr?
 
Code:
$beschreibungFile=$_POST["filebeschreibung"];
$nameFile=$_POST["filename"];
$rechtFile=$_POST["sichtbar"];
Da ist irgend ein Zeichen dazwischen. Mach das weg.
 
Code:
$beschreibungFile=$_POST["filebeschreibung"];
$nameFile=$_POST["filename"];
$rechtFile=$_POST["sichtbar"];
das ist das problem. Das ascii-zeichen 27 ist dort fehl am platze. Ersetze einfach die 3 zeilen mit:

$beschreibungFile=$_POST["filebeschreibung"];
$nameFile=$_POST["filename"];
$rechtFile=$_POST["sichtbar"];


MfG
Damon
 
Zuletzt bearbeitet:
Hm als erstes: mit deinem Code geht es!
Als zweites: Ich kapier immer noch nicht warum, ich kann kein Unterscheid erkennen. Wo verwende ich das Ascii Zeichen 27 und woran habt ihr das erkannt?

Besten Dank!
 
Deshalb
 

Anhänge

  • code.png
    code.png
    25,2 KB · Aufrufe: 377
mh, vielleicht zeigt dein PC das ja nicht richtig an...
hinter dem $POST und vor den eckigen Klammern ist das zeichen, auf dem bild hier das kästchen:
ascii270jh4.png


Welchen editor verwendest du denn? Ich könnte Eclipse+php plugin oder Notepad++ empfehlen.

MfG
Damon
€dit: wie immer zu laaangsam :P
 
Hm ok ich kann das bei mir weder in dem Code sehen den ich hier ins Forum geschrieben habe noch in meinem Editor. Ich verwende CODA aufem MAC.
 
Der Mac verschluckt ein wichtiges Sonderzeichen, so so. Vielleicht anderen Zeichensatz mal probieren?
 
Zurück
Oben