Script t nicht mehr im IE

ava99

Erfahrenes Mitglied
Hallo Community!

Es ist mir ein großes Mysterium warum ein script was bisher funktioinierte jetzt nicht mehr funktioniert.

PHP:
if(isset($_FILES['bild_1']))
{
    if($_FILES['bild_1']['type'] == "image/gif" || $_FILES['bild_1']['type'] == "image/jpeg" || $_FILES['bild_1']['type'] == "image/jpg")

    {
        if(!empty($_POST['logoname']))
        {
            $filename = $_FILES['bild_1']['logoname'];
            move_uploaded_file($_FILES['bild_1']['tmp_name'], "images/".$filename);

            $file = "http://84.16.234.82/~daniel/projekte/qm-portal/kunde/images/".$filename;
            
			chmod("images/".$filename, 0777);
            $sql = "INSERT INTO logo (logo_name, logo_file,kdnr)VALUES ('".$_POST['logoname']."','".$file."','$kdnr')";

           //  $sql = "INSERT INTO bilder (name, bild_1)VALUES ('".$_POST['name']."','".$filename."')";
            mysql_query($sql) or die (mysql_error());

            echo "Das Bild wurde erfolgreich hochgeladen! ";
            echo "<a href=\"bild_upload.php\">weiter</a>";

        }
        else
        {
            echo "Bitte geben Sie einen Namen ein!&nbsp;";
            echo "<a href=\"bild_upload.php\">weiter</a>";

        }
    }
    else
    {
        echo "Der Upload war nicht erfolgreich:<br>Die Datei ist kein Bild!&nbsp;";
        echo "<a href=\"bild_upload.php\">weiter</a>";

    }
}

elseif(isset($_GET['delete']) && $_GET['delete'] == 1)
{
    $sql = mysql_query("SELECT * FROM logo WHERE id = '".$_GET['id']."'");

    $data = mysql_fetch_object($sql);
    $bild = $data->logo_file;
	$url = $bild;
	$url = explode("/", $url);
	$count = count($url)-1;
	if(!unlink("images/$url[$count]")) {
    echo "Konnte die Datei $url[$count] nicht l&ouml;schen!"; 

	}    else {
    echo ""; 
    } 
	
    $sql = "DELETE FROM logo WHERE id = '".$_GET['id']."'";
    mysql_query($sql) or die (mysql_error());
    echo "Die Datei wurde erfolgreich gel&ouml;scht!";

    echo "<a href=\"bild_upload.php\">zur&uuml;ck</a>";
    
    }
else
{

    echo             "Hier k&ouml;nnen Sie ihr Logo  hochladen und speichern.<br><br>"
					  ."<form action='bild_upload.php' method='post' enctype='multipart/form-data'>"
					  ."<input type='hidden' name='logoname' value='$kdnr'>"
		              ."<input type='file' name='bild_1'><input type='submit' value='Upload'>"
		              ."</form>";



    $sql = mysql_query("SELECT * FROM logo WHERE kdnr = '$kdnr'");
    $i = 1;
    while($data = mysql_fetch_object($sql))
    {
        echo "<img src='$data->logo_file' alt='logo der Praxis' width='80' height='80'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
		       ."<br /><a href='bild_upload.php?delete=1&id=".$data->id."'>Logo l&ouml;schen</a>";

        $i++;
    }

	echo "<br /><br /><a href=general_uebersicht.php>Gesamt&uuml;bersicht</a>  
		  <br /><br /><a href='logout.php'>Logout</a>";
}

Ich sehe den Fehler nicht mehr im Code vesteckt sitze schon zu lange an diesem bisschen Code.

Um Hilfe bin ich dankebar


MFG

Ava
 
Moin ava,

lasse dir mal $_FILES['bild_1']['type'] testhalber im IE ausgeben, dann siehst du warum.

Die Lösung wurde schon mehrmals im Forum erörtert, prüfe den Grafiktyp per [phpf]getimagesize[/phpf]
 
Danke für deine schnelle Antwort!

Script habe ich wie folgt unten angepasst, will aber nicht so wie ich gern möchte.

PHP:
if(isset($_FILES['bild_1']))

{
    if(getimagesize(($_FILES['bild_1']['type'] == "image/gif" || $_FILES['bild_1']['type'] == "image/jpeg" || $_FILES['bild_1']['type'] == "image/jpg"))

    {
        if(!empty($_POST['logoname']))
        { ......

Bin für hilfe Dankbar

Grüße Ava
 
getimagesize() erwartet als Parameter den Pfad zur Datei, und liefert einen Array zurück, in dessen 3. Element du eine Ziffer vorfindest, welche dir den Grafik-Typ verrät.

Hier mal nen Beispiel:
PHP:
<?

  if(
      isset($_FILES['bild_1']) 
        &&  !$_FILES['bild_1']['error']
          && is_uploaded_file($_FILES['bild_1']['tmp_name']))
  {
      //$logoname nicht aus Formular übermitteln lassen,
      //das bietet sonst eine Angriffsmöglichkeit
    $logoname = $kdnr;
    
      //Erlaubte Typen
    $imgtypes = array('1'=>'gif','2'=>'jpg');
    
      //Bildeigenschaften ermitteln
    $imgprops = getimagesize($_FILES['bild_1']['tmp_name']);
    
    //Wenn erlaubter Typ
    if(array_key_exists($imgprops[2],$imgtypes))
      {
          //neuen Dateinamen zusammensetzen
        $logo_filename=$logoname.'.'.$imgtypes[$imgprops[2]];
        
          //Hier kanns weiter gehen
      }
  }
?>
 
Zurück