Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


Datei Upload in PHP mit Userlogin

Programmier-Tipps und -Tricks. Artikel zum Thema Java, PHP, C++, Delphi, VB, etc.

Datei Upload in PHP mit Userlogin

Beitragvon CoolCasimir am 21.12.2004, 15:24

Hier noch mal eine andere Variante eines Dateiuploades in PHP, diesmal aber mit Userverwaltung.
Die Userverwaltung habe ich von folgender Seite übernommen: http://www.tutorials.de/tutorials9684.html

Anleitung zum Installieren (Alle Dateien befinden sich weiter unten):
Erstmal brauchen wir eine MySqldatenbank und in dieser wird dann eine Tabelle angelegt.
Code: Alles auswählen
CREATE TABLE benutzerdaten (
  Id Int(11) NOT NULL auto_increment,
  Nickname VarChar(50) NOT NULL default '',
  Kennwort VarChar(50) NOT NULL default '',
  Nachname VarChar(50) NOT NULL default '',
  Vorname VarChar(50) NOT NULL default '',
  PRIMARY KEY (Id)
)


Nun den Quelltext weiter unten von USER_ANLEGEN.php
kopieren und mit den entsprechenden Änderungen versehen
(Mehrere Benutzer eintragen, Datenbankname, DBBenutzer, DBPasswort)
Die Datei kann schon mal mit einem Browser augerufen werden,
nun sind die Benutzer angelegt worden.

Als nächstes alle Quelltexte Kopieren und die Dateien genauso nennen wie ich
es angegeben habe. Jetzt muss man nur noch die Dateien login.php
und upload.php bearbeiten. Bei login.php müssen nur die Zugangsdaten für die
Datenbank eingegeben werden und in der upload.php die Konfiguration angepasst werden.

Das war es auch schon, die Datei upload.php kann nun aufgerufen werden und man muss
sich einloggen. Wenn man alles richtig gemacht hat, funktioniert es sogar :-D

Hier die Dateien:

USER_ANLEGEN.php
Code: Alles auswählen
<?php
// Definition der Benutzer
$benutzer[0]["Nickname"] ="admin";
$benutzer[0]["Kennwort"] = "admin";
$benutzer[0]["Nachname"] = "Benutzer";
$benutzer[0]["Vorname"] = "Test";

$benutzer[1]["Nickname"] = "susi";
$benutzer[1]["Kennwort"] = "passwort";
$benutzer[1]["Nachname"] = "Sauer";
$benutzer[1]["Vorname"] = "Susanne";

$benutzer[2]["Nickname"] = "didi";
$benutzer[2]["Kennwort"] = "didi";
$benutzer[2]["Nachname"] = "Sauer";
$benutzer[2]["Vorname"] = "Dieter";

// An dieser Stelle können beliebig viele Benutzer angelegt werden.
// Wichtig ist nur die Fortführung der Nummer.

// Aufbau der Datenbankverbindung
$connectionid  = mysql_connect ("localhost", "benutzername", "passwort"); // Hier Benutzername und Passwort
                                                                          //für die MySqldatenbank eingeben.
if (!mysql_select_db ("datenbankname", $connectionid)) // Hier den Datenbanknamen eingeben
{
  die ("Keine Verbindung zur Datenbank");
}

// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");

// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
  // SQL-Anweisung erstellen
  $sql = "INSERT INTO ".
    "benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
  "VALUES ('".$value["Nickname"]."', '".
                       md5 ($value["Kennwort"])."', '".
                       $value["Nachname"]."', '".
                       $value["Vorname"]."')";
  mysql_query ($sql);

  if (mysql_affected_rows ($connectionid) > 0)
  {
    echo "Benutzer erfolgreich angelegt.<br>\n";
  }
  else
  {
   echo "Fehler beim Anlegen der Benutzer.<br>\n";
  }
}
?>


upload.php
Code: Alles auswählen
<?php
include ("checkuser.php");
/*
  Diese Datei einfach in ein belibiges Verzeichnis kopieren, maximale Dateigröße eingeben,
  maximale Verzeichnislänge eingeben und das Arbeitsverzeichnis bei $workingdir einstellen,
  welches dann automatisch mit den entsprechenden Rechten beim ersten Start dieser Datei angelegt wird.
  Written by Christian Fedder 17.12.2004 Hamburg Germany
*/

//>>>>>>>>>>>>>>>>>>>> KONFIGURATION <<<<<<<<<<<<<<<<<<<<<<<<
//Maximale Dateigröße
$max_filesize = 4000000; //4000 KB = 4MB)

//Maximale Verzeichnislänge
$max_dirlen = 50; //50 Zeichen

//Arbeitsverzeichnis (Wird beim ersten Aufrufen der Datei erstellt)
$workingdir = "uploads";

//Eigener Dateiname
$filename = "upload.php";

/*Dateitypen
Einfach die Dateiendung, Doppelpunkt und den PHP Dateityp eintragen.
Will man den PHP Dateitypen herausfinden, einfach mal eine Datei hochladen, dann wird
dieser angezeigt, auch wenn der Dateityp nicht zulässig war. Die Liste kann beliebig fortgeführt werden*/
$filetypes=array("*.html:text/html","*.jpg:image/jpeg","*.jpeg:image/pjpe","*.mp3:audio/mpeg","*.gif:image/gif");
//>>>>>>>>>>>>>>>>>>> KONFIGURATION ENDE <<<<<<<<<<<<<<<<<<<<<<<<

if (!file_exists($workingdir)) //Wenn das Arbeitsverzeichnis nicht da ist, dann anlegen.
{
   mkdir($workingdir,0755);
}
?>
<HTML>
<HEAD>
<TITLE>Uploadscript by Christian Fedder 2004</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;
  BACKGROUND-COLOR: #EEEEEE;
}

input, textarea, select {
   border: 1px solid #333333;
   background: #FFFFFF;
   font: 11px Tahoma, Arial, Helvetica, sans-serif;
   color: #333333;
}
td {
   font: 14px Tahoma, Arial, Helvetica, sans-serif;
   color: #000000;
}
A:link {
   COLOR: #666666; TEXT-DECORATION: none
}
A:visited {
   COLOR: #666666; TEXT-DECORATION: none
}
A:active {
   COLOR: #ff9933; TEXT-DECORATION: none
}
A:hover {
   COLOR: white; BACKGROUND-COLOR: #000000; TEXT-DECORATION: none
}
//-->
</style>
</HEAD>
<BODY>
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 width="800" align="center" bordercolor="#333333">
   <TR>
          <td colspan="2">
            <div align="center"><font size="6">Datei Upload</font</div><br><br>
          </td>
    <tr>
    <td valign="top" align="left" width="380" style="border-right:1px #000000 dashed;border-top:1px #000000 dashed;
    border-bottom:1px #000000 dashed;">
    <br>
<?php
// Dateiupload
//----------------------------------------------------------------------------------------------------------------------
if ($flag==1) //Wenn das Formular abgeschickt wurde.
{
    //Datei checken
    //--------------------------------------------------------
    //Checken ob überhaupt eine Datei ausgewählt wurde
    $i=1;
    if(!$datei)
    {
        $fehler.="Keine Datei gewählt!<br>";
    }
    else
    {
           //Und die Größe der Datei
          if($datei_size > $max_filesize)
          {
            $sizer = $datei_size;
            $sizer = $sizer / 1000;
            $sizer = number_format($sizer,2,",",".");
            $fehler.="Datei ist zu groß! $sizer KB<br>";
          }
          else
          {
              $i=0;
              $loop = $filetypes;
              while(list($k,$v)=each($loop))  // Alle Dateitypen checken
              {
                 $check=explode(":",$v); // Dateinamen checken (Bei ":" erfolgt Trennung)
                 if ($datei_type == $check[1] && $datei)
                 {
                      $i = $i+1;
                 }
              }
            }
    }
    if ($i==0) {$fehler.="Falscher Dateityp! " .$datei_type. "<br>";}
    //Das Ganze in die Variable $fehler
    //--------------------------------------------------------
    if($fehler) //Bei Fehlern, Meldung ausgeben
    {
        $meldung="<h3><font color='#880000'>" .$fehler. "</font></h3>"; //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 = "$workingdir$writeurl"; //Verzeichnisname workingdir wird am Anfang deklariert.
       //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='#FF0000'>Datei wurde erfolgreich hochgeladen!</font><br>";
       echo "<br><a href='$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]'> <<< Zurück</a> (Nach 10 Sekunden automatisch.)<br><br>";
       echo "<script language='JavaScript'>
         var gWindowCloseWait = 10;
         function zurueck()
         {
            window.location = (\"$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]\");
         }
         window.setTimeout(\"zurueck()\", gWindowCloseWait*1000);
         </script>";
    }
    //--------------------------------------------------------------------
}
//----------------------------------------------------------------------------------------------------------------------

// Verzeichnis anlegen
//----------------------------------------------------------------------------------------------------------------------
if ($flag2==1)
    {
   //Erst mal ein paar Prüfungen
   if(!$verzname)
   {
      $fehler.="Kein Verzeichnis eingegeben!<br>"; //Wurde ein Verzeichnis eingegeben?
   }
   else
   {
      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
      }
      else
      {
              if (strlen($verzname) > $max_dirlen)
              {
                      $fehler.="Verzeichnisname ist zu lang<br>(Max. $max_dirlen Zeichen)";
              }
      }
   }
   /*Doppelte Verzeichnisnamen checken. Fals nicht gewünscht, einfach diesen Bereich auskommentieren.
   Bitte nur bei Unixsystemen, denn Windows erlaubt Doppelte Verzeichnisnamen nicht
   und dann erscheinen unschöne Fehlermeldungen :-(

   >>>>>>>>>>>>>>>>>>>>> Doppelte Verzeichnisnamen Anfang <<<<<<<<<<<<<<<<<<<<<<<<< */
   $writeurl = "";
        if ($uvz2)
        {
            $writeurl = "/".$uvz2;
        }
   $dir = "$workingdir$writeurl"; //Zusammensetzen des richtigen Pfades
   $dir = strtolower($dir);
   $verzname = strtolower($verzname);
   $dh=opendir($dir);
   if ($dh)
   {
      $i=1;
      while ($filename=readdir($dh)) //Loopen durch die bereits angelegten Verzeichnisse
      {
         if (is_dir($dir."/".$filename) && $filename != "." && $filename != "..")
         //Die Punkte ausschliessen falls Unixsystem
              {
                 if ($verzname == $filename) {$fehler.="Verzeichnis ist schon vorhanden!<br>";}
                 //Doppelte Verzeichnisnamen ausschliessen, da es sonst zu Fehlermeldungen auf
                 //Windows-Webservern kommt
              }
      }
   }
      closedir($dh);
      //>>>>>>>>>>>>>>>>>>>>> Doppelte Verzeichnisnamen Ende <<<<<<<<<<<<<<<<<<<<<<<<<

      if($fehler)
      {
          $meldung="<h3><font color='#880000'>" .$fehler. "</font></h3>"; //Fehlermeldung verschönern ;-)
              unset($flag2); //Variable $flag2 wieder zurück setzten
              echo $meldung; //Fehlermeldug ausgeben
      }
      else //Wenn es keine Fehler gab
      {
             mkdir("$workingdir/".$verzname); //Dann kann das Verzeichnis angelegt werden
               echo "<font size='4'>Verzeichnis '$verzname' wurde erstellt!</font>";
      }

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


// Hier beginnt die eigentliche 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()">
        <!-- 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 //-->
        <table border="1" width="340" cellpadding="1" cellspacing="1" bordercolor="#ffffff" style="border-collapse: collapse">
        <tr>
        <td colspan="2"><b>Datei wählen und hochladen</b><br>
        <font size="1">Mögliche Dateitypen:<br>
        <?php
         while(list($k,$v)=each($filetypes))  // Alle Dateitypen checken
         {
                 $check=explode(":",$v);
                 echo $check[0]. " ";
         }
         echo "<br>";
         ?>
        Maximal <?php echo $max_filesize/1000; ?> KB pro Datei.</font></td>
        </tr>
        <tr>
          <td width="54">Datei:</td>
          <td>
                    <input name="datei" type="file" id="datei" size="30" value='<?php 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>
      </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()">
          <input type="hidden" name="flag2" id="flag2" value=1>
        <table border="1" cellpadding="1" width="340" cellspacing="1" bordercolor="#ffffff" style="border-collapse: collapse">
        <tr>
        <td colspan="2"><b>Verzeichnis anlegen</b></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>
      </form>
      <?php
      }
      }
      //Nun erst mal eine JavaScript Funktion welche noch zum Löschen 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'><< Zurück zum Hauptverzeichnis</a><br>";
      }
      $uvz="$workingdir$writeurl"; // workingdir wird am Anfang der Datei deklariert.
       if (!file_exists($uvz)) //Wenn nicht vorhanden, dann anlegen
       {
           mkdir($uvz,0755);
       }
      if ($loesch=="datei") //Wenn Datei gelöscht werden soll.... Weiter unten.
      {
          $name = urldecode($name);
          $pfad = $uvz."/".$name;
          @unlink($pfad); //Pfad zusammenbasteln ;-)
        if ($uvz2 != "")  //Waren wir in einem Unterverzeichnis?
        {
           echo " <script language='JavaScript'>
             window.location = ('$filename?uvz2=$uvz2') </script>";  //Dann wieder zurück in das Unterverzeichnis
        }
        else
        {
           echo " <script language='JavaScript'>
             window.location = ('$filename') </script>";   //Und wieder dahin zurück wo wir waren
        }
      }
      echo "<font size='3'><b>Aktuelles Verzeichnis: <b><a href='$uvz' target='_blank'>/$uvz</a></font>
      </td>
      <td style='border-top:1px #000000 dashed;border-bottom:1px #000000 dashed;' valign='top'>
      <br>
      <p align='center'><b>Hochgeladene Dateien:</b><br><hr width='400' color='#000000'></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' onMouseOver=\"window.status='Dateiname: $file'; return true\" onMouseOut=\"window.status=''; return true\">$file</a> - - "; //Datei(en) anzeigen
              $file = urlencode($file);
              echo " <a href=\"javascript:del('$PHP_SELF?loesch=datei&name=$file&uvz2=$uvz2','".urldecode($file)."')\" onMouseOver=\"window.status='Löschen: " .urldecode($file). "'; return true\" onMouseOut=\"window.status=''; return true\"> <font color='#880000'>L&ouml;schen</font></a><hr></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 $loesch=datei  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 ($loesch=="verzeichnis")
      {
          shell_exec(rmdir($name));
          echo " <script language='JavaScript'>
          window.location = ('$filename') </script>";
      }
echo " <script language='JavaScript'>
      function del2(url, verzeichnis) {
         if( confirm(\"Soll Das Verzeichnis '\" + verzeichnis + \"' wirklich gelöscht werden?\") )   window.location = url;
      }
      </script>";
echo "<p align='center'><b>Angelegte Verzeichnisse:</b><br><hr width='400' color='#000000'></p><ol>";
  //Auslesen der Verzeichnisse
  $dirlist=array();
  $writeurl = "";
      if ($uvz2)
      {
          $writeurl = "/".$uvz2;
      }
  $dir = "$workingdir$writeurl";
  $dh=opendir($dir);
  if ($dh)
  {
  $i=1;
   while ($filename=readdir($dh))
   {
     if (is_dir($dir."/".$filename) && $filename != "." && $filename != "..") //Die Punkte ausschliessen falls Unixsystem
     {
       echo "<li><a href='$PHP_SELF?uvz2=$filename' onMouseOver=\"window.status='Verzeichnis: ../$dir/$filename'; return true\" onMouseOut=\"window.status=''; return true\">../".$dir."/".$filename."</a> - - ";
       echo " <a href=\"javascript:del2('$PHP_SELF?loesch=verzeichnis&name=".$dir."/".$filename."','$filename')\" onMouseOver=\"window.status='Löschen ../$dir/$filename'; return true\" onMouseOut=\"window.status=''; return true\"> <font color='#880000'>L&ouml;schen (Nur wenn leer.)</font></a><hr></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>";
}
//----------------------------------------------------------------------------------------------------------------------

// by Christian Fedder 17.12.2004 Hamburg Germany
echo "</TD>
   </TR>
</TABLE><br>
<table border='0' align='center'>
<tr><td valign='bottom' align='center'>
<a href='logout.php'>Logout " .$_SESSION["user_vorname"]. " " .$_SESSION["user_nachname"]. "</a><br>
Your IP:" .$_SERVER['REMOTE_ADDR']. "</td></tr>
</table>";
  ?>
<!-- by Christian Fedder 12.12.2004 Hamburg Germany //-->
</BODY>
</HTML>


checkuser.php
Code: Alles auswählen
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
  header ("Location: formular.php");
}
?>


formular.php
Code: Alles auswählen
<?php session_start (); ?>
<html>
<head>
  <title>Login</title>
<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;
  BACKGROUND-COLOR: #EEEEEE;
}

input, textarea, select {
   border: 1px solid #333333;
   background: #FFFFFF;
   font: 11px Tahoma, Arial, Helvetica, sans-serif;
   color: #333333;
}
td {
   font: 14px Tahoma, Arial, Helvetica, sans-serif;
   color: #000000;
}
A:link {
   COLOR: #666666; TEXT-DECORATION: none
}
A:visited {
   COLOR: #666666; TEXT-DECORATION: none
}
A:active {
   COLOR: #ff9933; TEXT-DECORATION: none
}
A:hover {
   COLOR: white; BACKGROUND-COLOR: #000000; TEXT-DECORATION: none
}
//-->
</style>
</head>

<body>
<form action="login.php" method="post">
<table border=0>
<tr>
  <td width='100'>Name:</td>
  <td><input type="text" name="name" size="20"></td>
</tr>
<tr>
  <td>Kennwort:</td>
  <td><input type="password" name="pwd" size="20"></td>
</tr>
<tr>
  <td><input type="submit" value="Login"></td>
</tr>
</table>
<?php
if (isset ($_REQUEST["fehler"]))
{
  echo "<table border=0><tr><td>Die Zugangsdaten waren ungültig.</td></tr></table>";
}
?>
</form>
</body>
</html>


login.php
Code: Alles auswählen
<?php
// Session starten
session_start ();

// Datenbankverbindung aufbauen
$connectionid  = mysql_connect ("localhost", "benutzername", "passwort"); // Hier Benutzername und Passwort
                                                                          //für die MySqldatenbank eingeben.
if (!mysql_select_db ("datenbankname", $connectionid)) // Hier den Datenbanknamen eingeben
{
  die ("Keine Verbindung zur Datenbank");
}

$sql = "SELECT ".
    "Id, Nickname, Nachname, Vorname ".
  "FROM ".
    "benutzerdaten ".
  "WHERE ".
    "(Nickname like '".$_REQUEST["name"]."') AND ".
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)
{
  // Benutzerdaten in ein Array auslesen.
  $data = mysql_fetch_array ($result);

  // Sessionvariablen erstellen und registrieren
  $_SESSION["user_id"] = $data["Id"];
  $_SESSION["user_nickname"] = $data["Nickname"];
  $_SESSION["user_nachname"] = $data["Nachname"];
  $_SESSION["user_vorname"] = $data["Vorname"];

  header ("Location: upload.php");
}
else
{
  header ("Location: formular.php?fehler=1");
}
?>


logout.php
Code: Alles auswählen
<?php
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.
ob_start ();

session_start ();
session_unset ();
session_destroy ();

header ("Location: formular.php");
ob_end_flush ();
?>


VIEL SPASS!!
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg


Beitragvon miezmutz am 31.12.2004, 02:02

bestimmt ein gelungener Artikel, schade eigentlich daß ich es nicht beurteilen kann... :wink:
miezmutz
Moderator
 
Beiträge: 2411
Registriert: 19.07.2004, 13:04
Wohnort: Rendsburg

Beitragvon Clayde am 30.04.2005, 11:35

Das Script an sich ist klasse. Aber es kann bei mir keine Bilder hochladen. Es kommt jedoch keine Fehlermeldung.

Hier mal der Link:

http://vs-galerie.de/Tester/upload.php

Benutzer: admin
Passwort: admin

Vielen Dank
Clayde
 
Beiträge: 4
Registriert: 30.04.2005, 10:08

Beitragvon CoolCasimir am 30.04.2005, 14:48

Auch hier das Problem: Das Verzeichnis "uploads" existiert bei Dir nicht, dieses musst Du anlegen.
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Clayde am 30.04.2005, 19:09

Danke für die schnelle Antwort.
Hat mir jedoch leider nichts geholfen, da der Ordner angelegt war. Ich habe ihn auch mal spaßeshalber gelöscht, anschließend kam auch prompt eine Fehlermeldung.
Zum Beweis, dass das Verzeichnis besteht, habe ich jetzt ein Bild per FTP hochgeladen.

Was ich auch komisch finde, wenn ich dann auf der Upload-Seite bin, und auf das Verzeichnis "uploads" klicke, kommt, dass die Seite nicht gefunden werden kann. Gut, ist auch irgendwie logisch, da das Verzeichnis keine Index-Datei hat, aber ist das so gewollt?
Clayde
 
Beiträge: 4
Registriert: 30.04.2005, 10:08

Beitragvon Hugo1980 am 05.05.2005, 13:03

Bei mir läuft das ganze Upload - System ohne Probleme.

Ich habe jetzt die Frage, ob es auch möglich ist, nur mir als Admin das Recht zu gewähren, die Dateien und Verzeichnisse wieder zu löschen? Wäre nämlich echt cool, wenn die anderen User nichts von meinm Server löschen können, sondern nur Uploaden.

Vielen Dank für eine Antwort
Hugo1980
 
Beiträge: 1
Registriert: 05.05.2005, 12:57

Beitragvon Herryan am 24.05.2005, 19:39

Hugo1980 hat geschrieben:Ich habe jetzt die Frage, ob es auch möglich ist, nur mir als Admin das Recht zu gewähren, die Dateien und Verzeichnisse wieder zu löschen? Wäre nämlich echt cool, wenn die anderen User nichts von meinm Server löschen können, sondern nur Uploaden.

Vielen Dank für eine Antwort


Hallo Hugo1980,

hier ist die Lösung: Wenn du als Admin einlogst, stellt "Löschen" zur Verfügung. Sonst ist es für andere nicht sichtbar.

Also suchst du diese Zeile in datei upload.php :
Code: Alles auswählen
echo "<li><a href='$uvz/$file' target='_blank' onMouseOver="window.status='Dateiname: $file'; return true" onMouseOut="window.status=''; return true">$file</a> - - "; //Datei(en) anzeigen
              $size = filesize ($uvz."/".$file);
             
           $file = urlencode($file);
echo " <a href="javascript:del('$PHP_SELF?loesch=datei&name=$file&uvz2=$uvz2','".urldecode($file)."')" onMouseOver="window.status='Löschen: " .urldecode($file). "'; return true" onMouseOut="window.status=''; return true"> <font color='#880000'>L&ouml;schen</font></a><hr></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 $loesch=datei  Dieses wurde weiter oben ja bereits abgefragt.


und du solltest so ändern:
Code: Alles auswählen
echo "<li><a href='$uvz/$file' target='_blank' onMouseOver="window.status='Dateiname: $file'; return true" onMouseOut="window.status=''; return true">$file</a> - - "; //Datei(en) anzeigen
              $size = (int) (filesize ($uvz."/".$file)/1024);
echo  "size: $size KB";
           $file = urlencode($file);
         
           if ($user_nickname=="Admin")//hier beliebig Name ändern
           {
            echo " <a href="javascript:del('$PHP_SELF?loesch=datei&name=$file&uvz2=$uvz2','".urldecode($file)."')" onMouseOver="window.status='Löschen: " .urldecode($file). "'; return true" onMouseOut="window.status=''; return true"> <font color='#880000'>- - L&ouml;schen</font></a><hr></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 $loesch=datei  Dieses wurde weiter oben ja bereits abgefragt.
Herryan
 
Beiträge: 1
Registriert: 24.05.2005, 19:09

Beitragvon bigborre am 16.07.2005, 18:29

Habe es ganz gut hinbekommen, aber nach dem Upload kommt
Warning: copy(): open_basedir restriction in effect. File(/tmp/php858oSy) is not within the allowed path(s): (/cdcv2/www/bigborre:/cdcv2/www2/bigborre) in /cdcv2/www2/bigborre/html/upload/upload.php on line 159


Und die Dateien kann ich dann nicht finden
bigborre
 
Beiträge: 1
Registriert: 16.07.2005, 18:27

Beitragvon yerba am 22.10.2005, 19:32

Ich versuche das im forum vorgestellte uploadscript bei mir zum laufen zu bringen. Das script läuft ohne fehlemeldung aber auch ohne ergebnis durch. Anscheinend werden keine daten wie dateiname gepostet. Das verzeichnis für den upload habe ich explizit angelegt. Aber es passiert nichts. Was mache ich falsch :?:
yerba
 
Beiträge: 7
Registriert: 22.10.2005, 19:05
Wohnort: Senden

Beitragvon CoolCasimir am 23.10.2005, 19:28

yerba hat geschrieben:Ich versuche das im forum vorgestellte uploadscript bei mir zum laufen zu bringen. Das script läuft ohne fehlemeldung aber auch ohne ergebnis durch. Anscheinend werden keine daten wie dateiname gepostet. Das verzeichnis für den upload habe ich explizit angelegt. Aber es passiert nichts. Was mache ich falsch :?:

Gib doch mal einen Link
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon yerba am 24.10.2005, 18:15

http://www.inetworld.biz/upload.php. Ich habe dein erstes upload script benutzt, da ich keine db bei meinem provider zur verfügung habe. Im prinzip ist dies jedoch nicht relevant, da ich auch das andere upload script mit login bei mir auf meinem server getestet habe, und das ergebnis war immer gleich. Es wäre echt klasse, wenn ich dieses script zum laufen bringen würde. Übrigens habe ich zig andere upload scripte getestet, und bei allen das gleiche ergebnis,
yerba
 
Beiträge: 7
Registriert: 22.10.2005, 19:05
Wohnort: Senden

Beitragvon CoolCasimir am 25.10.2005, 13:10

Hi, also erst mal solltest Du dieses nehmen: http://www.informationsarchiv.net/foren ... 12269.html
Dann liegt es an Deinem Anbieter. Ist Safemodus an?
Und prüfe noch mal die Rechte auf das Verzeichnis.
Hast Du überhaupt das Verzeichnis web angelegt?
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon mZet am 06.12.2005, 17:25

wo kann man safemode einstellen?

und kann man dann sehen welcher user welche Datei hochgeladne hat?
mZet
 
Beiträge: 1
Registriert: 06.12.2005, 17:24

Beitragvon stromer_htl am 06.12.2005, 18:36

hi!

ich habe die oben genannten codes verwendet und auf meinem server (mac os x server 10.4.3) abgelegt. leider bekomme ich nun folgenden fehler:
Parse error: parse error, unexpected T_STRING in /Library/WebServer/Documents/checkuser.php on line 5

meine checkuser.php sieht wie folgt aus:

Code: Alles auswählen
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
  header ("Location: formular.php");
}
?>


was mache ich falsch?

bin über jede antwort dankbar!

gruß felix
stromer_htl
 
Beiträge: 1
Registriert: 06.12.2005, 18:31

Beitragvon Amai123 am 13.02.2006, 17:46

Hi,
Erstmal ein Sehr Nettes Script =)

Nur leider stimmt bei mir Irgendwas nicht...
Ich logg mich ein aber kann keine Verzeichnisse erstellen bzw. etwas Hochladen, ich bitte um Rat...

Euer Amai123
( http://sokuha-df.de/images/site/andreas/upload.php )
Amai123
 
Beiträge: 1
Registriert: 13.02.2006, 17:44

Nächste


Ähnliche Themen


Zurück zu Artikel Softwareprogrammierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste