Profil - bild upload

ungeliebt

Mitglied
PHP:
<!DOCTYPE >
<html>
  <title> Eingabe Bereich für Ihre Daten  </title>
  <head>
  </head>
  <body>
<?php 


include_once('verarbeitung.php'); 
  if(isset($_POST["upl"]))
  {
  upload();
  }
  else if(isset($_POST["abschicken"]))
  {
    verarbeitung();
  }
  else
  {
    upload();
  }
  

    
                                     
function upload()
{

echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>"; 


echo "<table border=\"1\">";  
    echo "<tr><td>";  
    
         // Einstellungen 
    $maxsize = "419430400"; // Maximale Uploadgrösse (10 MB) 
    $uploddir = "./bilder/"; // Upload Ordner 
    $extensions = array(".jpg",".JPG", ".gif", ".bmp", ".JPEG");
         // Erlaubte Erweiterungen 

if($_POST['action']=="upload") 
  { 
  $tmp_name = $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname 
  $name = $HTTP_POST_FILES['bild']['name']; // Der Originalname 
  $size = $HTTP_POST_FILES['bild']['size']; // Größe der Datei 
  $type = $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei 
  $ext_tmp = explode(".", $name); 
  $ext = ".".$ext_tmp[(count($ext_tmp)-1)]; 
  
  if(in_array($ext, $extensions)) 
  { 
      if($size<=$maxsize && $size!=0) 
          { 
          while(file_exists($uploddir.$newname) || !$newname) 
              { 
              $newname = md5(uniqid(rand())); 
              //$filenamearray = explode(".", $name); 
              //$newname = $filenamearray[0]; 
              } 
          
        if(move_uploaded_file($tmp_name, $uploddir.$newname.$ext)) 
              { 
              $bild = $uploddir &""& $newname &""& $ext ;
          echo "<br><center> Dateilink&nbsp;&nbsp;:<a href='".$uploddir.   $newname.$ext."'>".$uploddir.$newname.$ext. "</a><br><img height=\"200\" wight=\"150\" src='".$uploddir.$newname.$ext."'> <br>"; 
                echo ('<br>Bild hochgeladen </center>');
                $bild = $uploddir.$newname.$ext;
                echo "</form>"; 
                
                
                } 
          else{echo "Fehler: Datei konnte nicht verschoben werden!";} 
          } 
      else 
      { 
      echo "Ihre Datei ($size) ist über $maxsize Bytes oder gleich 0 KB"; 
      } 
  } 
  else 
      { 
      echo "Falsche Erweiterung: ".$name; 
      } 
  } 
else 
      { 
      echo "<br><br><b><i><font face='Arial' size='2'>Upload</font></i></b><br><br>"; 
      
      echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">"; 
      echo "<input type='hidden' name='action' value='upload'>"; 
     echo "<table>"; 
      echo "<tr>"; 
      echo "<td><font face='Arial' size='2'>Datei&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </font</td><td><input type='file' name='bild'></td>"; 
      echo "</tr><tr>"; 
      echo "<td> </td><td><input type='submit' value='Hochladen'></td>"; 
      echo "</tr>";       
      echo "</table>";   
       
      }          




     
  
  
echo "<input name=\"bild\" type=\"hidden\" size=\"30\" maxlength=\"30\" value='$bild'></p>"; 
echo "<input type=\"radio\" name=\"picfree\" value=\"yes\"> Bild veroeffentlichen"; 
echo "<input type=\"radio\" name=\"picfree\" value=\"no\"> Kein Bild veroeffentlichen";

    
    
echo "<table align=\"center\" border=\"0\">";  
    echo "<tr><td>"; 
echo "<p>Vorname:<br>";
echo "<input name=\"vorname\" type=\"text\" size=\"30\" maxlength=\"30\"></p>";
echo "<p>Name:<br>";
echo "<input name=\"nname\" type=\"text\" size=\"30\" maxlength=\"40\"></p>";
  echo "<p>Gebursdatum:<br>";
echo "<input name=\"gebdate\" value=\"YYYY:MM:DD\" type=\"text\" size=\"30\" maxlength=\"10\"></p>";
     echo "<select name=\"schicht\" size=\"1\">";
        echo "<option value=\"Schicht 1\">";
              echo "Schicht 1 </option>";
        echo "<option value=\"Schicht 2\">";
              echo "Schicht 2</option>";
        echo "<option value=\"Schicht 3\">";
              echo "Schicht 3</option>";
        echo "<option value=\"Schicht 4\">";
               echo "Schicht 4</option>";
        echo "<option value=\"Schicht 5\">";
            echo "Schicht 5</option>";
        echo "<option value=\"Tagesschicht\">";
               echo "Tagesschicht</option>";
      echo "</select><p></p>";
      echo " <p>Handy:<br>";
echo "<input name=\"handy\" type=\"text\" size=\"30\" maxlength=\"12\"></p>";
echo "<p>Fax:<br>";
echo "<input name=\"fax\" type=\"text\" size=\"30\" maxlength=\"12\">";
echo "</p><p>Telefon:<br>";
echo "<input name=\"tel\" type=\"text\" size=\"30\" maxlength=\"12\">";
echo "</p><p>Email:<br>";
echo "<input name=\"email\" type=\"text\" size=\"30\" maxlength=\"30\">";
echo "</p>";   
echo  "<input type=\"checkbox\" name=\"position[]\" value=\"Sicherheitsbeauftrager\">Sicherheitsbeauftrager<br>";
echo "<input type=\"checkbox\" name=\"position[]\" value=\"Umweltbeauftrager\">Umweltbeauftrager<br>";
echo "<input type=\"checkbox\" name=\"position[]\" value=\"     Gefahrstoffbeauftrager\">Gefahrstoffbeauftrager";   
echo "<input type=\"hidden\" name=\"renname\" value=\"".$nname."\">";
echo "<input type=\"hidden\" name=\"regeb\" value=\"".$geb."\">";
echo "<input type=\"hidden\" name=\"revorname\" value=\"".$vorname."\">";
echo "<input type=\"hidden\" name=\"reschicht\" value=\"".$schicht."\">";
echo "<input type=\"hidden\" name=\"reposition\" value=\"".$position."\">";
echo "<input type=\"hidden\" name=\"repic\" value=\"".$picfree."\">";     
echo "<input type=\"hidden\" name=\"bild\" value=\"".$uploddir.$newname.$ext."\">";
     
echo "<br><input type='submit' name='abschicken' value='Absenden'>" ;      
echo "</form>"; 
    
    echo "</td></tr>"; 
    echo "</table>"; 

    
      echo "</form></body></html>";  }
    ?>


beim klicken auf hochladen bekomme ich immer die fehler meldung
falsche erweiterung -.- hoffe das mir einer helfen kann
 
Lass dir mal $ext ausgeben, vielleicht hast du ja zufällig ein .jpeg erwischt, da wäre nicht in der liste. Besser noch wäre beim vergleich mit strtoupper() oder strtolower() zu arbeiten, das erleichtert das etwas.
 
dann kommt nur
.

als echo.

hab denn teil des scripts übernommen, und einfach nur erweitert mit den names felder usw. in der original datei klappt der upload
 
Hallo!

Du willst ernsthaft dass jemand z.B. ein als Bild "getarntes" Script hochläd und somit sonstwas auf dem Server anstellen kann?
Wenn nicht, dann solltest Du Dich nicht auf die Dateiendung verlassen und stattdessen lieber den MIME-Type überprüfen.

Beispiele zum Thema Dateiupload findest Du hier zu genüge.

Gruss Dr Dau
 
Wenn ich das weg lasse und denn upload ohne function aufrufe
klappt das soweit,....

PHP:
include_once('verarbeitung.php');  
  if(isset($_POST["upl"])) 
  { 
  upload(); 
  } 
  else if(isset($_POST["abschicken"])) 
  { 
    verarbeitung(); 
  } 
  else 
  { 
    upload(); 
  }



@ dr Dau - im grunde hast du recht das es ein sicherheitsrisko dastellt.
Diese seite wird allerdings nur intern benutzt, und ich geh mal davon aus das die leute die das nutzen werden nix anderes hochladen werden wie ihre bilder,
zumal die meisten wohl auch mit nix anderem was anfangen können ;)
 
Wenn du dir sicher bist, kannst du dir die Prüfung auf die Dateiendung auch ganz sparen?

Würde ich nicht. So eine Prüfung sollte eigentlich immer (auch wenns nur intern läuft) gemacht werden, da man sich ja auch mal verklicken kann und statt dem Bild was anderes auswählen kann.

Aber "Dr Dau" hat Recht. So eine Überprüfung ist nicht schwer und gleich erledigt. So lernst du auch es gleich für später ;)
 

Neue Beiträge

Zurück