[PHP/MySQL] Upload #2

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

[PHP/MySQL] Upload #2

Beitrag 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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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]
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

ich denke mal das es move_upload_file heißen sollte.
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag 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 :-?
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag 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');
        }
    }
}
?>
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag 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 :-?
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag 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
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag 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
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag von DasFragezeichen »

Die Frage ist noch nicht beantwortet ... :roll:
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag 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.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Antworten

Zurück zu „Coding & Technik“