• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Hilfe bei Upload-Script

magnetic_water

New member
Halihallo, ich habe mir aus verschiedenen Scripten ein Upload-Script zusammengebastelt, welches jedoch nicht gänzlich funktioniert.
Der zufällig gernerierte Dateiname wird nicht in der Datenbank gespeichert. :(

Der ganze Code:

PHP:
<?php


error_reporting(E_ALL);

$aMessages = array();
$sUploadDir = '-zensiert-'; // upload-Verzeichnis relativ zu dieser Datei, Slash am Ende nicht vergessen, CHMOD Rechte setzen! (zB 0755)



  // Generate a random password
  
 function generatePW($length=8)
 {
  
 $dummy = array_merge(range('0', '9'), range('a', 'z'), array('_'));
  
 // shuffle array
  
 mt_srand((double)microtime()*1000000);

 for ($i = 1; $i <= (count($dummy)*2); $i++)
 {
 $swap = mt_rand(0,count($dummy)-1);
 $tmp = $dummy[$swap];
 $dummy[$swap] = $dummy[0];
 $dummy[0] = $tmp;
 }
  
 // get password
  
 return substr(implode('',$dummy),0,$length);
  
 }
  

  if(array_key_exists('upload', $_FILES) && is_array($_FILES["upload"])) 
{

	$sPathinfo = pathinfo($_FILES['upload']['name']);
    $sExtension = $sPathinfo['extension'];
    $aDenyExtensions = array('gif', 'png', 'jpg', 'jpeg', 'GIF', 'PNG', 'JPG', 'JPEG'); // erlaubte Dateiendungen
	
	$myname = generatePW(10).".".$sExtension; 
	global $myname;
		  
	/*$if_pfad= "/".$sUploadDir.$myname;

	if (similar_file_exists($if_pfad)==true){ 
	
	$myname = generatePW(10).".".$sExtension;
	 
	
	}*/
	
	
	
	
    if (!in_array($sExtension, $aDenyExtensions)){ 
        $aMessages[] = 'Die Datei hat eine nicht erlaubte Dateiendung. Erlaubt sind: GIF-, PNG-, JPG- sowie JPEG-Dateien.';
		
		
    } 
	
	else if (!isset($_POST['dateiname']) && $_POST['dateiname'] == ""){
			
	
	$aMessages[] = 'Bitte der Datei einen Namen geben.';
	
	}
	
	
	
	else if (!move_uploaded_file($_FILES['upload']['tmp_name'], $sUploadDir.$myname)){
        $aMessages[] = sprintf('Die Datei konnte <span style="text-decoration:underline">nicht</span> hochgeladen werden - Fehlercode <a href="http://de.php.net/manual/de/features.file-upload.errors.php">%u</a>.', $_FILES['upload']['error']);
		
    //die('Die Datei konnte <span style="text-decoration:underline">nicht</span> hochgeladen werden');
	
	
	} else {
        

		
		//--------------------<MySQL>
		include('-zensiert-');

$dateiname = str_replace(' ', "",$_POST['dateiname']);

$sql = "INSERT INTO `-zensiert-` (
`-zensiert-` ,
`-zensiert-` ,
`-zensiert-` ,
`-zensiert-` ,
`-zensiert-`
)
VALUES (
NULL , '$myname', '$dateiname',
CURRENT_TIMESTAMP , '0'
);";


$ergebnis = mysql_query($sql) or die("<b>Schwerwiegender MySQL-Fehler:</b>.\n<br />
Query: " . $sql . "<br />\nError: (" . mysql_errno() . ") " . mysql_error());



//-------------------</MySQL>
		
		$aMessages[] = 'Die Datei wurde hochgeladen.';
		
		
} 
	

		
} else{

if(isset($_POST["hidden"])) $aMessages[] = 'fehler';

}


$bildergalerie = 1;

$titel = "Ohmoorziegen - Bilder hochladen...";

include ("../includes/specialheader.php"); 

print '<h1>Bilder hochladen</h1>';

if(count($aMessages)>0){

print"<ul>";

    foreach ($aMessages as $sMessage) {
echo"<li>". $sMessage ."</li>";

    }
print"</ul>";

}



?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
    <input name="upload" type="file" />  <br /><br />
	<span style="font-style:italic;float:left;">Name des Bildes (Leerzeichen werden ersetzt):*<input type="text" name="dateiname"/></span><br /><br />
    <input type="submit" value="Hochladen" style="clear:all" />
	<input type="hidden" name="hidden" />
</form>




</div>


<div id="footer" style="clear:both;">
-zensiert-
</div>
 
</body>
</html>

So siehts aus: -zensiert wegen Suchmaschinen...-
 
Zuletzt bearbeitet:
Das hatte ich jetzt aber nicht von magnetic_water gedacht, dass er schon auf der Abschussliste des BND steht ;)

Außerdem steht's auch im Link :D

Nun zum Thema:
Code:
is_array($_FILES["upload"]) 
&& 
array_key_exists('upload', $_FILES)
- anders herum wird ein Schuh daraus.
 
Ich liebe Schuhe. :D

Nur leider wird der Dateiname nicht in der Datenbank gespeichert. Dort steht nur "0", alle anderen Daten stimmen jedoch. Der Name mit Endung wird aber doch in $myname gespeichert ?!?
 
Zurück
Oben