PHP ver gevorderde |
|
Ik ben bezig met te werken aan een foto-post-systeem. Leden kunnen foto's posten.
<?php
$dir = images;
$image_path = $_POST['url'];
//Afbeelding groote
define(MAX_WIDTH, 100);
define(MAX_HEIGHT, 90);
//plaatje laden
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
$img = imagecreatefromjpeg($image_path); }
elseif ($ext == 'png') {
$img = imagecreatefrompng($image_path); }
elseif ($ext == 'gif') {
$img = ImageCreateFromGIF($image_path); }
else {
$im = @imagecreate($image_path); }
//Groote controleren
if ($img) {
# Get image size and scale ratio
$width = imagesx($img);
$height = imagesy($img);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
//Als het plaatje te groot is, kleiner maken
if ($scale < 1) {
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);
//Tijdelijk plaatje
$tmp_img = imagecreatetruecolor($new_width, $new_height);
//Oude plaatje weggooien en tijdelijk vast zetten
imagecopyresized($tmp_img, $img, 0, 0, 0, 0,
$new_width, $new_height, $width, $height);
imagedestroy($img);
$img = $tmp_img;
}
}
//einde thumbnailmaken
if (!$img) {
$_SESSION['foutbericht'] = "Je foto kan niet worden gepost omdat het geen geldige afbeelding is.";
header ("location:?pag=fotoalbum&actie=toevoegen");
}
//plaatje opslaan
$subcat = $_POST['subcatid'];
$sql5 = "SELECT * FROM fotosubcat WHERE id=$subcat ORDER BY id ";
$query5 = mysql_query($sql5);
while ($obj = mysql_fetch_object($query5)) {
$catid = $obj->catid; }
$fototoevoegen = "INSERT INTO fotos (subcatid, url, userid, catid)
VALUES ('$_POST[subcatid]', '$_POST[url]', '$_SESSION[gId]', '$catid')";
mysql_query ($fototoevoegen) or die (mysql_error()); ?>
<?php $dir = images; $image_path = $_POST['url']; //Afbeelding groote //plaatje laden $img = null; if ($ext == 'jpg' || $ext == 'jpeg') { $img = imagecreatefromjpeg($image_path); } elseif ($ext == 'png') { $img = imagecreatefrompng($image_path); } elseif ($ext == 'gif') { $img = ImageCreateFromGIF($image_path); } else { $im = @imagecreate($image_path); } //Groote controleren if ($img) { # Get image size and scale ratio $width = imagesx($img); $height = imagesy($img); $scale = min(MAX_WIDTH /$width, MAX_HEIGHT /$height); //Als het plaatje te groot is, kleiner maken if ($scale < 1) { $new_width = floor($scale*$width); $new_height = floor($scale*$height); //Tijdelijk plaatje $tmp_img = imagecreatetruecolor($new_width, $new_height); //Oude plaatje weggooien en tijdelijk vast zetten imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagedestroy($img); $img = $tmp_img; } } //einde thumbnailmaken if (!$img) { $_SESSION['foutbericht'] = "Je foto kan niet worden gepost omdat het geen geldige afbeelding is."; header ("location:?pag=fotoalbum&actie=toevoegen"); } //plaatje opslaan $subcat = $_POST['subcatid']; $sql5 = "SELECT * FROM fotosubcat WHERE id=$subcat ORDER BY id "; $catid = $obj->catid; } $fototoevoegen = "INSERT INTO fotos (subcatid, url, userid, catid) VALUES ('$_POST[subcatid]', '$_POST[url]', '$_SESSION[gId]', '$catid')";
Mijn bedoeling is het volgende:
Eerst kijken of het mogelijk is om er een thumbnail van te maken.
Indien nee=>toen foutmelding
Indien ja=>sla de thumbnail op en post de foto in de database.
Maar nu heeft er iemand fotos gepost zonder dat er een thumbnail van gemaakt is. Waar ligt de (grote) fout?
|