MyBB.de Forum
Upload Mit Php verändern. - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Upload Mit Php verändern. (/thread-15180.html)



Upload Mit Php verändern. - da3d - 29.11.2009

Hallo erstmal.

Ich habe ein Problem mit dem Php Upload Datei.
Also ich möchte das wo Löschen Steht nur per Passwort gelöscht werden kann.
Das Upload sollte mann Fotos die mann Hochläd nicht sehen können nur für den der hochgeladen hat aber der kann das auch nicht mehr löschen!
Dann sollte dort direckt eine Nachricht per Email an denn Betreiber gehen also benachrichtigung per email solte mann bekommen was hochgeladen wurde damit mann so schnell wie möglich das bearbeiten kann!
Es sollte keine datei von anderen gesehen werden das meine ich wenn ich was hochlade soll kein anderer wenn er auch dort was hochläd die Fotos datein sehen !

und das foto soll dann direckt auf eine Html seite kommen.
Ich hab alles versucht weis nicht weiter und frage euch hiermit
ich kann nicht perfect deutsch und entschuldige mich für eventuelle rechtschreib fehler.

hier der code denn ich gemacht habe.
PHP-Code:
<HEAD>
<
TITLE>Bilder Hochladen Für Frauen</TITLE>
<
META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<
SCRIPT language=JavaScript>
<!--
function 
sicher(){
//Diese Funktion ist für die Formulare, aber eigentlich überflüssig.
var antwort;
antwort=confirm("Bist Du sicher, dass Du alle Felder wieder löschen willst?");
if (
antwort==true){
    return 
antwort;
  }
  else{
  return 
antwort;
  }
  }
//-->
</script>
<
style>
<!--
body {
   
SCROLLBAR-FACE-COLOR#666666; SCROLLBAR-HIGHLIGHT-COLOR: #333333; SCROLLBAR-SHADOW-COLOR: #333333; SCROLLBAR-3DLIGHT-COLOR: #344556; SCROLLBAR-ARROW-COLOR: #fefefe; SCROLLBAR-TRACK-COLOR: #000011; SCROLLBAR-DARKSHADOW-COLOR: #333333;
}

inputtextareaselectfile {
   
border1px solid #333333;
   
background#cccccc;
   
fontbold 11px VerdanaArialHelveticasans-serif;
   
color#333333;

}
td {
   
fontbold 14px VerdanaArialHelveticasans-serif;
   
color#999999;
}
a:link {
   
color#FFFFFF;
   
text-decorationnone;
}
a:visited {
   
color#FFFFFF;
   
text-decorationnone;
}
a:hover {
   
color#999999;
   
text-decorationnone;
}
a:active {
   
color#666666;
}
//-->
</style>
</
HEAD>
<
BODY BGCOLOR=#FFFFFF>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 align="left" bordercolor="#333333" width="700">
   <
TR>
          <
td>
            <
font size="6">
            <
p align="center">Datei Upload</font</div><br>
          </
td>
    <
tr>
    <
td>
<?
php
// Dateiupload
//------------------------------------------------------------------------------------------------------------------------------------
if ($flag==1//Wenn das Formular abgeschickt wurde.
{
    
//Datei checken
    //--------------------------------------------------------
    //Erst die Größe
    
if($datei_size>200000) {$fehler.="Datei ist zu groß!<br>";}
    
//Dann der Typ
    
if(($datei_type != 'text/html' && $datei) && ($datei_type != 'image/jpeg' && $datei) && ($datei_type != 'image/pjpeg' && $datei) && ($datei_type != 'image/gif' && $datei)) {$fehler.="Falscher Dateityp! " .$datei_type"<br>" ;} //Typen können natürlich geändert werden
    //Und dann checken ob überhaupt eine Datei ausgewählt wurde
    
if(!$datei){$fehler.="Keine Datei gewählt!<br>";}
    
//Das Ganze in die Variable $fehler
    //--------------------------------------------------------
    
if($fehler//Bei Fehlern, Meldung ausgeben
    
{
        
$meldung="<h2 align='center'><font color='#880000'>" .$fehler"</font></h2>"//Die Fehlermeldung etwas verschönern  ;-)
        
unset($flag); //Variable $flag wieder zurück setzten
        
echo $meldung//Fehlermeldung ausgeben
    
}
    else
    {
      
//Keine Fehler? Dann Datei hochladen
      //--------------------------------------------------------------------
      
$writeurl "";
      if (
$uvz2 != "")
      {
          
$writeurl "/".$uvz2;
      }
       
$uvz "web$writeurl"//Verzeichnisname (ist immer "web")
       //Die Verzeichnisnamen kommen aus dem Formular weiter unten
       
if (!file_exists($uvz)) //Wenn nicht vorhanden, dann anlegen
       
{
           
mkdir($uvz,0755); //mit den entsprechenden Rechten versehen
       
}
       
$name=$uvz."/".$datei_name;

       
copy($datei$name); //Kopieren der Datei auf den Server
       //Anzeigen der Dateigröße
       
$sizer $datei_size;
       
$ending "Byte";
       if (
$sizer 1000)
       {
           
//Berechnung der Dateigröße in KB
        
$sizer $sizer 1000;
           
$sizer number_format($sizer,2,",",".");
           
$ending "KB";
       }
    
// Ausgabe der Informationen
       
echo "<font size='3'>Information:</font><br>";
       echo 
"Dateityp: $datei_type <br>";
       echo 
"Gr&ouml;&szlig;e: $sizer $ending<br>";
       echo 
"Dateiname: $datei_name<br>";
       echo 
"<font color='#ffffff'>Datei wurde erfolgreich hochgeladen!</font><br>";
       echo 
"<br><a href='$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]'> <<< Zurück</a> (Nach 3 Sekunden automatisch.)<br><br>";
      echo 
"<script language='JavaScript'>
         var gWindowCloseWait = 3;
         function zurueck()
         {
            window.location = (\"
$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]\");
         }
         window.setTimeout(\"zurueck()\", gWindowCloseWait*1000);
         </script>"
;
    }
    
//--------------------------------------------------------------------
}
//------------------------------------------------------------------------------------------------------------------------------------


// Verzeichnis anlegen
//------------------------------------------------------------------------------------------------------------------------------------
if ($flag2==1)
    {
        if(!
$verzname){$fehler.="Kein Verzeichnis eingegeben!<br>";} //Wurde ein Verzeichnis eingegeben?
   
if ($verzname)
   {
      if(!
eregi("^[a-zA-Z0-9]+$",$verzname)){$fehler.="Ungültige Zeichen im Verzeichnisnamen<br>
      (Nur a-z und 0-9 erlaubt)<br>"
;} //Zeichen des anzulegenden Verzeichnisses prüfen
   
}
      if(
$fehler)
      {
          
$meldung="<h2 align='center'><font color='#880000'>" .$fehler"</font></h2>"//Fehlermeldung verschönern ;-)
              
unset($flag2); //Variable $flag2 wieder zurück setzten
              
echo $meldung//Fehlermeldug ausgeben
      
}
      else 
//Wenn es keine Fehler gab
      
{
             
mkdir("web/".$verzname); //Dann kann das Verzeichnis angelegt werden
               
echo "<font size='4'>Verzeichnis '$verzname' wurde erstellt!</font>";
      }

    }
//------------------------------------------------------------------------------------------------------------------------------------



// Der Anfang der Seite
//------------------------------------------------------------------------------------------------------------------------------------
if(!$flag//Die Variablen $flag und $flag2 bekommen erst mit dem Abschicken des einen oder des anderen Formulares einen Wert.
        //Wird das Formular für den Dateiupload abgeschickt ist es $flag bei den Verzeichnissen ist es $flag2.. wer hätte das gedacht.
{
        
//Nun kommt HTML mit einem ganz kleinen Teil PHP
     
?>
        <form action='<? echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>' method="post" enctype="multipart/form-data" name="form1" id="form1" onReset="return sicher()" ?>' method="post" enctype="multipart/form-data" name="form1" id="form1" onReset="return sicher()" ?>' method="post" enctype="multipart/form-data" name="form1" id="form1" onReset="return sicher()" ?>' method='post' enctype='multipart/form-data' name='form1' id="form1" onReset="return sicher()">
        <!-- Die Formaction besteht aus der aktuellen Datei und einer Variable hinter dem "?" Hier wird ein mögliches Unterverzeichnis
       angegeben in dem wir uns vielleicht gerade befinden. Denn dort soll die Datei ja auch rein.  //-->
     <input type="hidden" name="flag" id="flag" value=1><!-- Hier kommt das versteckte Feld. Es bekommt den Wert 1 und wird in PHP
                                  dann als variable gesehen //-->
        <div align="center">
        <table border="0" cellpadding="0" cellspacing="0" width="400" bordercolor="#ffffff" style="border-collapse: collapse">
        <tr>
        <td colspan="2">Datei wählen und abschicken<br>
        <font size="1">Mögliche Dateitypen: *.JPG, .jpg *.gif<br>
        Maximal 200 KB pro Datei.</font></td>
        </tr>
        <tr>
          <td width="54">Datei:</td>
          <td>
                    <input name="datei" type="file" id="datei" size="30" value='<? echo $datei; ?>'>
                  </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Hochladen"> <input type="reset" name="Reset" value="Zurücksetzen">
          </td>
        </tr>
    </table>
        </div>
      </form>
      <?php
   
//Nun das formular für die Verzeichnisse. Das erscheint nur, wenn man in dem Hauptverzeichnis ist...
      //Sonst könnte man ja unendlich viele Verzeichnisse anlegen.
      
if ($uvz2 == "")
      {
      
?>
      <form action='<? echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>' method="post" enctype="multipart/form-data" name="form2" id="form2" onReset="return sicher()" ?>' method="post" enctype="multipart/form-data" name="form2" id="form2" onReset="return sicher()" ?>' method="post" enctype="multipart/form-data" name="form2" id="form2" onReset="return sicher()" ?>' method='post' enctype='multipart/form-data' name='form2' id="form2" onReset="return sicher()">
          <input type="hidden" name="flag2" id="flag2" value=1>
        <div align="center">
        <table border="0" cellpadding="0" width="400" cellspacing="0" bordercolor="#ffffff" style="border-collapse: collapse">
        <tr>
        <td colspan="2">Verzeichnis anlegen</td>
        </tr>
        <tr>
          <td width="54">Name:</td>
          <td>
                    <input name="verzname" type="text" id="verzname" size="30" value="">
                  </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Anlegen"> <input type="reset" name="Reset" value="Zurücksetzen">
          </td>
        </tr>
        </table>
        </div>
      </form>
      <?php
      
}
      }
   
//Nun erst mal eine JavaScript Funktion welche noch benötigt wird.
      
echo " <script language='JavaScript'>
      function del(url, datei) {
         if( confirm(\"Soll die Datei '\" + datei + \"' wirklich gelöscht werden?\") )   window.location = url;
      }
      </script>"
;
      
$writeurl "";
      
//Wo sind wir? Haupt oder Unterverzeichnis?
      
if ($uvz2)
      {
          
$writeurl "/".$uvz2;
          echo 
"<a href='$PHP_SELF'><< Home</a><br>";
      }
      
$uvz="web$writeurl"// Das Hauptverzeichnis ist immer /web
       
if (!file_exists($uvz)) //Wenn nicht vorhanden, dann anlegen
       
{
           
mkdir($uvz,0755);
       }
      if (
$sent==1//Wenn Datei gelöscht werden soll.... Weiter unten.
      
{
          
$name urldecode($name);
          
$pfad $uvz."/".$name;
          @
unlink($pfad); //Pfad zusammenbasteln ;-)
        
if ($uvz2 != "")
        {
           echo 
" <script language='JavaScript'>
             window.location = ('upload.php?uvz2=
$uvz2') </script>";  //Und wieder dahin zurück wo wir waren
        
}
        else
        {
           echo 
" <script language='JavaScript'>
             window.location = ('upload.php') </script>"
;   //Und wieder dahin zurück wo wir waren
        
}
      }
      echo 
"<font size='3'>Aktuelles Verzeichnis:<br>
      <a href='
$uvz' target='_blank'>/$uvz</a><p align='center'>Bisher hochgeladene Dateien:<br><hr width='400' color='#ffffff'></p></font><ol>";
      
//Anzeigen des Verzeichnisses und es folgt das Anzeigen der hochgeladenen Dateien
   
$i 1;
      
$verzeichnis opendir($uvz);

      while (
$file readdir($verzeichnis)) //Verzeichnis auslesen
      
{
          if (
is_file($uvz."/".$file))
          {
              echo 
"<li><a href='$uvz/$file' target='_blank'>$file</a> - - "//Datei(en) anzeigen
              
$file urlencode($file);
              echo 
" <a href=\"javascript:del('$PHP_SELF?sent=1&name=$file&uvz2=$uvz2','".urldecode($file)."')\"> <font color='#880000'>L&ouml;schen<hr></font></a></li>";
        
//Möglichkeit zum Löschen der Datei. Die JavaScriptfunktion del ist hierbei eine Abfrage ob wirklich gelöscht werden soll.
        //Klickt man ja, wird die URL übergeben mit der Variable $sent=1  Dieses wurde weiter oben ja bereits abgefragt.
              
$i++;
          }
      }
      if (
$i == 1)
      {
          echo 
"Keine Dateien vorhanden";
      }
      
closedir($verzeichnis);
      echo 
"</ol>";

if (
$uvz2 == "")
{
//Das Gleiche für die Verzeichnisse nochmal
if ($sent2==1)
      {
          
shell_exec(rmdir($name));
          echo 
" <script language='JavaScript'>
          window.location = ('upload.php') </script>"
;
      }
echo 
" <script language='JavaScript'>
      function del2(url, verzeichnis) {
         if( confirm(\"Soll Das Verzeichnis '\" + verzeichnis + \"' wirklich gelöscht werden?\") )   window.location = url;
      }
      </script>"
;
echo 
"<font size='3'><p align='center'>Bisher angelegte Verzeichnisse:<br><hr width='400' color='#ffffff'></p></font><ol>";
  
//Auslesen der Verzeichnisse
  
$dirlist=array();
  
$writeurl "";
      if (
$uvz2)
      {
          
$writeurl "/".$uvz2;
      }
  
$dir "web$writeurl";
  
$dh=opendir($dir);
  if (
$dh)
  {
  
$i=1;
   while (
$filename=readdir($dh))
   {
     if (
is_dir($dir."/".$filename) && $filename != "." && $filename != "..")
     {
       echo 
"<li><a href='$PHP_SELF?uvz2=$filename'>../".$dir."/".$filename."</a> - - ";
       echo 
" <a href=\"javascript:del2('$PHP_SELF?sent2=1&name=".$dir."/".$filename."','$filename')\"> <font color='#880000'>L&ouml;schen (Nur wenn leer.)<hr></font></a></li>";
    
//Ausgabe der Verzeichnisliste, wieder mit Möglichkeit zum Löschen.
       
$i++;
     }
   }
   if (
$i == 1)
      {
          echo 
"Keine Verzeichnisse vorhanden";
      }
   
closedir($dh);
  }
  else
  {
   
//Fehlermeldung
   
echo "Ein FEHLER ist aufgetreten und keiner weiß warum.... :-D";
  }
echo 
"</ol>";
}
//------------------------------------------------------------------------------------------------------------------------------------

// 
  
?>
    </TD>
   </TR>
</TABLE>
<!-- by www.Islamischeheiratsvermittlung.de //-->
</BODY>
</HTML>