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 Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 11-07-2010, 14:48
Frittenfett
 Registrierter Benutzer
Links : Onlinestatus : Frittenfett ist offline
Registriert seit: Jul 2010
Beiträge: 8
Frittenfett zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Avatar System (Bilder hochladen)

Hallo,
ich würde gerne das einige User bei mir Avatare hochladen können. Ich würde das dann alles mit Mysql verknüpfen, aber soweit bin ich noch nicht. Mein Upload script funktioniert iwie nicht. Daher hab ich gegoogelt und einige Scripts ausprobiert, aber alle haben bei mir nicht funktioniert. Der einzige bei dem ich weiterkomme ist der Quelltext siehe unten. Aber auf meinem Webhosting Server werden keinerlei Daten hochgeladen. Könntet ihr den Quelltext vieleicht überfliegen? Ich verstehe es einfach nicht. Mit $_FILE hab ich auch noch keinen Erfolg erzielt. Oder ggf mir einen auschnitt geben, wie euer Upload Script funktioniert. Weil ich steig da irgendwie noch nicht durch

PHP-Code:
<?php 
if($_POST[avaversuch] == '1'){
$path "/avatar/"// Url zum Speicher Ordner 
$filename "test"
$deindomain "http://meinlink.net"
$time=time(); 
if (
$HTTP_POST_FILES['userfile']['tmp_name']<> 'none'
   {    
         
$file $HTTP_POST_FILES['userfile']['name']; 
         
$temp $HTTP_POST_FILES['userfile']['tmp_name']; 
         
$path_parts pathinfo($file); 
         
$filename "test_" $time "." $path_parts["extension"]; 
           
$dest $path.$filename
    
         
copy($temp$dest); 
    
      echo 
"Die Datei ist auf dem Server! <br><br>"
      echo 
"Url der Datei: <a href=\"$deindomain$path$filename\" target=\"_blank\">".$deindomain.$path.$filename
     echo 
"</a>"
   } 
} else { 
?> 

<form method="post" enctype="multipart/form-data" action="index.php?menu=avatar"> 
<input type="hidden" name="MAX_FILE_SIZE" value="400000"> 
<br> 
<strong>File Upload</strong> <br> 
<br> 
<input name="userfile" type="file" size=40> 
<br> 
<br> 
<input type="submit" name="action" value="Speichern"><input type="hidden" name="avaversuch" value="1">
</form><? ?></body> 
</html>
By Outman
Mit Zitat antworten
  #2 (permalink)  
Alt 11-07-2010, 14:56
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo und willkommen im Forum,

bitte lesen: PHP: Steuerung von Dateiuploads - Manual

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 11-07-2010, 15:09
Frittenfett
 Registrierter Benutzer
Links : Onlinestatus : Frittenfett ist offline
Registriert seit: Jul 2010
Beiträge: 8
Frittenfett zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ich bin genau nach
PHP: Dateiuploads mit POST - Manual
gegangen.

PHP-Code:
<?php 
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt 
// $_FILES verwenden. In PHP kleiner als 4.0.3 verwenden Sie copy() 
// und is_uploaded_file() anstatt von move_uploaded_file()

$uploaddir '/var/www/uploads/';
$uploadfile $uploaddirbasename($_FILES['userfile']['name']);

print 
"<pre>";
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print 
"File is valid, and was successfully uploaded.";
    print 
"Here's some more debugging info:\n";
    
print_r($_FILES);
} else {
    print 
"Possible file upload attack!  Here's some debugging info:\n";
    
print_r($_FILES);
}
print 
"</pre>";

?>
Aber... ich habe keinerlei Upload auf dem Server bekommen.
Könnte möglicherweise an $uploaddir liegen.
Da ich ein Webhosting Server habe, kann ich den vollständigen Pfad nicht erkennen. Hab ja nur zugriff auf meine Domain.


[Edit]
Wenn ich $uploaddir = './'; setze, springt er in den Upload If. Wenn ich meinen normalen Pfad angebe springt er immer in die Else If.

Geändert von Frittenfett (11-07-2010 um 15:17 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 11-07-2010, 15:14
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Frittenfett Beitrag anzeigen
Da ich ein Webhosting Server habe, kann ich den vollständigen Pfad nicht erkennen. Hab ja nur zugriff auf meine Domain.
Dann kannst du auch relativ zum Arbeitsverzeichnis arbeiten (z. B. "../uploads") oder relativ zum Scriptverzeichnis, z. B.
PHP-Code:
dirname(__FILE__) . "/../uploads" // vor PHP5.3
__DIR__ "/../uploads" // ab PHP5.3 
In vielen Fällen sind Arbeitsverzeichnis und Scriptverzeichnis identisch, aber nicht immer.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 11-07-2010, 15:27
Frittenfett
 Registrierter Benutzer
Links : Onlinestatus : Frittenfett ist offline
Registriert seit: Jul 2010
Beiträge: 8
Frittenfett zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Scheint jetzt irgendwie zu funktionieren, seitdem ich alle Datein von 755 auf 777 gesetzt habe. Nur ein Problem besteht noch.

PHP-Code:
$uploaddir './'
Damit speichert er alles in den Hauptordner. Wie kriege ich es in den Unterordner "avatar"?

PHP-Code:
$uploaddir './avatar'
In diesem Fall schreibt er bei mir vor jeder Datei "avatar" z.B. avatarKekse.jpg
Was genau habe ich falsch gemacht?
Mit Zitat antworten
  #6 (permalink)  
Alt 11-07-2010, 15:29
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Frittenfett Beitrag anzeigen
Was genau habe ich falsch gemacht?
… den Pfadseparator vergessen:
PHP-Code:
$uploaddir './avatar/'
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 11-07-2010, 15:42
Frittenfett
 Registrierter Benutzer
Links : Onlinestatus : Frittenfett ist offline
Registriert seit: Jul 2010
Beiträge: 8
Frittenfett zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
… den Pfadseparator vergessen:
PHP-Code:
$uploaddir './avatar/'
Jetzt bekomme ich immer einen Internal Server Error. Liegt wohl am hoster. Sollte ich wohl alles in den Hauptordner speicher, ist zwar unübersichtlicher... aber geht wenigstens xD

Zitat:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

[EDIT]
Vergisst was da oben steht. Funktioniert super! Vielen Dank! Gibt es ne möglichkeit, die Upgeloaddete Datei automatisch umzubenennen?

Geändert von Frittenfett (11-07-2010 um 15:45 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 11-07-2010, 16:25
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Frittenfett Beitrag anzeigen
Gibt es ne möglichkeit, die Upgeloaddete Datei automatisch umzubenennen?
Den Namen gibst du doch bei move_uploaded_file selber an ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 11-07-2010, 17:59
HCi
 Registrierter Benutzer
Links : Onlinestatus : HCi ist offline
Registriert seit: Jul 2010
Beiträge: 11
HCi befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
    $name 'irgendeinname';
    
$pic getimagesize($_FILES['photo']['tmp_name']);
    switch (
$pic['mime']) {
        case 
'image/gif':
            
$ermsg '';
            
$ext '.gif';
            break;
        case 
'image/jpeg':
            
$ermsg '';
            
$ext '.jpg';
            break;
        case 
'image/png':
            
$ermsg '';
            
$ext '.png';
            break;
        default:
            
$ermsg 'Kein erlaubtes Bildformat!';
            break;
    }

    if(empty(
$ermsg)) {
        if(
move_uploaded_file($_FILES['photo']['tmp_name'],'./some/dir/path/'.$name.$ext)) {
            echo 
'Bild erfolgreich hochgeladen';
        } else {
            echo 
'Bild konnte nicht hochgeladen werden';
        }
    } else {
        echo 
$errmsg;
    } 
hat den vorteil das nur jpg, gif und png auf den server geladen werden können... und keine sonstigen böswilligen dateien (c99.php z.B.)
Mit Zitat antworten
  #10 (permalink)  
Alt 12-07-2010, 17:30
Frittenfett
 Registrierter Benutzer
Links : Onlinestatus : Frittenfett ist offline
Registriert seit: Jul 2010
Beiträge: 8
Frittenfett zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Könnte man dies auch nicht einfach in eine IF Abfrage bringen?

PHP-Code:
if($_FILES['userfile']['type'] == "image/gif" || 
$_FILES['userfile']['type'] == "image/jpeg" ||
$_FILES['userfile']['type'] == "image/png")
{
Bild hochladen Script
} else {
echo 
'Kein erlaubtes Bildformat!';

Mit Zitat antworten
  #11 (permalink)  
Alt 12-07-2010, 17:33
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Frittenfett Beitrag anzeigen
Könnte man dies auch nicht einfach in eine IF Abfrage bringen?
Wenn es nur um die Prüfung geht, dann könnte man es sogar noch kompakter mit in_array machen.

Im vorherigen Beispiel wird aber auch noch die Dateiendung, unter der die Datei abgelegt werden soll, abhängig vom Typ vorgegeben. (Das könnte man ebenfalls mit einem Array realisieren.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #12 (permalink)  
Alt 12-07-2010, 17:37
HCi
 Registrierter Benutzer
Links : Onlinestatus : HCi ist offline
Registriert seit: Jul 2010
Beiträge: 11
HCi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Frittenfett Beitrag anzeigen
Könnte man dies auch nicht einfach in eine IF Abfrage bringen?
Du hast doch gefragt wie man den dateinamen ändern kann... Das meine Switch abfrage lang ist, weiss ich... aber so kannst du sicher sein das dass script nicht manipuliert werden kann... ausserdem brauchst du eine dateiendung wenn du den namen der datei änderst...

Ich fahre mit dem aufbau ziemlich lange und noch nie probleme...
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
bilder hochladen... peetjoff PHP Developer Forum 8 21-01-2005 16:42
bilder hochladen jhaustein PHP Developer Forum 23 27-09-2004 15:20
Bilder hochladen |-ZeroCool-| PHP Developer Forum 2 16-03-2004 14:46
Bilder hochladen steiner82 PHP Developer Forum 14 04-01-2004 16:56
Bilder hochladen Schnufix PHP Developer Forum 3 12-09-2003 19:38

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

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:55 Uhr.