Probleme beim Formular versenden

Cemil

Erfahrenes Mitglied
Hi,
habe ein Formular erstellt, mit dem man Bilder hochladen und in eine Datenbank abspeichern kann. Das klappt auch ganz gut. Habe nur ein einziges Problem:

Nachdem die Datei erfolgreich hochgeladen wurde, möchte ich das oberhalb vom Formular die Meldung "Daten wurden hinzugefügt!" erscheint, aber das klappt nicht. Woran könnte das liegen?

Hier der Code:

PHP:
<?php
if ($submit) {

    $dbcnx = mysql_connect("localhost", "root", "");
    mysql_select_db("filestore");

    //Benutzer ruft eine Datei ab
    $sql = "SELECT company, name, address, city, country, pcode, tel, fax, email, url, FileName, MimeType, FileData FROM filestore WHERE ID = '$id'";
    $result = @mysql_query($sql);
    if ($result) {
        echo("<p>Daten wurden hinzugefügt!</p>");
    } else {
        echo("<p>Fehler beim hinzufügen der Daten! " . mysql_error() . "</p>");
    }

    // Ausschliessen, dass eine Datei kein Upload ist
    if (!is_uploaded_file($uploadfile))
        die("$uploadfile ist keine hochgeladene Datei!");
        
    // Datei zum binären Einlesen öffnen ("rb")
    $tempfile = fopen($uploadfile,"rb");
    
    // Gesamte Datei in den Arbeitsspeicher einlesen,
    // wobei die PHP-Funktion filesize benutzt wird,
    // um die Dateigrösse zu ermitteln.
    $filedata = fread($tempfile,filesize($uploadfile));
    
    // Einfügen in die Datenbank vorbereiten, indem
    // vor Sonderzeichen Backslashes gesetzt werden.
    $filedata = addslashes($filedata);
    
    // SQL-Anfrage formulieren.
    $sql = "INSERT INTO filestore SET
        company = '$company',
        name = '$name',
        address = '$address',
        city = '$city',
        country = '$country',
        pcode = '$pcode',
        tel = '$tel',
        fax = '$fax',
        email = '$email',
        url = '$url',
        FileName = '$uploadfile_name',
        MimeType = '$uploadfile_type',
        Description = '$desc',
        FileData = '$filedata'";
        
    // Einfügen durchführen.
    $ok = @mysql_query($sql);
    if (!$ok) die ("Datenbankfehler beim Einfügen der Datei: " . mysql_error());
    header("Location: $PHP_SELF");
    exit();

}
?>

Grüsse
 
Hi nochmals,

ehrlich gesagt bin ich langsam am verzweifeln. Ich sitze jetzt fast seit 3-4 Stunden an diesem Problem. Wie gesagt, die Daten werden hinzugefügt, scheint alles OK zu sein, aber warum erhalte ich diese Meldung nicht? Müsste oberhalb vom Formular erscheinen. Ich erhalte keine Fehler- oder Warnmeldungen, so das ich diese zuposten könnte. Ein paar änderungen am Code habe ich vorgenommen, aber nichts läuft.

PHP:
<?php
if ($submit) {

    $dbcnx = mysql_connect("localhost", "root", "");
    mysql_select_db("filestore");

    //Benutzer ruft eine Datei ab
    $sql = "SELECT company, name, address, city, country, pcode, tel, fax, email, url, FileName, MimeType, FileData FROM filestore WHERE ID = '$id'";
    $result = @mysql_query($sql);
    if (!$result) die("Datenbankfehler: " . mysql_error());
    
    $company = mysql_result($result,0,"company");
    $name = mysql_result($result,0,"name");
    $address = mysql_result($result,0,"address");
    $city = mysql_result($result,0,"city");
    $country = mysql_result($result,0,"country");
    $pcode = mysql_result($result,0,"pcode");
    $tel = mysql_result($result,0,"tel");
    $fax = mysql_result($result,0,"fax");
    $email = mysql_result($result,0,"email");
    $url = mysql_result($result,0,"url");
    $filename = mysql_result($result,0,"FileName");
    $mimetype = mysql_result($result,0,"MimeType");
    $filedata = mysql_result($result,0,"FileData");

    // Ausschliessen, dass eine Datei kein Upload ist
    if (!is_uploaded_file($uploadfile))
        die("$uploadfile ist keine hochgeladene Datei!");
        
    // Datei zum binären Einlesen öffnen ("rb")
    $tempfile = fopen($uploadfile,"rb");
    
    // Gesamte Datei in den Arbeitsspeicher einlesen,
    // wobei die PHP-Funktion filesize benutzt wird,
    // um die Dateigrösse zu ermitteln.
    $filedata = fread($tempfile,filesize($uploadfile));
    
    // Einfügen in die Datenbank vorbereiten, indem
    // vor Sonderzeichen Backslashes gesetzt werden.
    $filedata = addslashes($filedata);
    
    // SQL-Anfrage formulieren.
    $sql = "INSERT INTO filestore SET
        company = '$company',
        name = '$name',
        address = '$address',
        city = '$city',
        country = '$country',
        pcode = '$pcode',
        tel = '$tel',
        fax = '$fax',
        email = '$email',
        url = '$url',
        FileName = '$uploadfile_name',
        MimeType = '$uploadfile_type',
        Description = '$desc',
        FileData = '$filedata'";
        
    // Einfügen durchführen.
    $ok = @mysql_query($sql);
    if ($ok) {
        echo("<p>Daten wurden hinzugefügt!</p>");
    } else {
        echo("<p>Fehler beim hinzufügen der Daten! " . mysql_error() . "</p>");
    }
    header("Location: $PHP_SELF");
    exit();

}
?>
<html>
<head>
<title>Bild hochladen</title>
</head>
<body>

    <h1>Bild hochladen</h1>
    
    <form action="<?=$PHP_SELF?>?aktion=ulfile" method="post" enctype="multipart/form-data">
        <p>Firma:<br />
        <input type="text" name="company" maxlength="255" /></p>
        <p>Name:<br />
        <input type="text" name="name" maxlength="255" /></p>
        <p>Adresse:<br />
        <input type="text" name="address" maxlength="255" /></p>
        <p>Stadt:<br />
        <input type="text" name="city" maxlength="255" /></p>
        <p>Land:<br />
        <input type="text" name="country" maxlength="255" /></p>
        <p>PLZ:<br />
        <input type="text" name="pcode" maxlength="255" /></p>
        <p>Tel.:<br />
        <input type="text" name="tel" maxlength="255" /></p>
        <p>Fax:<br />
        <input type="text" name="fax" maxlength="255" /></p>
        <p>E-Mail:<br />
        <input type="text" name="email" maxlength="255" /></p>
        <p>Website:<br />
        <input type="text" name="url" value="http://" maxlength="255" /></p>
        <p>Datei hochladen:<br />
        <input type="file" name="uploadfile" /></p>
        <p>Dateibeschreibung:<br />
        <input type="text" name="desc" maxlength="255" /></p>
        <p><input type="submit" name="submit" value="Hochladen" /></p>
    </form>
</body>
</html>

Hoffe auf baldige antworten.

Grüsse
 
PHP:
if($ok == true){
echo "Datein wurden erfolgreich hochgeladen";
} else{

echo "irgendwas ist schief gelaufen";

oder du schreibst ne fehlermeldung in nen array und lässt die dann das array ausgeben!
 
Du hast also dieses Formular erstellt?

Wenn ja weist du auch was header() am Ende macht oder? Daraus ergibt sich die Antwort auf deine Frage.
 
BSA: Vielen Dank für Deine Antwort. Hat geklappt! :)

saila: Vielen Dank das Du mich darauf aufmerksam gemacht hast. Nun läuft alles prima. :)

Grüsse
 
Zurück