Autor | Zpráva | ||
---|---|---|---|
michal454454 Profil |
#1 · Zasláno: 9. 2. 2015, 20:10:47
Zdravim stahnul jsem si z internetu fotogalerii a normalne mi na serveru běžela pak jsem ji zakomponoval do svého webu a když si vyberu položku galerie kterou chci zobrazit tak mi vypise tohle...
Fatal error: Call to a member function read() on a non-object in /home/users/michal454454/php-zkouska.8u.cz/web/galerie/adresar.php on line 39 |
||
lionel messi Profil |
#2 · Zasláno: 9. 2. 2015, 20:16:41
michal454454:
„Fatal error: Call to a member function read() on a non-object“ Samotná hláška ti hovorí, že si metódu read aplikoval na niečo, čo nie je objektom. Bez konkrétneho kódu ťažko presnejšie poradiť.
|
||
Keeehi Profil |
#3 · Zasláno: 9. 2. 2015, 20:18:01
michal454454:
A řádek 39 v souboru /home/users/michal454454/php-zkouska.8u.cz/web/galerie/adresar.php je co? A rovnou sem přidej i řádky předcházející a pár těch následujících. Problém vzniká pravděpodobně už o pár řádků dříve, jen se projevuje tady. |
||
michal454454 Profil |
#4 · Zasláno: 9. 2. 2015, 20:25:55
tady je soubor fotogalerie.php
<?php //import require_once 'adresar.php'; //nastavení html echo '<link type="text/css" href="hlavni.css" rel="stylesheet"> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <link rel="stylesheet" href="css/lightbox.css" type="text/css" /> <script src="js/jquery-1.7.2.min.js"></script> <script src="js/jquery-ui-1.8.18.custom.min.js"></script> <script src="js/jquery.smooth-scroll.min.js"></script> <script src="js/lightbox.js"></script>'; //práce se třídou Adresar $class = new Adresar(); $class->vyber(); if (isset($_POST['ok'])) { echo '<h1> Aktuální složka: ', $_POST['vyber'], '</h1>'; $class->vypis($_POST['vyber']); } ?> adresar.php <?php class Adresar{ function __construct() { // BEGIN function __construct header('Content-type: text/html; charset=utf-8'); } // END function __construct function vyber() { // BEGIN function vyber ?> <h1>Potravinová Galerie</h1> <nav> <form action="./index.php?action=fotogalerie" method="post"> Vyberte jednu z následujících složek:<select name="vyber"> <optgroup label="potraviny"> <option value="potraviny/bio">/potraviny/bio</option> <option value="potraviny/dietni">/potraviny/dietni</option> <option value="potraviny/tucne">/potraviny/tucne</option> </optgroup> <optgroup label="tekutiny"> <option value="tekutiny/alkoholicke">/tekutiny/alkoholicke</option> <option value="tekutiny/mlecne">/tekutiny/mlecne</option> <option value="tekutiny/neperlive">/tekutiny/neperlive</option> <option value="tekutiny/perlive">/tekutiny/perlive</option> </optgroup> </select> <input type="submit" name="ok"> </form> </nav> <?php } // END function vyber function vypis($dir) { // BEGIN function vypis $pole[1] = $dir; $slozka = dir($dir); $pocet = 0; ?> <div id="reference"> <table> <tr> <?php while ($pole[2] = $slozka->read()) { if($pole[2] == "." || $pole[2] == ".."){continue;} $cesta = implode($pole, '/'); echo'<td><a href="'.$cesta.'" rel="lightbox[reference]"><img src="'.$cesta.'" alt="'.$pole[1].'" title="'.$pole[1].'" width="150" height="150"></a></td>'; ++$pocet; if($pocet == 4){ echo'</tr><tr>'; $pocet = 0; } } ?> </tr> </table> </div> <?php $slozka->close(); } // END function vypis } ?> |
||
Keeehi Profil |
Řádek 32. Funkce dir vrací toto podle specifikace toto Returns an instance of Directory, or NULL with wrong parameters, or FALSE in case of another error. Takže evidentně ta složka nejde otevřít a pak se volá read nad null nebo false.
|
||
michal454454 Profil |
#6 · Zasláno: 9. 2. 2015, 20:45:52
a co muze byt příčina ze nejde otevřít? :)
|
||
Keeehi Profil |
#7 · Zasláno: 9. 2. 2015, 20:54:29
Třeba práva ale spíš špatná neexistující cesta.
Může být nebezpečné vkládat do funkce dir uživatelem poslaná data. |
||
Časová prodleva: 9 let
|
0