Seite 1 von 1

[PHP/MySQL] Upload #2

Verfasst: 30.09.2005 19:53
von DasFragezeichen
Aufgrund der Übersichtlichkeit poste ich den Code lieber ganz aus :-?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data" name="upload">
<input type="file" name="file"><input type="submit" name="submit" value="Upload">
</form>

</body>
</html>

<?php

$max_byte_size = 10240000;

$allowed_types = "(jpg|jpeg|gif|bmp|png|tif|tiff|swf|zip|rar)";

if($_POST["submit"] == "Upload") {

if(is_uploaded_file($_FILES["file"]["tmp_name"])) {

if($_FILES["file"]["size"] <= $max_byte_size) {

$png = "png";

if(preg_match("/\." . $png . "$/i", $_FILES["file"]["name"])) {

define('DB_HOST', 'localhost');
define('DB_USER', 'myname');
define('DB_PASS', 'mypass');
define('DB_NAME', 'db');
define('TABLE_NAME', 'table');

$feld1 = "id";
$feld2 = "blabla";
$id = 2;

$verbindung = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Kritischer Fehler bitte den Admin fragen!");

mysql_select_db(DB_NAME, $verbindung);

$sql = "SELECT * FROM ".TABLE_NAME." WHERE ".$feld1."=".$id;


$result = mysql_query($sql, $verbindung) or die ("SQL-Befehl ".$sql." konnte nicht ausgeführt werden");

if ($row = mysql_fetch_assoc($result))
{
$zahl = $row[$feld2];
}

if ($row = mysql_fetch_object($result))
{
$zahl = $row->$feld2;
}

$zahl++;
$newzahl = (md5 ($zahl));

$sql = "UPDATE ".TABLE_NAME." SET ".$feld2."=".$zahl." WHERE ".$feld1."=".$id;

mysql_query($sql, $verbindung) or die ("SQL-Befehl ".$sql." konnte nicht ausgeführt werden");

mysql_close();

$newnewzahl = (md5 ($newzahl));

if(copy($_FILES["file"]["tmp_name"], "$newnewzahl".PNG)) {

print ("<a href='http://localhost/test/$newnewzahl.PNG'> ... ahl.PNG</a>");
}


else {

echo "Fehler"; //das wird ausgegeben

}


}

else {

echo "Ungültige Dateiendung";

}

}

else {

echo "Maxsize überschritten!";

}

}

else {

echo "Wähle Datei!!!";

}


}

else {

echo "NOCH keine Datei angegeben";

}



?>
Das rotmakierte ist wohl irgendwie der Fehler ...

Also, ausgegeben wird nach dem Upload immer :
Fehler
von :
else {

echo "Fehler";

}
Zeitglich findet sich dann aber immer eine Datei mit dem Namen : "28c8edde3d61a0411511d3b1866f0636PNG" im Ordner ... Die Datenbank wird nicht geupdated (d.h. der Wert bleibt :-? ) ausserdem müsste es ja wenn dann schon : "28c8edde3d61a0411511d3b1866f0636.PNG" (also mit Punkt) heissen ...

Woran kann das bloss liegen ? Die SQL-Daten etc. stimmen 100% und in der DB ist auch nichts falsch ... Wie kann ich die Probleme lösen ?

Wäre für jede Hilfe dankbar!
DasFragezeichen

Verfasst: 30.09.2005 20:27
von fanrpg
wird das nicht so geschrieben?

Code: Alles auswählen

if(copy($_FILES["file"]["tmp_name"], $newnewzahl."PNG")) {
oder so?

Code: Alles auswählen

if(copy($_FILES["file"]["tmp_name"], $newnewzahl.PNG)) {
[/code]

Verfasst: 30.09.2005 21:15
von witzigerkiller
ich denke mal das es move_upload_file heißen sollte.

Verfasst: 30.09.2005 22:33
von DasFragezeichen
Das klappt durch meinen tollen Anbieter nicht (der plötzlich auch per Mail nicht mehr erreichbar ist ) ...

Es müsste eigentlich so gehen nur scheint es da Probleme mit den Variablen zu geben und dem anderen Mist da :-?

Verfasst: 30.09.2005 22:46
von witzigerkiller
hmm, mein anbieter verbietet auch hochladen. weil es so ein modul gibt beim ftp connect.

Aber wenns was hilft, hier haste mal mein script:

upload.html

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>F&uuml;r thebigticket</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
  <body>
  
<form action="upload.php" method="post" enctype="multipart/form-data">
<table>
 <tr>
  <td>Bild:</td>
  <td><input type="file" name="datei"></td>
 </tr>
 <tr>
  <td colspan="2"><input type="submit" value="Hochladen"> </td>
 </tr>
</table>
</form>

  </body>
</html>
upload.php

Code: Alles auswählen

<?PHP
$my_user= "xxxx";
$my_pwd= "xxxx";
$my_host= "xxxxxxe";
$ftp = ftp_connect( $my_host );

if (!$ftp) die ('Fehler, keine Verbindung');
else
{
    if (!ftp_login($ftp, $my_user, $my_pwd)) die ('Fehler kein login im ftp m&ouml;glich');
    else
    {
        $dateityp = GetImageSize($_FILES['datei']['tmp_name']);
        if($dateityp[2] != 0)
        {
            if ($dateityp[0] > 100 && $dateityp[1] > 100)
            {
                die ('Fehler, Bild darf nicht gr&ouml;&szlig;er als 100 x 100 Pixel sein!');
            }
            else
            {
                if($_FILES['datei']['size'] <  102400)
                {
                    if (move_uploaded_file($_FILES['datei']['tmp_name'],
                     "upload/".$_FILES['datei']['name']))
                    {
                        echo "Upload des Bildes erfolgreich!";
                    }
                    else
                    {
                        die ('Fehler, upload nicht m&ouml;glich');
                    } 
                }
                else
                {
                    die ('Das Bild darf nicht größer als 100 kb sein');
                }
            }
        }
        else
        {
            die ('Bitte nur Bilder im Gif bzw. jpg Format hochladen');
        }
    }
}
?>

Verfasst: 30.09.2005 22:50
von DasFragezeichen
Bei mir ist das so : Das Uploaden und der copy - Befehl etc. sind erlaubt aber nur der move_uploaded_file - Befehl nicht und das ist ja bekloppt :-?

Verfasst: 30.09.2005 22:51
von witzigerkiller
naja, kannst ja bei mir das move_upload_file durh copy ersetzen.

ich weiß, das mein script fehlerfrei funktioniert. Auf funpic account von mehreren Leuten getetestet

Verfasst: 01.10.2005 18:05
von DasFragezeichen
Eine Frage hätte ich da mal an die Coder von phpBB :roll:

Wie wurde das eigentlich ermöglicht beim Avatar - Upload ? Dort werden auch die Dateien in einem md5 - Code (?) + Dateiendung umbenannt ... Das müsste dann doch auch hier gehen oder ? :roll:

Dateien umbennen etc. ist ja kein Problem ... Bloss das der Dateityp bleibt und nicht das die Datei dann keinen Typ hat :-? Genau diese Stelle ist die, die ich einfach nicht hinbekomme (k, ich bekomme sie hin aber der Code scheint nicht richtig xD) :x

edit : Könnte mir jemand villeicht verraten in welcher phpBB - Datei das mit dem Upload ist ? dann gucke ich mir das einfach mal an , lol

Verfasst: 03.10.2005 15:12
von DasFragezeichen
Die Frage ist noch nicht beantwortet ... :roll:

Verfasst: 03.10.2005 15:26
von mad-manne
DasFragezeichen hat geschrieben:Eine Frage hätte ich da mal an die Coder von phpBB :roll:

Wie wurde das eigentlich ermöglicht beim Avatar - Upload ? Dort werden auch die Dateien in einem md5 - Code (?) + Dateiendung umbenannt ...
Der Quellcode von phpBB steht dir doch zum Zwecke des Studiums offen!

Gruss,
Manne.