Autor Zpráva
mafos
Profil
Přeji všem pěkný večer,

na stránkách používám k úpravě vložených fotek (oříznutí na čtverec a zmenšení) skriptík, který jsem si někdy v minulosti nějak uplácnul :-) Bohužel po upgradu PHP mi toho spousta přestala fungovat. Vše jsem dal dohromady, ale u tohoto kodu nevím, kde by mohla být chyba. Můžete se mi prosím na to podívat a poradit mi? Jde o to, že se má ve složce s fotkami vytvořit nová složka s miniaturami. Tato složka se vytvoří OK, miniatury se vytvoří se správnými názvy, správnou velikostí, ale jsou černé. Není tam žádná fotka. Bohužel si s tím nevím rady :-(

Děkuji za jakoukoliv pomoc.

Jen doplňuji, že kod dřív v pohodě fungoval.

<?php
$link = mysql_connect ("localhost", "jmeno", "heslo") or die ("Nepovedlo se připojit na databázový server");
$db = mysql_select_db("jmeno", $link) or die ("Nepovedlo se otevřít databázi");
mysql_query("SET NAMES 'cp1250'") or die('Nepodařilo se nastavit jazyk'); 
$query = "SELECT * FROM fotogalerie where id=". (int) $id;
$result = mysql_query($query, $link) or die("SQL dotaz nešlo provést");
while ($row=mysql_fetch_array($result)){
    $odkaz = $row["odkaz"];};
mysql_free_result($result);
mysql_close();

$adresar = "foto/$odkaz/mini";
echo $adresar;
mkdir($adresar, 0777);

$dir = "foto/$odkaz";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

for ($i = 0; $i < count($files); $i++) {if ($files[$i] !== "." and $files[$i] !== ".." and $files[$i] !== "mini") {
// The file
$filename = "foto/$odkaz/$files[$i]";
echo $filename;

// Set a maximum height and width
$width = 141;
$height = 141;

list($src_w, $src_h, $typ)=getimagesize($filename);

    if($src_w > $src_h)
    {$velikost = $src_h;}
    else
    {$velikost = $src_w;}
    $src_wp = $src_w/4;
    $src_hp = $src_h/4;

    // Create image instances
        {$src = imagecreatefromjpeg($filename);
    $dest = imagecreatetruecolor($velikost, $velikost);


    // Copy
    if($src_w > $src_h)
        {imagecopy($dest, $src, 0, 0, $src_wp, 0, $velikost, $velikost);}
    else
        {imagecopy($dest, $src, 0, 0, 0, $src_hp, $velikost, $velikost);}
    imagejpeg($dest, $dest);

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($dest);

$image_p = imagecreatetruecolor($width, $height);
imagecopyresampled($image_p, $dest, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $dir. "/mini/" .$files[$i]);

    imagedestroy($image_p);
};};}
php?>
Keeehi
Profil
Proměnná $id se vezme odkud? Nemělo by to být spíše $_GET["id"]? Ale v tom problém asi nebude. Je to splácané tedy opravdu dost a nemám chuť se tím moc probírat. Projdi si to od začátku a zjisti, jestli je v proměnných to, co by tam mělo být.
peta
Profil
mafos:
Na zacatek programu dej
        @ini_set('error_reporting', E_ALL);
        @ini_set("display_errors", "on");
        error_reporting(E_ALL);
Pak obnov stranku a oprav vsechny chyby.
Nebo zmen nastaveni php tak, jako bylo pred tim.
Pak by mozna bylo dobre zminit, jakou verzi php jsi na jskou upgradoval. V pripade verze 4 na 5 se obvykle zakazi globalni promenne a prestane fungovat automaticke prirazovani
$id = $_REQUEST['id'];
Coz je pozitivni bezpecnostni opatreni, ale tobe nejspis prestane toho fungovat vice :)
mafos
Profil
Tak vážně nevím. Vypsal jsem všechny chyby a program napsal toto:
Warning: imagejpeg() expects parameter 2 to be string, resource given in /adresa on line 60 Warning: getimagesize() expects parameter 1 to be string, resource given in /adresa on line 63
Myslel jsem si, že je to tím, že není zavedený GD modul, ale ten podle všeho je funkční. Nenapadá Vás nějaké řešení prosím?

Ty chyby jsou na těchto dvou řádcích
imagejpeg($dest, $dest);
list($width_orig, $height_orig) = getimagesize($dest);

Přecházel jsem z PHP4 na PHP5, všechny ostatní změny jsou udělal, takže stránky fungují tak jak mají až na tuto chybu :-(

Děkuji za pomoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0