Script macht das Gegenteil

MirakFH

Mitglied
Hey, also ich habe auf meiner Seite einen Playlist Bereich mit Covern.

Also habe ich mir einen Admin-Breich gebastelt mit kleinem Upload Script.

Ging auch alles perfekt, aber dann habe alles auf den Webspace von einem Kumpel gepackt und jetzt macht das Script das Gegenteil von dem was ich will.

Früher:

$max_byte_size = 2097152;
$allowed_types = "(jpg|jpeg|gif|bmp|png)";

ohne Fehler.

Wenn ich auf dem anderen Webspace eine jpg hochlade, dann sagt er mir falsche Dateiendung. Wenn das Bild unter 2mb groß ist, dann kommt noch der Fehler, das die Datei zu groß sei.

Aber eine Txt-Datei die 3mb groß kann ich hochladen und er trägt es mir auch in die Datenbank ein.

Hier meine Script:

Formular:

PHP:
	  if($wbbuserdata["a_can_use_acp"] == "1" && $wbbuserdata['a_acp_or_mcp'] == "1" && $_GET["sec"] == "admin" && $_GET["cat"] == "playlist" && $_GET["send"] == "")
	  {

        echo "<form action=\"main.php?sec=admin&cat=playlist&send=1\" method=\"post\" enctype=\"multipart/form-data\"  name=\"playlisteintrag\" onSubmit=\"return checkplaylisteintrag()\">\n"; 
        echo "<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"; 
        echo "  <tr>\n"; 
        echo "    <td colspan=\"2\" class=\"ueberschrift\">&raquo; Admin &raquo; Playlist-Eintrag erstellen </td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td colspan=\"2\">&nbsp;</td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td width=\"173\" height=\"30\" class=\"normal\">Artist und Name </td>\n"; 
        echo "    <td width=\"413\" height=\"30\" class=\"normal\"><input name=\"artistname\" type=\"text\" class=\"normal\" id=\"artistname\" style=\"width:180; background-color:000000; border-bottom-style:solid; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-width:thin; border-bottom-color:#FFFFFF; border-left-color:#FFFFFF; border-right-color:#FFFFFF; border-top-color:#FFFFFF\"></td></tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td height=\"30\" class=\"normal\">Cover</td>\n"; 
        echo "    <td width=\"413\" height=\"30\" class=\"normal\"><input type=\"file\" name=\"cover\" class=\"normal\" style=\"width:180; background-color:000000; border-bottom-style:solid; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-width:thin; border-bottom-color:#FFFFFF; border-left-color:#FFFFFF; border-right-color:#FFFFFF; border-top-color:#FFFFFF\"></td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td height=\"30\" valign=\"top\" class=\"normal\">Tracklist</td>\n"; 
        echo "    <td width=\"413\" height=\"30\" class=\"normal\"><textarea name=\"tracklist\" cols=\"60\" rows=\"12\" class=\"normal\" id=\"tracklist\" style=\"width:300; background-color:000000; border-bottom-style:solid; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-width:thin; border-bottom-color:#FFFFFF; border-left-color:#FFFFFF; border-right-color:#FFFFFF; border-top-color:#FFFFFF\"></textarea></td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td height=\"30\" valign=\"top\" class=\"normal\">Meiung</td>\n"; 
        echo "    <td width=\"413\" height=\"30\" class=\"normal\"><textarea name=\"meinung\" cols=\"60\" rows=\"6\" class=\"normal\" id=\"meinung\" style=\"width:300; background-color:000000; border-bottom-style:solid; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-width:thin; border-bottom-color:#FFFFFF; border-left-color:#FFFFFF; border-right-color:#FFFFFF; border-top-color:#FFFFFF\"></textarea></td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "      <td height=\"30\" class=\"normal\">Bewertung</td>\n"; 
        echo "      <td width=\"413\" height=\"30\" class=\"normal\">\n"; 
        echo "        <select name=\"bewertung\" id=\"bewertung\" class=\"normalschwarz\">\n"; 
        echo "        <option>Sehr gut</option>\n"; 
        echo "        <option>Gut</option>\n"; 
        echo "        <option>Befriedigend</option>\n"; 
        echo "        <option>Ausreichend</option>\n"; 
        echo "        <option>Mangelhaft</option>\n"; 
        echo "        <option>Ungen&uuml;gend</option>\n"; 
        echo "      </select></td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td height=\"30\" class=\"normal\">&nbsp;</td>\n"; 
        echo "    <td width=\"413\" height=\"30\" class=\"normal\">&nbsp;</td>\n"; 
        echo "  </tr>\n"; 
        echo "  <tr>\n"; 
        echo "    <td height=\"30\" colspan=\"2\" class=\"normal\"><div align=\"center\"><input name=\"playlisteintrag\" type=\"submit\" class=\"normal\" id=\"playlisteintrag\" style=\"width:180; background-color:000000; border-bottom-style:solid; border-left-style:solid; border-right-style:solid; border-top-style:solid; border-width:thin\" value=\"Senden\"></div></td>\n"; 
        echo "  </tr>\n"; 
        echo "</table> \n"; 
        echo "</form>\n";
	  }


Überprüfen und eintragen:

PHP:
	  if($wbbuserdata["a_can_use_acp"] == "1" && $wbbuserdata['a_acp_or_mcp'] == "1" && $_GET["sec"] == "admin" && $_GET["cat"] == "playlist" && $_GET["send"] == "1")
	  {
	  
	    $max_byte_size = 2097152;
	    $allowed_types = "(jpg|jpeg|gif|bmp|png)";
		
	      if(preg_match("/\." . $allowed_types . "$/i", $_FILES["cover"]["name"]) && $_FILES["cover"]["size"] <= $max_byte_size && move_uploaded_file($_FILES['cover']['tmp_name'], "/home/frame-wd_de/www/mirak/southsiderap/grafiken/cover/".$_FILES['cover']['name']))
		 
		  {
		    $sql = "INSERT INTO playlist
                     (artistname, cover, tracklist, meinung, bewertung)
                    VALUES
                     ('".$_POST['artistname']."',
                     '".$_FILES["cover"]["name"]."',
                     '".$_POST['tracklist']."',
                     '".$_POST['meinung']."',
                     '".$_POST['bewertung']."')";	  
				  
                     mysql_query($sql) OR die(mysql_error());
						   
		    echo "<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"; 
            echo "  <tr>\n"; 
            echo "    <td class=\"ueberschrift\">&raquo; Admin &raquo; Playlist-Eintrag erstellen &raquo; Erfolgreich</td>\n"; 
            echo "  </tr>\n"; 
            echo "  <tr>\n"; 
            echo "    <td>&nbsp;</td>\n"; 
            echo "  </tr>\n"; 
            echo "  <tr>\n"; 
            echo "    <td class=\"normal\">Eintrag wurde erfolgreich erstellt</td>\n"; 
            echo "  </tr>\n"; 
            echo "</table>\n";	
		  }
		  
		  else
		  
		  {
            echo "<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"; 
            echo "  <tr>\n"; 
            echo "    <td class=\"ueberschrift\">&raquo; Admin &raquo; Playlist-Eintrag erstellen &raquo; Fehlgeschlagen</td>\n"; 
            echo "  </tr>\n"; 
            echo "  <tr>\n"; 
            echo "    <td>&nbsp;</td>\n"; 
            echo "  </tr>\n"; 
            echo "  <tr>\n"; 
            echo "    <td class=\"normal\">Eintrag konnte nicht erfolgreich erstellt";
				
            if(preg_match("/\." . $allowed_types . "$/i", $_FILES["cover"]["name"]))
          
		    {
              echo "<br><br>Falsche Dateiendung.";
            }
			
            if($_FILES["cover"]["size"] <= $max_byte_size)
         
		    {
              echo "<br><br>Maximale Dateigröße: ".$max_byte_size." KB.";
            }
			
            echo "</td>\n"; 
            echo "  </tr>\n"; 
            echo "</table>\n";
			
		  }
		  
	  }

Ich hoffe ihr könnt mir helfen.

Greetz
 
Ich würde dir empfehlen anstatt per [PHPF]preg_match[/PHPF] die Dateiendung zu prüfen [PHPF]getimagesize [/PHPF] zu benutzen.
Der Vorteil daran ist, dass nicht einfach jemand die Dateiendung von z.b. einer Textdatei zu jpg ändert und die Datei trotzdem hochladen kann.

Devil
 
Was kommt denn genau für eine Fehlermeldung?

Es kommen meine Fehlermeldungen die ich in das Script eingebaut habt.

Also "Falsche Dateiendung" oder "Maximale Dateigröße: $max_byte_size KB".

Auch wenn es nicht perfekt ist, dann müsste es auf meine Art auch gehen, oder Devil? Ich werde aber deine Vorschlag mal einbauen.

Danke
 
sag mal existiert genau der Datei Ordner, weil nachdem ich den bei mir geändert habe, hat es funktioniert.
 
Zurück