I have a small script to upload a previously chosen number of photos from 1-10 - but once I want to add the files (upload, resize and write database entries), I get this very very long site full of errors.
I'm a PHP newbie, and I don't really know how to use the foreach and arrays and that stuff in this case.
I've looked at the database after trying to post photos - it created a new row for each file I tried to upload, but it didn't enter any data, is just wrote the word "Array" into each fields (except the ID). So I assume that the information in the arrays is not correctly passed on... ?!?
this is my code:
<?php
include('config.php');
echo $header;
if ($_POST['action'] == "add") {
foreach ($_POST['title'] as $title) {
//__ upload & resize _______________________________________
$ul_photo = $_FILES['photo']['tmp_name'];
$src = imagecreatefromjpeg($ul_photo);
list($width,$height) = getimagesize($ul_photo);
$newwidth = 550;
$newheight = ($height/$width)*$newwidth;
$tmp = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
$filename = $dirpath.$gal_id."/". $_FILES['photo']['name'];
imagejpeg($tmp,$filename,100);
#__ thumb _________________________________________________________
$ul_thumb = $_FILES['photo']['tmp_name'];
$srcthumb = imagecreatefromjpeg($ul_thumb);
list($widththumb,$heightthumb) = getimagesize($ul_thumb);
$newwidththumb = 100;
$newheightthumb = ($heightthumb/$widththumb)*$newwidththumb;
$src_top = ($src_height / 2) - ($dst_height / 2);
$src_left = ($src_width / 2) - ($dst_width / 2);
$tmpthumb = imagecreatetruecolor($newwidththumb,$newheightthumb);
imagecopyresampled($tmpthumb,$srcthumb,0,0,$src_top,$src_left,$newwidththumb,$newheightthumb,$widththumb,$heightthumb);
$thumbname = $dirpath.$gal_id."/zth_".$_FILES['photo']['name'];
imagejpeg($tmpthumb,$thumbname,100);
#___________________________________________________________________
imagedestroy($src);
imagedestroy($tmp);
imagedestroy($srcthumb);
imagedestroy($tmpthumb);
$gal = addslashes($_POST['gal_id']);
$photo = $_FILES['photo']['name'];
$title = addslashes($_POST['title']);
$description = addslashes($_POST['description']);
$sql = "INSERT INTO $gal_photos (gal,photo,title,description) VALUES ('$gal','$photo','$title','$description')";
$query = mysql_query($sql) or die("MySQL Error: <br /> {$sql} <br />". mysql_error());
$num = mysql_affected_rows();
if($num > 0) {
echo "<span class='result'>New Photo successfully added!</span>";
echo "<br /><img src='../galleries/".$gal."/zth_".$photo."' />";
} else {
echo "Error: ".mysql_error();
}
} #foreach
} elseif ($_GET['action'] == "listforms") {
?>
<strong>Post New Photos</strong>
<br />
<br />
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="649760" />
<?
for ($x=0;$x<$_GET['num'];$x++) {
?>
<div class='uploadbox'>
Associated Gallery <?=$x + 1?>:
<br />
<?
$selgal_sql = "SELECT * FROM $gal_galleries ORDER BY id DESC";
$selgal_result = mysql_query($selgal_sql) or print ("Unable to select data.<br />".$selgal_sql."<br />".mysql_error());
$selgal_num = mysql_num_rows($selgal_result);
if ($selgal_num > 0) {
echo "<select name='gal_id[]'>";
while ($selgal_row = mysql_fetch_array($selgal_result)) {
$selgal_id = $selgal_row["id"];
$selgal_title = $selgal_row["title"];
echo "<option value='".$selgal_id."'>".$selgal_id.": ".$selgal_title."</option>";
}
echo "</select>";
} else {
echo "<a href='gal_galleries.php'>Please create a new gallery to post photos!</a>";
}
?>
<br />
<br />
Photo File <?=$x + 1?>:
<br />
<input type='file' name='photo[]' size='50' />
<input type="hidden" name="thumb[]" value="<? ($_POST['photo']) ?>" />
<br />
<br />
<?
if ($usetitle == "n") {
?>
<input type='hidden' name='title[]' value='' />
<? } else { ?>
Photo Title <?=$x + 1?>:
<br />
<input type='text' name='title[]' size='50' />
<br />
<br />
<? } ?>
<?
if ($usedesc == "n") {
?>
<input type='hidden' name='description[]' value='' />
<? } else { ?>
Photo Description <?=$x + 1?>:
<br />
<textarea cols='45' rows='5' name='description[]'></textarea>
<? } ?>
</div>
<br />
<? } ?>
<br />
<br />
<input type="submit" name="action" value="add" />
</form>
<?
} else {
?>
<strong>Post New Photos</strong>
<br />
<br />
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">
<input type="hidden" name="action" value="listforms" />
<label for="num">Select number of photos to post</label>:
<select id="num" name="num">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type="submit" value="Proceed" />
</form>
<?
}
echo $footer;
?>
these are my errors:
Warning: imagecreatefromjpeg(Array) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /htdocs/gall/gal_postphotos.php on line 11
Warning: getimagesize(Array) [function.getimagesize]: failed to open stream: No such file or directory in /htdocs/gall/gal_postphotos.php on line 12
Warning: Division by zero in /htdocs/gall/gal_postphotos.php on line 14
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /htdocs/gall/gal_postphotos.php on line 15
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 16
Warning: imagejpeg(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 18
Warning: imagecreatefromjpeg(Array) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /htdocs/gall/gal_postphotos.php on line 22
Warning: getimagesize(Array) [function.getimagesize]: failed to open stream: No such file or directory in /htdocs/gall/gal_postphotos.php on line 23
Warning: Division by zero in /htdocs/gall/gal_postphotos.php on line 25
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /htdocs/gall/gal_postphotos.php on line 30
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 31
Warning: imagejpeg(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 33
Warning: imagedestroy(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 36
Warning: imagedestroy(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 37
Warning: imagedestroy(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 38
Warning: imagedestroy(): supplied argument is not a valid Image resource in /htdocs/gall/gal_postphotos.php on line 39