Ahoj na stránkách se mi nezobrazuje náhodná fotografie. Měl by někdo chut se na to podívat? je to děláno v php s mysql a redacni systém. jednou přesouváno.
Fórum › PHP
Náhodná fotografie - oprava chyby
ok muj mail je K72@email.cz
<a href="http://www.diagraph.cz"></a>
</div>
<?php
if ($l1 == 0): require "q_home.php";
elseif ($l1 == 75): require "q_vzkazy.php";
elseif (($l1==70) and ($l2==129)): require "q_kalendar.php";
else: /***** OSTATNI STRANKY******************************/
?>
<div class="main" id="two-columns2">
<div class="col2">
<div class="left2">
<div class="content">
<?php
//menu uroven 2
$sql = "SELECT * FROM kategorie HAVING uroven = '2' AND reference = '$l1' ORDER BY poradi;";
$vysledek = @MySQL_Query($sql);
while($uroven2 = @MySQL_Fetch_Array($vysledek)):
if ($uroven2[duplikat] != 0): //napojeni na duplikovane clanky
$duplikat[duplikat] = 1;
while ($duplikat[duplikat] != '0'):
$sql = "SELECT * FROM kategorie WHERE id = '$uroven2[duplikat]';";
$vysledek2 = @MySQL_Query($sql);
$duplikat = @MySQL_Fetch_Array($vysledek2);
$uroven2 = $duplikat;
endwhile;
endif;
if ($uroven2[nazev] == '') $uroven2[nazev] = '-';
if ($uroven2[externi] == 'n'):
echo "<div class=\"nadpis\"><a href=\"index.php?l1=".$l1."&l2=".$uroven2[id]." \">".$uroven2[nazev]."</a></div> \r\n";
else:
echo "<div class=\"nadpis\"><a href=\"".$uroven2[url]." \">".$uroven2[nazev]."</a></div> \r\n";
endif;
if ($uroven2[id] == $l2):
//menu uroven 3
echo "<ul class=\"block\"> \r\n ";
$sql = "SELECT * FROM kategorie HAVING uroven = '3' AND reference = '$l2' ORDER BY poradi;";
$vysledek2 = @MySQL_Query($sql);
while($uroven3 = @MySQL_Fetch_Array($vysledek2)):
if ($uroven3[duplikat] != 0): //napojeni na duplikovane clanky
$duplikat[duplikat] = 1;
while ($duplikat[duplikat] != '0'):
$sql = "SELECT * FROM kategorie WHERE id = '$uroven3[duplikat]';";
$vysledek3 = @MySQL_Query($sql);
$duplikat = @MySQL_Fetch_Array($vysledek3);
$uroven3 = $duplikat;
endwhile;
endif;
if ($uroven3[nazev] == '') $uroven3[nazev] = '-';
if ($uroven3[externi] == 'n'):
echo "<li><a href=\"index.php?l1=".$l1."&l2=".$l2."&l3=".$uroven3[id]."\"><span>".$uroven3[nazev]."</span></a></li> \r\n";
else:
echo "<li><a href=\"".$uroven3[url]."\"><span>".$uroven3[nazev]."</span></a></li> \r\n";
endif;
endwhile;
echo "</ul>\r\n ";
endif;
endwhile;
?>
</div>
</div>
<div class="right2">
<div class="content">
<div class="up2">
<?php
$sql = "SELECT *, DATE_FORMAT( datum, '%e.%c.%Y' ) AS vlozeno,
DAYNAME(datum) AS xy,
DATE_FORMAT( navsteva, '%e.%c.%Y' ) AS posledni,
DAYNAME(navsteva) AS xyz
FROM kategorie WHERE id = '$ref';";
$vysledek = @MySQL_Query($sql);
if ($text = @MySQL_Fetch_Array($vysledek)):
echo "<h2>".$text[nazev]."</h2>";
$heslo = $_POST[heslo];
if (($text[zaheslovat] == 'a') and ($text[heslo] != $heslo)): //// ZACATEK ZAHESLOVANE CASTI
//napoveda
echo "<p>".stripslashes(nl2br($text[napoveda]))."</p>";
?>
<h2>Zadejte heslo</h2>
<form action="" method="post">
<p>
<input class="formtext" name="heslo" type="password" value="" size="20" />
<input class="button" type="submit" value="Odeslat" />
</p>
</form>
<?php
else:
echo "<p>".stripslashes(nl2br($text[text]))."</p>";
if ($text[cena] != 0) echo "<div class=\"cena\">Cena bez DPH: ".$text[cena]." Kč <br /> Cena s DPH: ".$text[cena_dph]." Kč</div>";
//odkazy
$pocet = 0;
$sql = "SELECT * FROM odkazy WHERE reference = '$ref' ORDER BY toplist;";
$vysledek = @MySQL_Query($sql);
while($link = @MySQL_Fetch_Array($vysledek)):
$pocet++;
if (1 == $pocet) echo "<h2>Odkazy</h2><ul>";
echo "<li><span><a href=\"".$link[url]."\">".$link[popis]."</a></span></li>";
// echo "<span>".$link[url]."</span>";
endwhile;
if (0 != $pocet) echo "</ul>";
//vypsani souborů
$pocet = 0;
$adresar = "files/".$ref;
if (Is_Dir($adresar)):
$a = OpenDir($adresar);
$file = ReadDir($a);
$file = ReadDir($a);
while($file = ReadDir($a)):
if (Is_File($adresar."/".$file)) {
$koncovka = substr($file,strpos($file,".")+1,strlen($file));
do {
if (!(strpos($koncovka,".") === false)) $koncovka = substr($koncovka,strpos($koncovka,".")+1,strlen($koncovka));
} while (!(strpos($koncovka,".") === false));
if (('gif' != $koncovka) and ('png' != $koncovka) and ('jpg' != $koncovka) and ('jpeg' != $koncovka)):
$pocet++;
if (1 == $pocet) echo "<h2>Soubory</h2>";
$filesize = filesize($adresar."/".$file)/1024;
$filesize = round($filesize,1);
if ('doc' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/word.png\" border=0 alt=\"doc\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('xls' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/excel.png\" border=0 alt=\"xls\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('txt' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/txt.png\" border=0 alt=\"txt\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('bmp' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/bmp.png\" border=0 alt=\"bmp\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('pdf' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/pdf.png\" border=0 alt=\"pdf\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('mp3' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/audio.png\" border=0 alt=\"mp3\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('wav' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/audio.png\" border=0 alt=\"mp3\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('wma' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/audio.png\" border=0 alt=\"mp3\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('avi' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/video.png\" border=0 alt=\"avi\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('vob' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/video.png\" border=0 alt=\"mpeg\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('asf' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/video.png\" border=0 alt=\"mpeg\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('mp4' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/video.png\" border=0 alt=\"mpeg\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('wmv' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/video.png\" border=0 alt=\"mpeg\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
elseif ('mkv' == $koncovka): echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/video.png\" border=0 alt=\"mpeg\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
else: echo "</div><div class=\"down2\"><a href=\"".$adresar."/".$file."\"><img src=\"ico/uni.png\" border=0 alt=\"??\" /></a><strong><a href=\"".$adresar."/".$file."\">".$file."</a> (".$filesize."kB)</strong>";
endif;
$sql = "SELECT * FROM popisky HAVING adresar = '$ref' AND jmeno = '$file';";
$vysledek = @MySQL_Query($sql);
if ($popisek = @MySQL_Fetch_Array($vysledek)):
echo " - ".$popisek[popis];
endif;
endif;
}
endwhile;
CloseDir($a);
endif;
//detaily
/*
$sql = "SELECT * FROM users WHERE id = '$text[vlozil]';";
$vysledek = @MySQL_Query($sql);
$autor = @MySQL_Fetch_Array($vysledek);
if ($autor[jmeno] == '') $autor[jmeno] = "Admin";
echo "<p class=\"comments align-right\">vložil ".$autor[jmeno]." dne ".$text[vlozeno].", zobrazeno ".$text[pocitadlo]."x, naposledy dne ".$text[posledni]."</p>";
//pocitadlo + 1
$datum = date("Y-m-d");
$values = "navsteva = '$datum',
pocitadlo = $text[pocitadlo]+1";
$sql = "UPDATE kategorie SET $values WHERE id = '$ref'";
$result = MySQL_Query($sql); */
/*****/
//vypsani fotogalerie
$pocet = 0;
$adresar = "files/".$ref;
if (Is_Dir($adresar)):
$a = OpenDir($adresar);
$file = ReadDir($a);
$file = ReadDir($a);
while($file = ReadDir($a)):
$fotoid = 0;
$popis = 0;
if (Is_File($adresar."/".$file)) {
$sql = "SELECT * FROM popisky HAVING adresar = '$ref' AND jmeno = '$file';"; //nacteni popisku
$vysledek = @MySQL_Query($sql);
if ($popisek = @MySQL_Fetch_Array($vysledek)):
$popis = $popisek[popis];
$fotoid = $popisek[id];
endif;
$koncovka = substr($file,strpos($file,".")+1,strlen($file));
if (('gif' == $koncovka) or ('png' == $koncovka) or ('jpg' == $koncovka) or ('jpeg' == $koncovka)):
$pocet++;
if (1 == $pocet) echo "</div><div class=\"down2\">";
if (1 == $pocet) echo "<table><tr>";
$cesta_nahled = $adresar."/thumbs/".$file;
$cesta_velka = $adresar."/".$file;
// soubor thumbs existuje - zobrazit
if (file_exists($cesta_nahled)):
list($width, $height) = getimagesize($cesta_nahled);
if ($width >= $height):
echo " <td class=\"galerie\"> <a href=\"foto.php?file=".$adresar."/".$file."&id=".$fotoid."\"><img src=\"".$adresar."/thumbs/".$file."\" alt=\"".$popis."\" title=\"".$popis."\" class=\"galerieV\" /></a> </td> ";
else:
echo " <td class=\"galerie\"> <a href=\"foto.php?file=".$adresar."/".$file."&id=".$fotoid."\"><img src=\"".$adresar."/thumbs/".$file."\" alt=\"".$popis."\" title=\"".$popis."\" class=\"galerieS\" /></a> </td> ";
endif;
// soubor thumbs neexistuje - generuj
else:
list($width, $height) = getimagesize($cesta_velka);
if ($width > $height):
$newwidth=120;
$newheight=round($height/($width/$newwidth));
else:
$newheight=120;
$newwidth=round($width/($height/$newheight));
endif;
ini_set(safe_mode,Off); // opatrni proti nedostupnosti dat
if (('jpg' == $koncovka) or ('jpeg' == $koncovka)):
$source = imagecreatefromjpeg($cesta_velka);
$thumb=imagecreatetruecolor($newwidth, $newheight);
ImageCopyResized($thumb,$source,0,0,0,0,$newwidth, $newheight, $width, $height);
touch($cesta_nahled);
ImageJPEG($thumb,$cesta_nahled);
elseif ('gif' == $koncovka):
$source = imagecreatefromgif($cesta_velka);
$thumb=imagecreatetruecolor($newwidth, $newheight);
ImageCopyResized($thumb,$source,0,0,0,0,$newwidth, $newheight, $width, $height);
touch($cesta_nahled);
ImageGIF($thumb,$cesta_nahled);
elseif ('png' == $koncovka):
$source = imagecreatefrompng($cesta_velka);
$thumb=imagecreatetruecolor($newwidth, $newheight);
ImageCopyResized($thumb,$source,0,0,0,0,$newwidth, $newheight, $width, $height);
touch($cesta_nahled);
ImagePNG($thumb,$cesta_nahled);
endif;
ImageDestroy($thumb);
ImageDestroy($source);
ini_set(safe_mode,On);
//soubor thumbs už existuje - zobraz:
if (file_exists($cesta_nahled)):
if ($width >= $height):
echo " <td class=\"galerie\"> <a href=\"foto.php?file=".$adresar."/".$file."&id=".$fotoid."\"><img src=\"".$adresar."/thumbs/".$file."\" alt=\"".$popis."\" title=\"".$popis."\" class=\"galerieV\"/></a> </td> ";
else:
echo " <td class=\"galerie\"> <a href=\"foto.php?file=".$adresar."/".$file."&id=".$fotoid."\"><img src=\"".$adresar."/thumbs/".$file."\" alt=\"".$popis."\" title=\"".$popis."\" class=\"galerieS\"/></a> </td> ";
endif;
// soubor thumbs stale neexistuje - zobraz html
else:
if ($width >= $height):
echo " <td class=\"galerie\"> <a href=\"foto.php?file=".$adresar."/".$file."&id=".$fotoid."\"><img src=\"".$adresar."/".$file."\" alt=\"".$popis."\" title=\"".$popis."\" class=\"galerieV\" /></a> </td> ";
else:
echo " <td class=\"galerie\"> <a href=\"foto.php?file=".$adresar."/".$file."&id=".$fotoid."\"><img src=\"".$adresar."/".$file."\" alt=\"".$popis."\" title=\"".$popis."\" class=\"galerieS\" /></a> </td> ";
endif;
endif;
endif;
endif;
}
if ($pocet % 3 == 0) echo "</tr><tr>";
endwhile;
if (0 != $pocet) echo "</tr></table>";
endif;
//fórum
if ($text[forum] == 1):
?>
<form action="forum_add.php" method="post">
<p>
<input class="forumname2" name="name" type="text" value="Jméno" size="40" />
<textarea name="text" class="forumtext2">Váš vzkaz</textarea>
<img src="i_captcha/visual-captcha.php" id="forumpic2" alt="Visual CAPTCHA" />
<input class="forumcode2" type="text" name="user_code" value="Opište kód z obrázku" />
<input class="button-forum2" type="submit" value="Odeslat" />
<input name="ref" type="hidden" value="<?php echo $ref; ?>">
<input name="lang" type="hidden" value="<?php echo $lang; ?>">
</p>
</form>
<?php
//VYPIS VYBRANYCH PRISPEVKU
$vyber = $_GET[vyber]*1;
if (0 == $vyber) $vyber = 1;
$interval = 7;
$odd = true;
$sql = "SELECT * FROM forum WHERE ref = '$ref' ORDER BY id DESC LIMIT ".(($vyber-1)*$interval).",".$interval." ;";
$vysledek = @MySQL_Query($sql);
while($z = @MySQL_Fetch_Array($vysledek)):
if ($odd == true):
echo "<div class=\"down3\">";
$odd = false;
else:
echo "<div class=\"up3\">";
$odd = true;
endif;
echo "<strong>".$z[name]."</strong> (".$z[date].") <br />".$z[text]."</div> \r\n";
endwhile;
//ZALAMOVANI
echo "<div class = \"zalom\">";
$sql = "SELECT * FROM forum WHERE ref = '$ref';";
$vysledek = @MySQL_Query($sql);
$max = mysql_num_rows($vysledek);
$pocet = floor($max / $interval);
for($c=1; $c<=$pocet; $c++){
$a = (($c-1)*$interval)+1;
$b = $c*$interval;
if ($vyber != $c) echo "<a href=\"index.php?lang=".$lang."&art=".$ref."&vyber=".$c."\" title=\"".$a."..".$b."\">";
echo "[".$a."..".$b."] ";
if ($vyber != $c) echo "</a> ";
}
if ($max > $b):
if ($vyber != ($pocet+1)) echo "<a href=\"index.php?art=".$lang."&art=".$ref."&vyber=".($pocet+1)."\" title=\"".($b+1)."..".$max."\">";
echo "[".($b+1)."..".$max."] ";
if ($vyber != ($pocet+1)) echo "</a>";
endif;
echo "</div>";
endif;
endif;
endif;
?>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<?php
endif; /***************************************************/
?>
<div class="footer">
<div class="left">
© MiK <?php echo date("Y"); ?>
<a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a>
|
<a href="http://validator.w3.org/check/referer">XHTML</a>
</div>
<div class="right">
Kodování stránek <a href="http://www.KHweb.net">KHweb.net</a>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-1726031-12");
pageTracker._trackPageview();
</script>
</body>
</html>
zde je část indexu
a zde je ten druhý úplný
<?php
//vypsani fotogalerie
$korenovy_adresar = "files/";
if (Is_Dir($korenovy_adresar)):
$aa = OpenDir($korenovy_adresar);
$file = ReadDir($aa);
$file = ReadDir($aa);
while($art = ReadDir($aa)):
$sql = "SELECT *, DATE_FORMAT( datum, '%e.%c.%Y' ) AS vlozeno,
DAYNAME(datum) AS xy,
DATE_FORMAT( navsteva, '%e.%c.%Y' ) AS posledni,
DAYNAME(navsteva) AS xyz
FROM kategorie WHERE id = '$art';";
$vysledek = @MySQL_Query($sql);
if ($text = @MySQL_Fetch_Array($vysledek)):
$adresar = $korenovy_adresar.$art;
if (($text[zaheslovat] != 'a') and (Is_Dir($adresar))):
$a = OpenDir($adresar);
$file = ReadDir($a);
$file = ReadDir($a);
while($file = ReadDir($a)):
if (Is_File($adresar."/".$file)) {
$koncovka = substr($file,strpos($file,".")+1,strlen($file));
if (('gif' == $koncovka) or ('png' == $koncovka) or ('jpg' == $koncovka) or ('jpeg' == $koncovka)):
$cesta_velka = $adresar."/".$file;
list($width, $height) = getimagesize($cesta_velka);
$newheight=200;
$newwidth=round($width/($height/$newheight));
$margin=round($newwidth/2);
// echo "<br>".$file." (".$width." x ".$height.") -> (".$newwidth." x ".$newheight.") ";
if (($newwidth >= 260) and ($newwidth <= 280)) :
// echo " <b>*</b>";
$pocet++;
$pole[$pocet] .= $adresar."/".$file;
$polewidth[$pocet] .= $newwidth;
$poleheight[$pocet] .= $newheight;
$polemargin[$pocet] .= $margin;
// echo $pole[$pocet]."<br>";
endif;
endif;
}
endwhile;
endif;
endif;
endwhile;
endif;
$nahoda = rand(1,$pocet);
echo "<img src=\"".$pole[$nahoda]."\" alt=\"Náhodná fotografie\" title=\"Náhodná fotografie\" style=\" width: ".$polewidth[$nahoda]."px; height: 100%; margin-left: -".$polemargin[$nahoda]."px; \" />";
?>
#12 misaxxx
minimalne se pouzivaj neinicializovany promenny jako $pocet.-.. co se stane pokud bude pocet nastavenej na dejme tomu uz 1000 a pak se do pole nasazi 1001-2001
a pak random vyhodi treba 1 - no proste nema sanci
Programátor nejsem, takže možná budu plácat hovadiny. Ale nebylo by jednodušším řešením rovnou vytáhnout random záznam fotky přímo z databáze, než si je ukládat do pole a z něho pak vybírat random?
Případně pokud potřebuješ pouze fotku a ukládají se na stejné místo se stejným názvem (např. img-01.jpg,img-02.jpg,..) netahala bych do toho mysql vůbec
Fotka se nenačte, protože ten script nefunguje - do SRC nedává adresu k obrázku, jak už psal KIIV.
Bohužel s tím nedokážu pomoct, když je to přes redakční systém. Zkus se obrátit na toho, kdo ten redakční systém vytvořil (nebo pokud je to něco jako wordpress tak nějaké fórum přímo k němu).
uvnitř se píše redakčním přístupem, ale mam přístupy i do ftp i mysql. ráno to ještě fungovalo...respektive byl načtený jeden obrázek ale neměnil se. tak jsem tedy celý článek v redakci smazal a vyplivlo mě toto.
redakční systém je psaný přímo autorem stránek....a ten již se tím bohužel nezabývá.
Snad už jen jestli to nevybírá obrázky z nějaké určené kategorie článků. Případně jestli se někde nemusí něco nastavit, aby to fotky z článku zařadilo do výběru.
Pokud to totiž ráno fungovalo a teď to do src dává prázdný řetězec, tak to vypadá, že seznam obrázků k výběru je prázdný.
Sis, to je za trest, za 200 se hrabat v cizim kodu.
Kazdopadne bych zacal od komentare //vypsani fotogalerie
adresar: $adresar = "files/".$ref;
z db: SELECT * FROM popisky HAVING adresar = '$ref' AND jmeno = '$file';
Vsude, kde uvidis if (...):, tak na radek pod to pridej echo 1;, k dalsimu ifu zase echo 2; A tak pokracuj az do radku "if ($pocet % 3 == 0)". Po ulozeni a spusteni je pak dulezite, ktere cisla se vypsala. Zbytek kodu mimo komentar "vypsani fotografie" az po radek "if ($pocet % 3 == 0)" je v celku nedulezity.
Jeste by mohla byt zajimava cast to, kde bere promennou $ref.
Pripadne by mohlo byt zajimave zrusit pred prikazy zavinace @ a pridat or die mysql error, pripadne pridat na zacatek error_reporting
@MySQL_Query($sql); -> MySQL_Query($sql) or die(mysql_error());
@MySQL_Fetch_Array($vysledek) -> MySQL_Fetch_Array($vysledek)
Proc to fungovalo a ted uz ne? Tipl bych si, ze ta fotka byla prvni, cili nulta. Jestlize neco selhalo, tak to vratilo nulu a jaka nahoda, nulta fotka nahodou existovala :) Ted jsi ji smazal, dalsi v poradi je ale cislo 1. Jenze k tomu se nikdy nedostane, kdyz to selhalo nekde a spadlo na nula.
Ale to je jenom teorie, to by chtelo proste krok za krokem zjistovat chyby a mit pristup na ftp. Do cehoz se mi nechce. Uz jen z toho kousku kodu se chytam za vlasy a desim pristiho dne :) By to chtelo asi cely system predelat. Oprava tohoto otazka asi 1-2h nebo 15 min.
<?php
function getRandomImage($max = 1) {
$pripony = array('gif'=>true,'png'=>true,'jpg'=>true,'jpeg'=>true);
$pole = array();
$pocet = 0;
$korenovy_adresar = "files/";
$res = @mysql_query("select id from kategorie where zaheslovat <> 'a' order by rand() limit $max;");
if (!$res) return array(); // repeating won't work anyway - exterminate, exterminate, exterminaaaate!
while (list($id) = @mysql_fetch_array($res)) { // get one id / aka directory
$adresar = $korenovy_adresar.$id; // randomly picked directory from database
if (!is_dir($adresar)) { continue; } // skip "not directories"
$dir = opendir($adresar);
while ($file = readdir($dir)) {
if ( !is_file($adresar.'/'.$file)) { continue; } // skip everything except for regular files
$koncovka = substr($file, strrpos($file,'.')+1);
if ($pripony[strtolower($koncovka)] == true) {
$cesta_velka = $adresar."/".$file;
list($width, $height) = getimagesize($cesta_velka);
$newheight=200;
$newwidth=round($width/($height/$newheight));
if (!(($newwidth >= 260) and ($newwidth <= 280))) { // small fallback... might help to find more images
$newwidth=280;
$newheight=round($height/($width/$newwidth));
}
$margin=round($newwidth/2);
if (($newwidth >= 260) and ($newwidth <= 280) and ($newheight<=200)) {
$pole[++$pocet] = array('file'=>($adresar.'/'.$file), 'width'=>$newwidth, 'height'=>$newheight, 'margin'=>(round($newwidth/2)));
}
}
}
if ($pocet>0) { // last round if there is at least one image
return $pole[rand(1,$pocet)];
}
}
return $max < 10 ? getRandomImage($max+1) : array(); // if repeats less than ten times - allow recursion...
}
$image_data = getRandomImage();
if (!empty($image_data)) {
echo '<img src="'.$image_data['file'].'" style="width:'.$image_data['width'].'px; height:100%; margin-left:-'.$image_data['margin'].'px;" />'."\n";
} else {
echo '<img src="http://www.punjabigraphics.com/images/15/star-wars-fail.jpg" style="width:280px; height:100%; margin-left:-140px;" />'."\n";
}
?>
sem si s tim tak nejak hral.. nejsou tam sice vsechny veci uplne optimalni... ideal by bylo mit rovnou seznam fotek v databazi i s tim jestli je zaheslovana nebo ne...
Ahoj. díky za reakci. Ten patla sice možná neuměl profesionálně psát ale byl jsem vcelku s webem spokojený.
Já jsem nyní soukromý web použil předtím pro naše oddílové horolezecké stránky. Platil jsem to vše z vlastní kapsy.Nikde žádný profit. Soukromé stránky také žádný profit. Mrzí mě to že musím hledat pomoc někde jinde, ale jsem štastný že to někam spěje.
Děkuju za čas KIIV. Pokusím se to tam zkopírovat . Prosím napiš mi na soukromý email. K72at emailcz
jestli bude oprava třebas na dvě hodiny kolik stojí tvé dvě hodiny?pokud bude nyní zaslané zašlu na účet to co jsem nabídnul. Zzatím díky. m.
ahoj píšu znovu KIIV. jsme o kus dál! obrázek se již zobrazuje i tam kde má ale nyní bych potřeboval aby to načítalo náhodné obrázky z jednotlivých článků- např zde:
http://www.diagraph.cz/foto.php?file=files/309/90873-diagraph_struktura.jpg&id=675
což je mimo jiné struktura webu. V kancelářním systému se ukládají jednotlivé složky do souboru "files" kterou vidíš ve struktuře.
Pokud budeš chtít více info poskytnu. Ty prosím poskytni číslo bankacount:-)
další informace:
vytvořil jsem v redakčním systému testový článek s obrázkem ten se již v random zobrazuje! Asi databáze nepobrala článek před a článek po zásahu. I tak vše ostatní platí. Prosím ozvi se mi KIIV. jsi machr!
k tem obrazkum - je tam omezeni ze po zmene velikosti na tusim vysku musi zmenena velikost na sirku byt mezi 260 a 280 px...
sem tam jeste dal ze kdyz to nesplni tudle podminku, tak at to zkusi opacne ... nastavit 280 a otestovat, jestli na vysku bude aspon mensi nez 200 ... (mozna by bylo i lepsi zkusit 260 rovnou)
takze pokud se k nejakemu clanku nenajde zadna fotka, tak se pokracuje dalsim clankem v poradi (a zkousi se to jen nekolikrat aby nevzniklo zacykleni)
jo pak se jeste zbav v ty fotky dole v else vetvi :)) ty:
kdyz to hledani nahodne slozky s nejakou vhodnou fotkou selze
(treba to driv i fungovalo jen byl spatnej pomer stran vsech obrazku)
ahoj díky, opravdu to funguje a je to přesně tak jak píšeš jsou tak nastavené podmínky..ty jsem kdysi dávno odsouhlasil od toho kluka co to psal. Dále vyrušení toho else znamená vymazat toto:
else {
echo '<img src="http://www.punjabigraphics.com/images/15/star-wars-fail.jpg" style="width:280px; height:100%; margin-left:-140px;" />'."\n";
}
další odpověd emailem. ..M.
přemáznul jsem v ftp všechny obrázky a dělá to stále chvílemi šedé prázdné náhodné zobrazení. vrátím tam asi i ten druhý else. Jinak jsem spokojený. Pokud to zabereme malinko času tak se třebasna to mrkni ale jinak bych to považoval za vyřízené.:-) k radosti mé.
nebo tam dej takhle nejakou defaultni ... jinak by se asi musely zvetsit pocty pokusu ...
jako:
function getRandomImage($max = 10) {
a pak zmenit jeste takhle
return $max < 20 ? getRandomImage($max+2) : array();
a nebo se zbavit uplne ty casti limit v selectu ... pak by se dalo zbavit i tech dalsich casti kde se bere max
udělal jsem to ale pořád šedá:
<?php
function getRandomImage($max = 10) {
$pripony = array('gif'=>true,'png'=>true,'jpg'=>true,'jpeg'=>true);
$pole = array();
$pocet = 0;
$korenovy_adresar = "files/";
$res = @mysql_query("select id from kategorie where zaheslovat <> 'a' order by rand() limit $max;");
if (!$res) return array(); // repeating won't work anyway - exterminate, exterminate, exterminaaaate!
while (list($id) = @mysql_fetch_array($res)) { // get one id / aka directory
$adresar = $korenovy_adresar.$id; // randomly picked directory from database
if (!is_dir($adresar)) { continue; } // skip "not directories"
$dir = opendir($adresar);
while ($file = readdir($dir)) {
if ( !is_file($adresar.'/'.$file)) { continue; } // skip everything except for regular files
$koncovka = substr($file, strrpos($file,'.')+1);
if ($pripony[strtolower($koncovka)] == true) {
$cesta_velka = $adresar."/".$file;
list($width, $height) = getimagesize($cesta_velka);
$newheight=200;
$newwidth=round($width/($height/$newheight));
if (!(($newwidth >= 260) and ($newwidth <= 280))) { // small fallback... might help to find more images
$newwidth=280;
$newheight=round($height/($width/$newwidth));
}
$margin=round($newwidth/2);
if (($newwidth >= 260) and ($newwidth <= 280) and ($newheight<=200)) {
$pole[++$pocet] = array('file'=>($adresar.'/'.$file), 'width'=>$newwidth, 'height'=>$newheight, 'margin'=>(round($newwidth/2)));
}
}
}
if ($pocet>0) { // last round if there is at least one image
return $pole[rand(1,$pocet)];
}
}
return $max < 20 ? getRandomImage($max+2) : array(); // if repeats less than ten times - allow recursion...
}
$image_data = getRandomImage();
if (!empty($image_data)) {
echo '<img src="'.$image_data['file'].'" style="width:'.$image_data['width'].'px; height:100%; margin-left:-'.$image_data['margin'].'px;" />'."\n";}
?>
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
C++ Builder 6 - oprava chyby — založil Marty.SX1
Fotografie na webu — založil Cernocky
Fotografie s čísly — založil Daniel Pallavicini
Fotografie zdarma — založil Jiří
Fotak, nevidim fotografie — založil blackcats
Moderátoři diskuze