php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 24-02-2014, 21:02
BlueOrb
 Registrierter Benutzer
Links : Onlinestatus : BlueOrb ist offline
Registriert seit: Feb 2014
Beiträge: 4
BlueOrb befindet sich auf einem aufstrebenden Ast
Standard Problem mit PHP Upload Script

Hallo zusammen,

brauche mal Hilfe, bei einem Uploadscript, was nicht mehr uploaden will.
Hat vor dem Serverumzug funktioniert, und jetzt such ich mich dumm.

Vielleicht sieht einer von Euch gleich den Fehler. Hier das Script:

// DATENSÄTZE LÖSCHEN
if(isset($_GET['del']) and !empty($_GET['del'])){
$id = $_GET['del'];
$query = mysql_query("SELECT id, path, name FROM links_service WHERE id = $id");
$fetch = mysql_fetch_object($query);
$datei = $fetch->path;
if (unlink ($datei)) {
mysql_query('DELETE FROM `links_service` WHERE ID = '.$_GET['del']);
echo "<em>Der Lieferservice wurde entfernt und die Karte ".$fetch->name." gelöscht</em><br>";
}
}
$uploadDir = "upload/";
if(isset($_POST['upload']))
{
$vendor = $_POST['vendor'];
$contact = $_POST['contact'];
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$filePath = $uploadDir . $fileName;
$result = move_uploaded_file($tmp_Name, $filePath);
if (!$result) {
echo "Fehler beim Hochladen";
print_r($_FILES);
exit;
}
include 'system/dbconnect.php';
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}
$query = "INSERT INTO links_service (vendor, contact, name, size, type, path ) ";
"VALUES ('$vendor','$contact','$fileName', '$fileSize', '$fileType', '$filePath')";
mysql_query($query) or die('Error, query failed : ' . mysql_error());
// echo "<em>Die Lieferkarte wurde eingetragen</em><br><br>";
}
?>

Ich bekomme bei jedem Upload immer "Fehler beim hochladen". Ich weiß aber mittlerweile einfach nicht mehr warum.

Vielen Dank
Mit Zitat antworten
  #2 (permalink)  
Alt 24-02-2014, 21:32
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das Script ist hochgradig gefährlich und sollte umgehend offline genommen werden. Informiere dich mal über SQL-Injections.
Mit Zitat antworten
  #3 (permalink)  
Alt 25-02-2014, 01:24
BlueOrb
 Registrierter Benutzer
Links : Onlinestatus : BlueOrb ist offline
Registriert seit: Feb 2014
Beiträge: 4
BlueOrb befindet sich auf einem aufstrebenden Ast
Standard

Hm...also, das Teil läuft eigentlich nur "intern" für mich auf meinem eigenen Webserver zum "spielen". Von daher ist das mit der Gefährlichkeit vielleicht jetzt nicht so relevant. Ich bin aber auch nicht böse, wenn mir einer ein kleines Uploadscript nennt, was man sich runterladen kann oder so. Ist wie gesagt nichts was an die Öffentlichkeit geht

Danke
Mit Zitat antworten
  #4 (permalink)  
Alt 25-02-2014, 09:25
anihex
 Registrierter Benutzer
Links : Onlinestatus : anihex ist offline
Registriert seit: Feb 2014
Beiträge: 28
anihex befindet sich auf einem aufstrebenden Ast
Standard

Um die Sicherheit zu erhöhen, würde eine Zeile mehr schon ausreichen. ;-)
Das hat auch nicht groß was mit "intern" zu tun. Auch wenn nur du es benutzt ist es dennoch gut, sich ein sicheres Vorgehen anzugewöhnen.

Ich hab mal was zusammengebastelt. Es ist nicht 100% perfekt. Aber es könnte ein wenig helfen.
PHP-Code:
<?php
    
include_once( "upload.php" );
    
// DATENSÄTZE LÖSCHEN
    
if ( filter_inputINPUT_POST"del"FILTER_VALIDATE_INT ) ) {
        
$id filter_inputINPUT_POST"del"FILTER_VALIDATE_INT );
        
$query mysql_query("SELECT id, path, name FROM links_service WHERE id = $id");
        
$fetch mysql_fetch_object($query);
        
$datei $fetch->path;
        if (
unlink ($datei)) {
            
mysql_query('DELETE FROM `links_service` WHERE ID = ' $id );
            echo 
"<em>Der Lieferservice wurde entfernt und die Karte ".$fetch->name." gelöscht</em><br>";
        }
    }

    
$uploadDir "upload/";
    if( isset( 
$_POST'upload' ] ) ) {
        
$vendor   mysql_real_escape_stringfilter_inputINPUT_POST'vendor'FILTER_SANITIZE_STRING ) );
        
$contact  mysql_real_escape_stringfilter_inputINPUT_POST'contact'FILTER_SANITIZE_STRING ) );
        
$fileName $_FILES['userfile']['name'];
        
$tmpName  $_FILES['userfile']['tmp_name'];
        
$fileSize $_FILES['userfile']['size'];
        
$fileType $_FILES['userfile']['type'];
        
$filePath $uploadDir $fileName;

        try {
            
uploadFile"userfile"$filePath );
        }
        catch ( 
Exception $e ) {
            echo 
"Hier ging was schief. Und zwar ... " $e->getMessage();
        }

        include 
'system/dbconnect.php';
        if( !
get_magic_quotes_gpc() ) {
            
$fileName addslashes($fileName);
            
$filePath addslashes($filePath);
        }
        
$query "INSERT INTO links_service (vendor, contact, name, size, type, path ) ";
        
$query $query "VALUES ('$vendor','$contact','$fileName', '$fileSize', '$fileType', '$filePath')";
        
mysql_query($query) or die('Error, query failed : ' mysql_error());
        
// echo "<em>Die Lieferkarte wurde eingetragen</em><br><br>";
    
}
?>
Und hier die upload.php
PHP-Code:
<?php
    
function uploadFile$aSource$aDestination ) {
        
// Verzeichnis der Zieldatei ermitteln
        
$lPath dirname$aDestination ).DIRECTORY_SEPARATOR;

        
// Pruefen, ob Schreibrechte auf das Verzeichnis vorhanden sind
        
if ( !is_writable$lPath ) ) {
            
// Nope. Die Ausfuehrung beenden
            
throw new Exception"Keine Schreibrechte auf das Verzeichnis."9998 );
        }

        
// Versuchen die Datei an den Wunschort zu verschieben
        
if ( !move_uploaded_file$_FILES$aSource ][ "tmp_name" ], $aDestination ) ) {
            throw new 
Exception"Upload der Datei fehlgeschlagen."9999 );
        }
    }
?>

Geändert von anihex (26-02-2014 um 02:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 26-02-2014, 01:17
BlueOrb
 Registrierter Benutzer
Links : Onlinestatus : BlueOrb ist offline
Registriert seit: Feb 2014
Beiträge: 4
BlueOrb befindet sich auf einem aufstrebenden Ast
Standard

Hi,

habe dein Script jetzt entsprechend mal 1:1 so eingebaut und bekomme jetzt folgenden Fehler ausgegeben und kann mir aber nicht so den Reim drauf machen.

Hier ging was schief. Und zwar ... Upload der Datei fehlgeschlagen.Error, query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Kannst du mir sagen, wo da der Fehler liegt ?

Danke
Mit Zitat antworten
  #6 (permalink)  
Alt 26-02-2014, 01:36
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das ist halt der Nachteil, wenn man Code nur kopiert, ihn aber nicht versteht. Wenn du fix fertigen, kopierbaren Code erwartest, bist du in einem Forum vielleicht falsch.
Mit Zitat antworten
  #7 (permalink)  
Alt 26-02-2014, 02:29
anihex
 Registrierter Benutzer
Links : Onlinestatus : anihex ist offline
Registriert seit: Feb 2014
Beiträge: 28
anihex befindet sich auf einem aufstrebenden Ast
Standard

Ich hab sein SQL auch nur kopiert und es nicht geprüft.
Und BlueOrb, der Fehler sagt im Grund, dass das Hauptproblem eigentlich im SQL zu stecken scheint.
Zudem bekomme ich unschöne Warnungen, wenn ich mit den direkten MySQL Befehlen arbeite.
Ich empfehle dir auf MySQLi oder besser noch PDO umzusteigen.

Auf peterkropff.de findest du dazu sehr gute Tutorials. Auch was den Upload von Dateien angeht.
Was ich dir da gegeben habe, ist nicht einmal getestet. Ich habe dein Skript genommen und versucht ein paar Dinge zu verbessern.
Die Funktionsweise an sich habe ich jedoch unangetastet gelassen.
Dabei habe ich - dämlich wie ich nunmal bin - einen Fehler in deinem Skript übersehen. Ich verbessere diesen jedoch gleich in meinem Quelltext. Vielleicht kommst du dann ja ein wenig weiter. ;-)

Gruß
Chris
Mit Zitat antworten
  #8 (permalink)  
Alt 26-02-2014, 17:33
BlueOrb
 Registrierter Benutzer
Links : Onlinestatus : BlueOrb ist offline
Registriert seit: Feb 2014
Beiträge: 4
BlueOrb befindet sich auf einem aufstrebenden Ast
Standard

Danke dir Chris.
Da ich das Script seinerzeit mal selbst zusammengebastelt hab, versteh ich schon was da drin steht. Allerdings waren mir die Modifizierungen von dir dann etwas verwirrend, auch aufgrund der Uhrzeit

Auf jeden Fall erstmal Danke. Ich teste das dann mal.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit PHP Upload Script! Triplex1979 Projekthilfe 16 15-09-2005 23:47
Problem mit Upload Script grimmis PHP Developer Forum 3 16-12-2004 16:56
Problem mit Upload Script KriX PHP Developer Forum 10 06-12-2004 20:07
Problem mit Upload Script meeron PHP Developer Forum 17 03-12-2004 02:50
Problem mit Upload-Script DannyL PHP Developer Forum 13 15-10-2004 13:15

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:08 Uhr.