Hallo.
Habe hier ein Script, dass ich gerne als Grundlage für einen weiteren Ausbau verwenden möchte.
Bei dem Script tun sich für mich ein paar Fragen und Fehler auf, die ich gerne verstehen und natürlich auch beseitigen möchte.
<form method="post" action="best_bilder.php" enctype="multipart/form-data">
<?php
$objekt = 'AS001';
$num = 0;
while($num < 10)
{
?>
<input type="hidden" name="item_id[]" value="<?php echo $objekt ?>" />
<input type="file" id="myfile" name="userfile[]" size="40">
<?php $num++;
}
?>
Alles anzeigen
error_reporting(E_ALL); #zeig alle Fehler
ini_set('display_errors', '1');
require_once '../inc/connect.inc.php';
$link = mysql_connect("localhost","root","") or die ("Keine Verbindung moeglich");
mysql_select_db("tabelle") or die ("Die Datenbank existiert nicht");
$upload_dir = 'objekt_images/';
if(isset($_POST['Preview']) ) {
if(isset($_FILES['userfile']['tmp_name']))
{
for($i=0; $i < count($_FILES['userfile']['tmp_name']);$i++)
{
if(!is_uploaded_file($_FILES['userfile']['tmp_name'][$i]))
{
$messages[] = 'Keine Datei uploaded';
}
else
{
if(@copy($_FILES['userfile']['tmp_name'][$i],$upload_dir.'/'.$_FILES['userfile']['name'][$i]))
{
$messages[] = $_FILES['userfile']['name'][$i].' uploaded';
$name[] = $_FILES['userfile']['name'][$i];
$id[] = $_POST['item_id'];
function prepare($name, $id) {
return sprintf("'%s', '%s'",
mysql_real_escape_string($name),
mysql_real_escape_string($id));
}
$values = array_map('prepare', $name, $id);
$sql = 'INSERT INTO photo (photo_filename, photo_item_id) VALUES (' . implode('),(', $values) . ')';
mysql_query($sql);
}
else
{
$messages[] = 'Uploading '.$_FILES['userfile']['name'][$i].' fehlgeschlagen';
}
}
}
}
}
Alles anzeigen
Die Fehlerauswertung ist:
Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in C:\xampp\htdocs\backoffice\best_bilder.php on line 200
=
Fatal error: Cannot redeclare prepare() (previously declared in C:\xampp\htdocs\backoffice\best_bilder.php:197) in C:\xampp\htdocs\backoffice\best_bilder.php on line 197
Ist der Fehler aus zeigle 197 nun verantwortlich für den Fehler in Zeile 200 ?
Dieser besagt ja, dass er irgendwie sich selbst nicht überschreiben kann, was er ja auch eigentlich nicht soll!
Hängt das mit dem Value $objekt aus dem Imput zusammen?
Wenn ich 3 unterschiedliche Datein auswähle macht er folgendes:
Die ersten 2 Dateien schreibt er in das Verzeichnis.
Die erste Datei schreibt er mir in die DB aber ohne photo_item_id.
Danke für etwas Hilfe.