Sponsor-Board.de
Thema geschlossen  Thema schreiben 

PHP Problem - upload

Verfasser Nachricht

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #1
PHP Problem - upload

Mahlzeit,
habe folgendes Problem :
Unzwar möchte ich, dass durch ein Formular ein Bild hochgeladen wird, nat. wird es erst auf Größe, auf Maße und Endung überprüft.
Dann soll die Variable in die DB geschrieben werden, damit man nacher auf das hochgeladene Bild wieder zugreifen kann. Nur irgendwie stoppt es nach dem überprüfen immer Mad

Das Formular :

PHP-Code:
echo "<form ".
             
" name=\"Avatar\" ".
             
" action=\"system/checkbearbeiten-avatar-upload.php\" ".
             
" method=\"post\" ".
             
" enctype=\"multipart/form-data\" ".
             
" accept-charset=\"ISO-8859-1\">\n";
        echo 
"<span style=\"font-weight:bold;\" ".
             
" title=\"max. 20kb\nmax 150x150 Pixel\n .jpg .gif oder .png\">\n".
             
"Avatar :\n".
             
"</span>\n";
        if(
$row['Avatar']=='')
            echo 
"<br><img alt=\"\" src=\"upload/avatare/default.png\" />";
        else
            echo 
"<br><img src=\"upload/avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n";
        if(
$row['Avatar']=='') {
            echo 
"<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(0.02*1024*1024)."\">";
            echo 
"<input name=\"pic\" type=\"file\">\n";
            echo 
"<input class=\"derinput\" type=\"submit\" name=\"submit\" value=\"Avatar hochladen\">\n";
        }
        else
            echo 
"<input class=\"derinput\" type=\"submit\" name=\"submit\" value=\"Avatar löschen\">\n";
        echo 
"</form>\n"


Das Script :

PHP-Code:
<?php
session_start
();

error_reporting(E_ALL);
    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER 'root';
    
$MYSQL_PASS 'passwort';
    
$MYSQL_DATA 'flipspot';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
    
     
$sql "SELECT
                         Avatar
                     FROM
                         User
                     WHERE
                         ID = '"
.mysql_real_escape_string($_SESSION['UserID'])."'
                    "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);

        
// Avatar hochladen
        
if(isset($_POST['submit']) AND $_POST['submit'] == "Avatar hochladen") {
            
$errors = array();
            
// Uploadfehler prüfen
            
switch ($_FILES['pic']['error']){
                case 
1$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
                                    break;
                case 
2$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
                                    break;
                case 
3$errors[] = "Die Datei wurde nur teilweise hochgeladen.";
                                    break;
                case 
4$errors[] = "Es wurde keine Datei ausgewählt.";
                                    break;
                default : break;
            }
            
// Prüfen, ob eine Grafikdatei vorliegt
            
if(!@getimagesize($_FILES['pic']['tmp_name']))
                
$errors[] = "Ihre Datei ist keine gültige Grafikdatei.";
            else {
                
// Mime-Typ prüfen
                
$erlaubte_typen = array('image/pjpeg',
                                        
'image/jpeg',
                                        
'image/gif',
                                        
'image/png'
                                       
);
                if(!
in_array($_FILES['pic']['type'], $erlaubte_typen))
                    
$errors[] = "Der Mime-Typ ihrer Datei ist verboten.";

                
// Endung prüfen
                
$erlaubte_endungen = array('jpeg',
                                           
'jpg',
                                           
'gif',
                                           
'png'
                                          
);
                
// Endung ermitteln
                
$endung strtolower(substr($_FILES['pic']['name'], strrpos($_FILES['pic']['name'], '.')+1));
                    if(!
in_array($endung$erlaubte_endungen))
                        
$errors[] = "Die Dateiendung muss .jpeg .jpg .gif oder .png lauten ";

                
// Ausmaße prüfen
                
$size getimagesize($_FILES['pic']['tmp_name']);
                    if (
$size[0] > 150 OR $size[1] > 150)
                        
$errors[] = "Die Datei darf maximal 150 Pixel breit und 150 Pixel hoch sein.";
            }
            
// Dateigröße prüfen
            
if($_FILES['pic']['size'] > 0.2*1024*1024)
                
$errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";

            if(
count($errors)){
                echo 
"Ihr Avatar konnte nicht gespeichert werden.<br>\n".
                     
"<br>\n";
                foreach(
$errors as $error)
                    echo 
$error."<br>\n";
                echo 
"<br>\n".
                     
"Zurück zum <a href=\"../index.php?id=profil&uid=" $_SESSION['UserID'] . "\">Profil</a>\n";
            }
            else {
                
// Bild auf dem Server speichern
                
$uploaddir 'upload/avatare/';
                
// neuen Bildname erstellen
                
$Name "IMG_".substr(microtime(),-8).".".$endung;
                if (
move_uploaded_file($_FILES['pic']['tmp_name'], $uploaddir.$Name)) {
                    
$sql "UPDATE
                                    User
                            SET
                                    Avatar = '"
.mysql_real_escape_string(trim($Name))."'
                            WHERE
                                    ID = "
.$_SESSION['UserID']."
                           "
;
                    
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

                    echo 
"Ihr Avatar wurde erfolgreich gespeichert.<br>\n".
                         
"Zurück zum <a href=\"../index.php?id=profil&uid=" $_SESSION['UserID'] . "\">Profil</a>\n";
                }
                else {
                    echo 
"Es trat ein Fehler auf, bitte versuche es später erneut.<br>\n".
                         
"Zurück zum <a href=\"../index.php?id=profil&uid=" $_SESSION['UserID'] . "\">Profil</a>\n";
                }
            }
        }
        
// Avatar löschen
        
elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Avatar löschen'){
            
// Bildname des Avatars aus der Datenbank holen
            
$sql "SELECT
                        Avatar
                    FROM
                        User
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            
$row mysql_fetch_assoc($result);
            
// Datei löschen
            
unlink('upload/avatare/'.$row['Avatar']);
            
// Bildname des Avatars als leeren String setzen
            
$sql "UPDATE
                        User
                    SET
                        Avatar = ''
                    WHERE
                        ID = '"
.$_SESSION['UserID']."'
                   "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
            echo 
"Ihr Avatar wurde erfolgreich gelöscht.<br>\n".
                 
"Zurück zum <a href=\"../index.php?id=profil&uid=" $_SESSION['UserID'] . "\">Profil</a>\n";
        } 
        
?>


Es stoppt beim speichern des Bildes auf dem Server.
Habe es jetzt schon ca. 1 Stunde probiert und bin nervlich am Ende Biggrin

Kann mir jmd helfen ? Bin über jede Hilfe dankbar! Smile

mfg


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2012 12:01 von Aaron.

15.05.2012 11:03
 
Alle Beiträge dieses Benutzers finden

Beiträge: 38
Bewertung: 0
Registriert seit: Mar 2012
Status: offline


Beitrag: #2
RE: PHP Problem - upload

Kommt ne Fehlermeldung? Schon versucht zu debugen?

Und seit wann gibt man beim Upload kein MimeType mit?

15.05.2012 11:28
 
Alle Beiträge dieses Benutzers finden

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #3
RE: PHP Problem - upload

er gibt dies aus :
echo "Es trat ein Fehler auf, bitte versuche es später erneut.<br>\n".
"Zurück zum <a href=\"../index.php?id=profil&uid=" . $_SESSION['UserID'] . "\">Profil</a>\n";

also müsste es davor an der if-Verzweigung liegen, oder ?


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

15.05.2012 11:30
 
Alle Beiträge dieses Benutzers finden

Beiträge: 38
Bewertung: 0
Registriert seit: Mar 2012
Status: offline


Beitrag: #4
RE: PHP Problem - upload

1. Schreibrechte auf dem Verzeichnis?
2. Mime Type mitgegeben?

Wenn du beides hast, klappts auch mit dem upload!

15.05.2012 11:33
 
Alle Beiträge dieses Benutzers finden

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #5
RE: PHP Problem - upload

Schreibrechte sind gesetzt Wink

was meinst du mit Mime Type mitgeben ?


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

15.05.2012 11:36
 
Alle Beiträge dieses Benutzers finden

Beiträge: 38
Bewertung: 0
Registriert seit: Mar 2012
Status: offline


Beitrag: #6
RE: PHP Problem - upload

Was gibt $_FILES aus?


und noch ne andere Sache...warum loggst du dich per mysql mit root ein?

Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2012 11:44 von coloskopie.

15.05.2012 11:39
 
Alle Beiträge dieses Benutzers finden

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #7
RE: PHP Problem - upload

was soll $_FILES denn ausgeben ? :/


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

15.05.2012 12:13
 
Alle Beiträge dieses Benutzers finden

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #8
RE: PHP Problem - upload

Problem dank dem User "Kokspflanze" gelöst Wink

neues hat sich mit der Zeit aufgetan :
Wenn ich jetzt eine Eingabe von einem Textfeld in der Datenbank speicher, wie erzeuge ich dann, die im Textfeld gemachten Zeilenumbrüche ? Denn diese werden nicht bei der Ausgabe angezeigt

Danke für jede Hilfe! Smile


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

23.05.2012 07:30
 
Alle Beiträge dieses Benutzers finden

Beiträge: 645
Bewertung: 16
Registriert seit: Jan 2012
Status: offline


Beitrag: #9
RE: PHP Problem - upload

Viele Grüße
RiekMedia Development

[Link: Registrierung erforderlich]


-----------------------------

Discord: [Link: Registrierung erforderlich]
Steam : [Link: Registrierung erforderlich]
Instagram : [Link: Registrierung erforderlich]

23.05.2012 08:27
 
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #10
RE: PHP Problem - upload

danke, Problem gelöst Wink


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

23.05.2012 08:33
 
Alle Beiträge dieses Benutzers finden
Thema geschlossen  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Upload geht nicht Mr.Chef 8 1.803 25.09.2013 05:38
Letzter Beitrag: Mr.Chef
  upload Script! Uploadi 4 1.204 23.08.2011 10:57
Letzter Beitrag: PeterDaReal

 Druckversion anzeigen
 Thema einem Freund senden
 Thema abonnieren
 Thema zu den Favoriten hinzufügen

Sponsor-Board.de

Community
Über uns
Partner
Powered by Mybb: Copyright 2002-2024 by MyBB Group - Deutsche-Übersetzung von Mybb.de
 
© 2007-2024 Sponsor-Board.de - Hosted by OVH

Willkommen auf SB!   Sie benötigen ein Sponsoring?   1. Anmelden   2. Sponsoring-Anfrage erstellen   3. Nachrichten von Sponsoren erhalten   Kostenlos!   Jetzt registrieren