Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bildupload ins falsche Verzeichnis

Frage Entwicklung PHP

Mitglied: 23587

23587 (Level 1)

16.05.2007, aktualisiert 27.05.2007, 4459 Aufrufe, 11 Kommentare

Ich probiere gleichzeitig eine andere Version eines Bild-Uploades aus...
Bei diesem hier ist das problem, dass er das Bild in das falsche verzeichniss hochläd...
Aber wieso? Der Ordner wird richtig erstellt.

Schaut euch das bitte mal an.

gruß Aleks

01.
$pfad1 = "./admin/einsatz_bilder/"; 
02.
	  $pfad2 = $_REQUEST['nummer']; 
03.
	  $pfad3 = "/"; 
04.
	  $pfad = "$pfad1$pfad2$pfad3"; 
05.
			mkdir($pfad, 0777); 
06.
			#Bildupload-Script 
07.
			 
08.
// Maximale Dateigrösse in Byte 
09.
 
10.
$max_size = 20480; 
11.
 
12.
// Maximale Breite in Pixel 
13.
 
14.
$max_width = 800; 
15.
 
16.
// Maximale Höhe in Pixel 
17.
 
18.
$max_height = 800; 
19.
 
20.
// 
21.
// Main Script 
22.
// 
23.
 
24.
IF ($_POST["gesendet"]) { // Nur ausführen wenn das Upload Formular gesendet wurde 
25.
 
26.
      IF ($_FILES['upload']['type'] == "image/gif" || $_FILES['upload']['type'] == "image/jpeg" || $_FILES['upload']['type'] == "image/pjepg") { // Prüfen ob der MIME Typ korrekt ist 
27.
 
28.
         IF ($_FILES['upload']['size'] <= $max_size) { // Dateigrösse prüfen 
29.
          
30.
            $size = getimagesize($_FILES['upload']['tmp_name']); 
31.
             
32.
            IF ($size[0] <= $max_width AND $size[1] <= $max_height) { // Höhe und Breite checken 
33.
             
34.
               $time = time(); 
35.
               IF ($_FILES['upload']['type'] == "image/gif")  $name = $time.".gif"; 
36.
               IF ($_FILES['upload']['type'] == "image/jpeg") $name = $time.".jpg"; 
37.
                
38.
               copy($_FILES['upload']['tmp_name'],"$pfad$name"); // Datei Uploaden 
39.
               $ausgabe .= "Bild erfolgreich auf dem Server gespeichert!<br>"; 
40.
             
41.
            } ELSE { 
42.
               $ausgabe .= "Bild ist zu breit oder zu hoch!<br>"; 
43.
44.
          
45.
         } ELSE { 
46.
            $ausgabe .= "Bild ist zu gross!<br>"; 
47.
48.
       
49.
      } ELSE { 
50.
         $ausgabe .= "Ungültiger Dateityp!<br>"; 
51.
52.
 
53.
}    
54.
   // HTML Formular 
55.
?> 
56.
 
57.
<html> 
58.
<head> 
59.
<title>Bild upload</title> 
60.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
61.
<style type="text/css"> 
62.
<!-- 
63.
td {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #330000} 
64.
a { color:#330000; font-weight: normal } 
65.
a:active { color:#996633; text-decoration:underline } 
66.
a:hover { text-decoration:underline; color: #996633} 
67.
a:link { text-decoration:underline } 
68.
input {FONT-SIZE: 10px; COLOR: #330000; FONT-FAMILY: verdana, arial, helvetica, sans-serif; BACKGROUND-COLOR: #FFFFFF; BORDER-RIGHT: #330000 1px solid; BORDER-TOP: #330000 1px solid; FONT-SIZE: 10px; BORDER-LEFT: #330000 1px solid; COLOR: #330000; BORDER-BOTTOM: #330000 1px solid; FONT-FAMILY: verdana, arial, helvetica, sans-serif; BACKGROUND-COLOR: #FFFFFF } 
69.
--> 
70.
</style> 
71.
</head> 
72.
 
73.
<body bgcolor="#FFFFFF" text="#000000"> 
74.
<form name="bildupload" enctype="multipart/form-data" method="post" action="index.php?section=admin&section=upload"> 
75.
  <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" BGCOLOR="#996633" width="400" align="center"> 
76.
  <TR> 
77.
    <TD> 
78.
        <table border="0" cellspacing=1 cellpadding=4 bgcolor="#996633" width="100%"> 
79.
          <TR> 
80.
            <TD bgcolor="#F6E8D9" colspan="2"> <b>Bild upload</b></TD> 
81.
          </TR> 
82.
          <TR> 
83.
            <TD bgcolor="#FFFFFF" background="">Dateigr&ouml;sse:</TD> 
84.
            <TD bgcolor="#FFFFFF" background=""> Maximal 
85.
              <b><? echo $max_size; ?></b> 
86.
              Bytes<br> 
87.
            </TD> 
88.
          </TR> 
89.
          <TR> 
90.
            <TD bgcolor="#FFFFFF" background="">Breite:</TD> 
91.
            <TD bgcolor="#FFFFFF" background="">Maximal 
92.
              <b><? echo $max_width; ?></b> 
93.
              Pixel</TD> 
94.
          </TR> 
95.
          <TR> 
96.
            <TD bgcolor="#FFFFFF" background="">H&ouml;he:</TD> 
97.
            <TD bgcolor="#FFFFFF" background="">Maximal 
98.
              <b><? echo $max_height; ?></b> 
99.
              Pixel</TD> 
100.
          </TR> 
101.
          <TR> 
102.
            <TD bgcolor="#FFFFFF" background="" valign="top">Datei ausw&auml;hlen:<br> 
103.
              <br> 
104.
            </TD> 
105.
            <TD bgcolor="#FFFFFF" background=""> 
106.
              <input type="file" name="upload" size="30"> 
107.
              <br> 
108.
              <b><? echo $ausgabe; ?></b> 
109.
            </TD> 
110.
          </TR> 
111.
          <TR align="center"> 
112.
            <TD bgcolor="#FFFFFF" background="" colspan="2"> 
113.
              <input type="hidden" name="gesendet" value="1"> 
114.
              <input type="submit" name="Upload" value="Upload"> 
115.
            </TD> 
116.
          </TR> 
117.
          <TR> 
118.
            <TD bgcolor="#FFFFFF" background="" align="center" colspan="2"></TD> 
119.
          </TR> 
120.
        </TABLE> 
121.
    </TD> 
122.
  </TR> 
123.
</TABLE> 
124.
</form>
Mitglied: Dani
16.05.2007 um 23:07 Uhr
G' Abend,
du hast es wohl eilig, wa??
Also ich habe dein PHP-Teil ein bisschen überarbeitet:
01.
<?php 
02.
$pfad = "admin/einsatz_bilder"
03.
$einsatznr = $_REQUEST['nummer']; 
04.
 
05.
mkdir($pfad."/".$einsatznr, 0777); 
06.
   
07.
// Maximale Dateigrösse in Byte  
08.
$max_size = 20480; 
09.
 
10.
// Maximale Breite in Pixel 
11.
$max_width = 800; 
12.
 
13.
// Maximale Höhe in Pixel 
14.
$max_height = 800; 
15.
 
16.
 
17.
// Main Script 
18.
IF ($_POST["gesendet"]) { // Nur ausführen wenn das Upload Formular gesendet wurde 
19.
 
20.
      IF (($_FILES['upload']['type'] == "image/gif") || ($_FILES['upload']['type'] == "image/jpeg") || ($_FILES['upload']['type'] == "image/pjepg")) { // Prüfen ob der MIME Typ korrekt ist 
21.
 
22.
         IF ($_FILES['upload']['size'] <= $max_size) { // Dateigrösse prüfen 
23.
        
24.
            $size = getimagesize($_FILES['upload']['tmp_name']); 
25.
         
26.
            IF (($size[0] <= $max_width) AND ($size[1] <= $max_height)) { // Höhe und Breite checken 
27.
             
28.
               IF ($_FILES['upload']['type'] == "image/gif")  $bildname = time().".gif"
29.
               IF ($_FILES['upload']['type'] == "image/jpeg")  $bildname = time().".jpg"
30.
   
31.
               copy($_FILES['upload']['tmp_name'], $pfad."/".$einsatznr."/"$bildname); // Datei Uploaden 
32.
 
33.
               $ausgabe .= "Bild erfolgreich auf dem Server gespeichert!<br>"
34.
 
35.
            } ELSE
36.
               $ausgabe .= "Bild ist zu breit oder zu hoch!<br>"
37.
38.
 
39.
         } ELSE
40.
            $ausgabe .= "Bild ist zu gross!<br>"
41.
42.
 
43.
      } ELSE
44.
         $ausgabe .= "Ungültiger Dateityp!<br>"
45.
46.
 
47.
}    
48.
?>....
Müsste so gehen. Allerdings, ob du im copy gleich umbenennen kannst weiß ich gerade aus dem ff heraus auch nicht.


Gruß
Dani
Bitte warten ..
Mitglied: 23587
16.05.2007 um 23:25 Uhr
Leider funktioniert das immer noch nicht... komisch...

Könnt ihr es bitte noch weiter probieren?

Gruß Aleks
Bitte warten ..
Mitglied: Dani
17.05.2007 um 10:39 Uhr
Moin Alex,
naja....Fehlermeldungen hast du wohl bei dir abgestellt. Also erstmal, du kannst keine JPG - Bilder hochladen - wird einfach nicht erkannt bzw. nicht zugelassen.

So funktioniert es bei auf dem XAMPP - System:
01.
 
02.
<?php 
03.
$pfad = "admin/einsatz_bilder"; 
04.
//$einsatznr = $_REQUEST['nummer']; 
05.
$einsatznr = "3"; 
06.
mkdir($pfad."/".$einsatznr, 0777); 
07.
   
08.
// Maximale Dateigrösse in Byte  
09.
$max_size = 20480; 
10.
 
11.
// Maximale Breite in Pixel 
12.
$max_width = 800; 
13.
 
14.
// Maximale Höhe in Pixel 
15.
$max_height = 800; 
16.
 
17.
// Main Script 
18.
IF ($_POST["gesendet"]) { // Nur ausführen wenn das Upload Formular gesendet wurde 
19.
 
20.
      IF (($_FILES['upload']['type'] == "image/gif") || ($_FILES['upload']['type'] == "image/jpeg") || ($_FILES['upload']['type'] == "image/pjpeg")) { // Prüfen ob der MIME Typ korrekt ist 
21.
 
22.
         IF ($_FILES['upload']['size'] <= $max_size) { // Dateigrösse prüfen 
23.
        
24.
            $size = getimagesize($_FILES['upload']['tmp_name']); 
25.
         
26.
            IF (($size[0] <= $max_width) AND ($size[1] <= $max_height)) { // Höhe und Breite checken 
27.
             
28.
               IF ($_FILES['upload']['type'] == "image/gif")  		$bildname = time().".gif"; 
29.
               ELSE IF ($_FILES['upload']['type'] == "image/jpeg")  $bildname = time().".jpg"; 
30.
			   ELSE IF ($_FILES['upload']['type'] == "image/jpg")  	$bildname = time().".jpg"; 
31.
   
32.
               copy($_FILES['upload']['tmp_name'], $pfad."/".$einsatznr."/".$bildname); // Datei Uploaden 
33.
 
34.
               $ausgabe = "Bild erfolgreich auf dem Server gespeichert!<br>"; 
35.
 
36.
            } ELSE { 
37.
               $ausgabe = "Bild ist zu breit oder zu hoch!<br>"; 
38.
39.
 
40.
         } ELSE { 
41.
            $ausgabe = "Bild ist zu gross!<br>"; 
42.
43.
 
44.
      } ELSE { 
45.
         $ausgabe .= "Ungültiger Dateityp!<br>"; 
46.
47.
 
48.
}    
49.
?> 
50.
 
51.
<html> 
52.
<head> 
53.
<title>Bild upload</title> 
54.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
55.
<style type="text/css"> 
56.
<!-- 
57.
td {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #330000} 
58.
a { color:#330000; font-weight: normal } 
59.
a:active { color:#996633; text-decoration:underline } 
60.
a:hover { text-decoration:underline; color: #996633} 
61.
a:link { text-decoration:underline } 
62.
input {FONT-SIZE: 10px; COLOR: #330000; FONT-FAMILY: verdana, arial, helvetica, sans-serif; BACKGROUND-COLOR: #FFFFFF; BORDER-RIGHT: #330000 1px solid; BORDER-TOP: #330000 1px solid; FONT-SIZE: 10px; BORDER-LEFT: #330000 1px solid; COLOR: #330000; BORDER-BOTTOM: #330000 1px solid; FONT-FAMILY: verdana, arial, helvetica, sans-serif; BACKGROUND-COLOR: #FFFFFF } 
63.
--> 
64.
</style> 
65.
</head> 
66.
 
67.
<body bgcolor="#FFFFFF" text="#000000"> 
68.
<form name="bildupload" enctype="multipart/form-data" method="post" action="index.php?section=admin&section=upload"> 
69.
  <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" BGCOLOR="#996633" width="400" align="center"> 
70.
  <TR> 
71.
    <TD> 
72.
        <table border="0" cellspacing=1 cellpadding=4 bgcolor="#996633" width="100%"> 
73.
          <TR> 
74.
            <TD bgcolor="#F6E8D9" colspan="2"> Bild upload</TD> 
75.
          </TR> 
76.
          <TR> 
77.
            <TD bgcolor="#FFFFFF" background="">Dateigr&ouml;sse:</TD> 
78.
            <TD bgcolor="#FFFFFF" background=""> Maximal 
79.
              <? echo $max_size; ?> 
80.
              Bytes<br> 
81.
            </TD> 
82.
          </TR> 
83.
          <TR> 
84.
            <TD bgcolor="#FFFFFF" background="">Breite:</TD> 
85.
            <TD bgcolor="#FFFFFF" background="">Maximal 
86.
              <? echo $max_width; ?> 
87.
              Pixel</TD> 
88.
          </TR> 
89.
          <TR> 
90.
            <TD bgcolor="#FFFFFF" background="">H&ouml;he:</TD> 
91.
            <TD bgcolor="#FFFFFF" background="">Maximal 
92.
              <? echo $max_height; ?> 
93.
              Pixel</TD> 
94.
          </TR> 
95.
          <TR> 
96.
            <TD bgcolor="#FFFFFF" background="" valign="top">Datei ausw&auml;hlen:<br> 
97.
              <br> 
98.
            </TD> 
99.
            <TD bgcolor="#FFFFFF" background=""> 
100.
              <input type="file" name="upload" size="30"> 
101.
              <br> 
102.
              <? echo $ausgabe; ?> 
103.
            </TD> 
104.
          </TR> 
105.
          <TR align="center"> 
106.
            <TD bgcolor="#FFFFFF" background="" colspan="2"> 
107.
              <input type="hidden" name="gesendet" value="1"> 
108.
              <input type="submit" name="Upload" value="Upload"> 
109.
            </TD> 
110.
          </TR> 
111.
          <TR> 
112.
            <TD bgcolor="#FFFFFF" background="" align="center" colspan="2"></TD> 
113.
          </TR> 
114.
        </TABLE> 
115.
    </TD> 
116.
  </TR> 
117.
</TABLE> 
118.
</form>
Du solltest noch vor dem mkdir ... überprüfen, ob das Verzeichnis schon existiert. Sonst siehsts du immer eine schöne Fehlermeldung. Woher solltest du eigentlich die Einsatznummer?? Ich habe sie zum Testen gefixt (siehe oben). => Funktioniert ansonsten ohne Problme.


Gruß
Dani
Bitte warten ..
Mitglied: Guenni
17.05.2007 um 14:53 Uhr
@Uploader

Hi,

@Aleks

Bei diesem hier ist das problem, dass er das Bild in das falsche verzeichniss hochläd...

In welchem Verzeichnis landet das Bild denn?

Leider funktioniert das immer noch nicht... komisch...
Könnt ihr es bitte noch weiter probieren?

Diesen Appell find' eigentlich fast schon unverschämt.
Bei allen Diskussionsverläufen "rund um deine Feuerwehrseite" hat man
eigentlich nie den Eindruck, dass von deiner Seite mal was kommt, außer
dass gepostete Skripte nicht funktionieren oder dass du schon etliche
Sachen im Internet gefunden hast, die aber nicht ganz genau das enthalten,
was du dir vorstellst.

Oder es herrscht Funkstille. Dass diese Diskussionsverläufe dann
ergebnislos im Sande verlaufen, braucht ja dann niemand zu verwundern.

Du wirst in den seltensten Fällen Skripte finden, die du nicht deinen
Bedürfnissen anpassen musst. Also dazu solltest du schon in der
Lage sein.

Desweiteren wäre es sehr hilfreich, wenn du dich auf wesentliches
beschränken würdest, und nicht jedesmal 2 DIN-A4 seitenlange
bzw. 2 DIN-A4 seitenbreite Formulare postest.
Die RunterRaufLinksRechts-Scrollerei bei deinen Postings macht
nämlich keinen Spass!

@Dani

du kannst keine JPG - Bilder hochladen - wird einfach nicht erkannt bzw. nicht zugelassen.

… war ja nicht die Fragestellung. Seine Antwort war ja, dass es gar nicht funktioniert, oder
was auch immer.

Deshalb war deine Erweiterung der Überprüfung auf
ELSE IF ($_FILES['upload']['type'] == "image/jpg") …
eigentlich unnütz.

Beide Skripte von dir hab' ich ausprobiert, Bilder werden nicht gespeichert.
Ist ja auch nicht schlimm, vielleicht hab' ich ja 'nen Fehler bei Pfadanpassung
oder sonst wo gemacht. Es kommt aber auch keine Fehlermeldung, was ja entweder
auf fehlerhafte Programmlogik schließen läßt, oder dass ein entsprechender
Fehler nicht berücksichtigt wird.

Frage ist vielmehr: Wie geht man das Problem an?
In dem ich mich auf das Wesentliche konzentriere.
Was will ich? Eine Datei "hochladen".
Ob es Bilder, Zip's oder sonst was sind, ob die Datei X-Byte groß ist,
ist das Bild größer als 800x600, ist ja erstmal egal.
Erst wenn das funktioniert, kann ich mich an die Arbeit machen,
entsprechende Filter zu setzen oder aufwändige Formulare zu kreieren.

Und auf das Wesentliche beschränkt sich jetzt mal mein Skript.

Im Rootverzeichnis des Webservers existiert ein Unterverzeichnis
names pub.

Eigentümer/Gruppe dieses Verzeichnisses sind Apache-User/Apache-Group.

In meinem Fall sind das:
www-data – User
www-data – Group

Nachzulesen in der Konfigurationsdatei des Webservers.

Beide haben Schreib- und Leserecht auf diesem Verzeichnis.

Das Formular enthält eine Textbox zur Eingabe eines Zielverzeichnisses
unterhalb pub.


Es findet keine Filterung bezüglich Typ, Größe etc. statt. Dateien
sollen jetzt erstmal "hochgeladen" werden können. Werden Verzeichnisse
erstellt und die Datei(en) korrekt kopiert, mache ich mich mal an die Arbeit
filtere Kriterien.

Skript wurde korrigiert. Neue Version mit REGISTER_GLOBALS=OFF

01.
/* 
02.
Mit $HTTP_SERVER_VARS['DOCUMENT_ROOT'] wird das Rootverzeichnis des Servers ermittelt, 
03.
pub ist ein Unterverzeichnis.  
04.
Lese- und Schreibrecht auf pub haben Apache-User und Apache-Group, 
05.
nachzulesen in Konfigurationsdatei des Webservers. 
06.
*/ 
07.
$pfad=$HTTP_SERVER_VARS['DOCUMENT_ROOT']."/pub/"
08.
$cmd=$_POST['cmd']; 
09.
if($cmd=="Hochladen"){ 
10.
 /* 
11.
 EinsatzNr wird mit dem Formular gesendet und bestimmt den Ordner, 
12.
 in dem das Bild gespeichert wird 
13.
 */ 
14.
 $einsatznr=$_POST['einsatznr']; 
15.
 /* 
16.
 Es wird überprüft, ob EinsatzNr ein Verzeichnis ist. Wenn nicht, wird 
17.
 es erstellt und dem Pfad angehangen. 
18.
 Falls es existiert, wird es dem Pfad angehangen. 
19.
 */ 
20.
 if(!is_dir($pfad.$einsatznr)){ 
21.
  mkdir($pfad.$einsatznr,0777); 
22.
	$pfad.=$einsatznr."/"
23.
 }else
24.
 			 $pfad.=$einsatznr."/"
25.
26.
 /* 
27.
 Im folgenden werden die Variablen für die copy-Funktion 
28.
 deklariert und belegt. 
29.
 */ 
30.
 $quelle=$_FILES['myfile']['tmp_name']; 
31.
 $quellenname=$_FILES['myfile']['name']; 
32.
 $ziel=$pfad.$quellenname
33.
 if(copy($quelle,$ziel)){ 
34.
  echo "Datei $quellenname wurde hochgeladen.<br>";  
35.
	echo "-------------------------------------<br>"
36.
	echo "Quelle: ".$quelle."<br>"
37.
	echo "Quellenname: ".$quellenname."<br>"
38.
	echo "Ziel: ".$ziel."<br>"
39.
 }else
40.
 			 echo "Fehler beim Hochladen der Datei ".$quellenname."<br>"
41.
42.
}
<!DOCTYPE HTML PUBLIC " -W3CDTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Datei-Upload</title>
</head>
<body>
<p>Bilder-Upload</p>
<form enctype="multipart/form-data" method="post" action="upload.php">
Einsatz-Nr: <input type="text" name="einsatznr">
Bild: <input type="file" name="myfile"><input type="submit" name="cmd" value="Hochladen">
</form>
</body>
</html>

Grüße
Günni
Bitte warten ..
Mitglied: Dani
17.05.2007 um 15:01 Uhr
Hi Günni!
… war ja nicht die Fragestellung. Seine Antwort war ja, dass es gar nicht funktioniert, oder
was auch immer.
Ich finde, sowas gehört einfach dazu. Ich wollte zuerst ein jpg - Bild hochladen. Jedoch kam dann die entsprechende Meldung. Somit dachte ich mir, sagsts ihm einfach.

Beide Skripte von dir hab' ich ausprobiert, Bilder werden nicht gespeichert.
Ist ja auch nicht schlimm
Das wundert mich jetzt grad völlig. Ich habe bei meinem letzten Kommentar noch mein Testsystem angeben. Vielleicht liegt es an den unterschiedlichen OS's.


Gruß
Dani
Bitte warten ..
Mitglied: Guenni
17.05.2007 um 16:08 Uhr
@Dani

Hi,

Ich finde, sowas gehört einfach dazu.

... ist ja auch richtig. Aber wenn ich generell z.B. das Problem
habe, Bilder hochzuladen, sollte ich doch primär dieses Problem
lösen.

Alles andere ist doch nur Beiwerk, was Fehler produzieren könnte,
die ich zusätzlich abfangen muß. Also lass ich das doch erstmal weg.

Und wenn ich dieses primäre Problem gelöst habe, kann ich mich
um weiterführende Sachen kümmern, wie Filterung von Datei-Typen,
ausschmücken von Formularen etc..

Dass die Erweiterung auf Dateitypen unnütz war, ging eigentlich
somit mehr in Richtung Aleksander.

Wenn er es schafft, Bilder ins richtige Verzeichnis hochzuladen,
dann kann er sein Skript posten, aber bitte Aleks: keine seitenlangen
Formulare, und dann kann sich Gedanken über Filtern machen.

Das wundert mich jetzt grad völlig. Ich habe bei meinem letzten Kommentar
noch mein Testsystem angeben. Vielleicht liegt es an den unterschiedlichen OS's.

Das mag sein. Ich hatte ja auch geschrieben, dass ich vielleicht selber
Fehler bei der Pfad-Anpassung gemacht habe.

Ich habe auch zuhause kein XAMPP – System, sondern einen Linux-Server
mit Apache incl. PHP, MySQL etc.. Vielleicht liegt's da wirklich an der
Konfiguration. Mein Skript funkt. jedenfalls klaglos bei mir, und bei dir...?

Grüße
Günni
Bitte warten ..
Mitglied: Dani
17.05.2007 um 16:20 Uhr
Hi,
Mein Skript funkt. jedenfalls klaglos bei mir, und bei dir...?
Ne...funtkioniert nicht! Ich habe alles 1:1 übernommen. Das pub - Verzeichnis noch angelegt. Seltsam....


Gruß
Dani
Bitte warten ..
Mitglied: 23587
17.05.2007 um 16:28 Uhr
Leider funktioniert alles nicht richtig bei mir.
Wenn ich ein Bild hochladen packt er das nicht in das Verzeichniss, welches er angelegt hat, sonder immer in "einsatz_bilder".
Und ich weiß einfach nicht wieso...

Ich bruache dringend Hilfe, weil die Seite bald offiziell online gehen soll.


Gruß Aleks
Bitte warten ..
Mitglied: Guenni
18.05.2007 um 13:51 Uhr
@Uploader

@Dani

Hi,

bei mir steht die Variable register_globals=on, die habe ich jetzt auf off gestellt,
jetzt funktioniert das Skript bei mir auch nicht, hätte ich natürlich berücksichtigen
müssen.

Habe das Skript korrigiert.

Grüße
Günni

@Aleks

Hi,

jetzt versuchen wir's mal Schritt für Schritt.

Leg' einfach mal 'ne Datei an, test.php, Inhalt:

01.
printf("<h1>Alle SERVER-Parameter</h1>\n"); 
02.
if ( isset($HTTP_SERVER_VARS)) 
03.
04.
    reset($HTTP_SERVER_VARS);  
05.
    while(list($k, $v) = each($HTTP_SERVER_VARS)) { 
06.
    printf("Variable: %s -- Wert: %s<br>\n", $k, $v); 
07.
08.
  }
Rufe die Datei auf. Dort werden dir die Servervariablen angezeigt.
Erste Variable müsste DOCUMENT_ROOT sein, der Wert dahinter
das Verzeichnis deines Webservers. O.K.??

Diese Variablen werden im Array HTTP_SERVER_VARS gespeichert, abrufbar mit:
$Var = $HTTP_SERVER_VARS['VARIABLEN_NAME'];


Öffne die Datei test.php.
1.)
Füge die Zeile echo $HTTP_SERVER_VARS['DOCUMENT_ROOT']." - Rootverzeichnis des Webservers.<br>";
hinzu, und vergleiche die Ausgabe mit der Ausgabe des o.g. Code's.
2.)
Wenn das O.K. ist, hänge an DOCUMENT_ROOT dein Bilderverzeichnis dran.
Das Verzeichnis einsatz_bilder MUSS Schreib/Lese/Öffnen-Recht für
alle haben!! <-- WICHTIG!!
Das Verzeichnis einsatz_bilder muss sich dementsprechend im Serververzeichnis befinden.
Also, wenn dir mit echo $HTTP_SERVER_VARS['DOCUMENT_ROOT'] so was
angezeigt wird wie: /var/www, dann erstelle das Verzeichnis auch in www.
Ändern kann man das später immer noch.
3.)
Lass dir wieder mit echo den Pfad ausgeben, und kontrolliere ihn auf Fehler.
Hier müsste dann(siehe Punkt 2) /var/www/einsatz_bilder/ rauskommen.
4.)
Wenn der Pfad O.K. ist, versuche in einsatz_bilder ein Verzeichnis zu
erstellen und an den Pfad anzuhängen. Den Pfad mit echo ausgeben
und auf Fehler überprüfen.
Hier müsste dann(siehe Punkt 3) /var/www/einsatz_bilder/bild/ rauskommen

01.
printf("<h1>Alle SERVER-Parameter</h1>\n"); 
02.
if ( isset($HTTP_SERVER_VARS)) 
03.
04.
    reset($HTTP_SERVER_VARS);  
05.
    while(list($k, $v) = each($HTTP_SERVER_VARS)) { 
06.
    printf("Variable: %s -- Wert: %s<br>\n", $k, $v); 
07.
08.
09.
 
10.
/* ------------------------------------------------------------------------------------------------------ *
11.
// 1.) 
12.
echo $HTTP_SERVER_VARS['DOCUMENT_ROOT']." - Rootverzeichnis des Webservers.<br>"
13.
// 2.) 
14.
$pfad=$HTTP_SERVER_VARS['DOCUMENT_ROOT']."/einsatz_bilder/"
15.
// 3.) 
16.
echo $pfad
17.
// 4.) 
18.
if(!is_dir($pfad."bild")){ 
19.
 mkdir($pfad."bild",0777); 
20.
 $pfad.="bild/"
21.
}else
22.
	$pfad.="bild/"
23.
24.
echo $pfad;
bild wird dann natürlich gegen einsatznr ausgetauscht

Wenn du alle 4 Schritte abgearbeitet hast, müsste beim letzten echo $pfad:
/Verzeichnispfad_deines_Webservers/einsatz_bilder/bild/
stehen.
Wenn dem so sein sollte, können wir uns daran machen, die copy-Funktion aufzubauen.

Grüße
Günni
Bitte warten ..
Mitglied: 23587
18.05.2007 um 14:19 Uhr
Das hier Antwortet mir der Server.

01.
Alle SERVER-Parameter 
02.
Variable: MvCONFIG_DIR_MIVA -- Wert: /srv/www/vhosts/ff.beatside.de/httpdocs 
03.
 
04.
/srv/www/vhosts/ff.beatside.de/httpdocs - Rootverzeichnis des Webservers. 
05.
/srv/www/vhosts/ff.beatside.de/httpdocs/einsatz_bilder//srv/www/vhosts/ff.beatside.de/httpdocs/einsatz_bilder/
Bitte warten ..
Mitglied: Guenni
27.05.2007 um 22:48 Uhr
@All Interessierte,

warum kam kein Upload zustande, obwohl das Skript bei mir zuhause und
bei meinem Webhoster funktionierte?

Manche Webhoster betreiben PHP im safe_mode, welcher eine handvoll
Funktionen blockiert. Mehr darüber und eine Liste der betroffenen Funktionen unter:

http://www.php.net/manual/de/features.safe-mode.php

Wird ein Upload-Skript via FTP hochgeladen, so werden FTP-User/Group Eigentümer des
Skripts und erhalten entsprechende Rechte. Versucht man nun mit diesem SKript
eine Datei hochzuladen, so wird das Skript nicht etwa vom FTP-User ausgeführt!!

Wenn man eine Website aufruft, so wird ja auf dem Webserver ein Prozess gestartet.
Den Namen von Besitzer/Gruppe dieses Prozesses findet man in der Konfiguration
des Webservers unter User und Group.

Versucht man nun mit einem entsprechendem Skript eine Datei hochzuladen, so wird
das Skript eben von diesem User ausgeführt. Und das wird verhindert, wenn PHP
im safe_mode betrieben wird.

Abhilfe?

Abhilfe schafft das setuid-Bit, ein erweitertes Dateirecht, mit dem das Skript
ausgestattet sein muß.

Diese Bit hat den Wert 4000 und wird einfach auf die normalen Rechte aufaddiert, z.B.:

chmod 4777 Skriptname.

Heißt in diesem Fall:

Besitzer des Skripts ist FTP-User
Ausführer des Skripts ist der Besitzer des Prozesses, s.o..
Ausgeführt wird das Skript also vom Besitzer des Prozesses im Namen des Besitzers.

Tja, besser kann ich's nicht erklären.

Grüße, VVV
Günni
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...