Autor | Zpráva | ||
---|---|---|---|
komárek Profil * |
#1 · Zasláno: 25. 4. 2015, 12:33:53
Zdravím přítomné.
Mám problém s tímto scriptem: <?php header('content-type: text/html; charset=utf-8'); include 'db.php'; $vypis = new Vypis('http://example/show.php'); if (isset($_GET['album'])) { $vypis->album($_GET['album']); } else if (isset($_GET['interpret'])) { $vypis->alba($_GET['interpret'], $_GET['strana'], 5); } else { $vypis->interpreti($_GET['strana'], 8); } class Vypis { function __construct($domena) { global $db_host; global $db_user; global $db_pass; global $db_db; $this->domena = $domena; $this->databaze = mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_db, $this->databaze); mysql_query('SET NAMES "utf8"', $this->databaze); } function interpreti($strana=1, $pocet=1) { if ($strana < 1) { $strana = 1; } if ($pocet < 1) { $pocet = 1; } $offset = (($strana*$pocet)-$pocet); $where = ''; if (isset($_GET['region'])) { $where = 'WHERE region = "'.$_GET['region'].'"'; } $pole = $this->db('SELECT * FROM interprets '.$where.' ORDER BY id ASC LIMIT '.$pocet.' OFFSET '.$offset); for ($i=0; $i<count($pole); $i++) { $interpret = $pole[$i]; echo '<a href="'.$this->domena.'?interpret='.$interpret['id'].'"><img alt="'.$interpret['name'].'" width="200" src="img/'.$interpret['name'].'.png"></a>'; } $celkem_db = $this->db('SELECT COUNT(*) as pocet FROM interprets '.$where.''); $celkem = $celkem_db[0]['pocet']; $stran = ceil($celkem/$pocet); if ($stran > 0) { echo '<br />'; for ($i=0; $i<$stran; $i++) { echo '<a href="'.$this->domena.'?region='.$_GET['region'].'&stranka=interpreti&strana='.($i+1).'"> '.($i+1).'</a>'; } } } function alba($interpret, $strana=1, $pocet=1) { if ($strana < 1) { $strana = 1; } if ($pocet < 1) { $pocet = 1; } $offset = (($strana*$pocet)-$pocet); $pole = $this->db('SELECT * FROM albums WHERE interpret = '.$interpret.' ORDER BY Year,Album ASC LIMIT '.$pocet.' OFFSET '.$offset); $interpret_db = $this->db('SELECT * FROM interprets WHERE id = '.$interpret); echo '<div align="center">'; for ($i=0; $i<count($pole); $i++) { $album = $pole[$i]; $obrazek = $interpret_db[0]['name'].'/'.$album['Album'].'.jpg'; if (file_exists($obrazek)) { $img = '<img width="100" height="100" src="'.$obrazek.'" alt="'.$album['Albumartist'].' - '.$album['Album'].'" />'; } else { $img = ''; } echo '<h4>'.$album['Album'].' ('.$album['Year'].')</h4><br /> <h5>'.$album['Albumartist'].'</h5><br /> '.$img.'<br /> <a href="'.$this->domena.'?album='.$album['id'].'">Details</a>'; } echo '</div>'; $celkem_db = $this->db('SELECT COUNT(*) as pocet FROM albums WHERE interpret = '.$interpret); $celkem = $celkem_db[0]['pocet']; $stran = ceil($celkem/$pocet); if ($stran > 0) { echo '<br />'; for ($i=0; $i<$stran; $i++) { echo '<a href="'.$this->domena.'?interpret='.$interpret.'&strana='.($i+1).'"> '.($i+1).' </a>'; } } } function album($id) { $album_db = $this->db('SELECT * FROM albums WHERE id = '.$id); $detail = $album_db[0]; $album_db = $this->db('SELECT * FROM albums WHERE id = '.$id); $interpret_db = $this->db('SELECT * FROM interprets WHERE id = '.$album_db[0]['interpret']); $obrazek = $interpret_db[0]['name'].'/'.$detail['Album'].'.jpg'; if (file_exists($obrazek)) { $img = '<img width="100" height="100" src="'.$obrazek.'" alt="'.$interpret_db[0]['name'].' - '.$detail['Album'].'" />'; } else { $img = ''; } echo '<h4><b>'.$detail['Album'].'</b> ('.$detail['Year'].')</h4><br /> '.$img.'<br /> <b>Artist</b>: '.$detail['Albumartist'].'<br /> <b>Publisher</b>: '.$detail['Publisher'].'<br />'; if ($user->is_logged()) { echo'<b>Web</b>: <a href="'.$detail['Web'].'" target="_blank">'.$detail['Web'].'</a><br />'; } echo'<b>Heslo</b>: '.$detail['Heslo'].'<br />'; $songs = $this->db('SELECT * FROM songs WHERE album = '.$id.' ORDER BY id ASC'); echo' <script type="text/javascript"> function myFunction(e) { var dataString = "id1=" + e.getAttribute("data-id"); $.ajax({ type: "POST", url: "lyrics.php", data: dataString, cache: false, success: function(data) { $("#test").html(data); $("#test").dialog(); } }); return false; } </script>'; if (count($songs) > 0) { $doba = 0; echo '<br /><br /> <table> <tr> <td class="title"><b>Track</b></td> <td class="title"><b>Title</b></td> <td class="title"><b>Length</b></td> <td class="title"><b>Composer</b></td> <td class="title"><b>Artist</b></td> <td class="title"><b>Lyrics</b></td> </tr>'; for ($i=0; $i<count($songs); $i++) { $song = $songs[$i]; echo '<tr class="'.($i%2?'lichy':'sudy').'"> <td>'.$song['Track'].'</td> <td>'.$song['Title'].'</td> <td>'.$this->cas($song['Length']).'</td> <td>'.$song['Composer'].'</td> <td>'.$song['Artist'].'</td> <td><a onclick="myFunction(this)" data-id="'.$song['Text'].'"><img width="20" height="20" src="img/lupa.png"></a> </td> </tr>'; $doba += $song['Length']; } echo '<tr> <td></td> <td style="color:white;">Total time:</td> <td style="color:white;">'.$this->cas($doba).'</td> </tr>'; echo '</table>'; } //Odkd přišel na stránku? $od = $_SERVER['HTTP_REFERER']; //Je cesta zpět? if($od != null){ //Naformátujeme adresu $parse = parse_url($od); $format = $parse['host']; //Vrať se tam echo "<a href=\"$od\">Zpět</a>"; } } function cas($sekund) { $min = floor($sekund/60); $sec = $sekund-($min*60); if ($sec < 10) { $sec = '0'.$sec; } return $min.':'.$sec; } function db($dotaz, $index=null) { $data = array(); $db_dotaz = mysql_query($dotaz, $this->databaze); if (substr($dotaz, 0, 6) == 'SELECT') { while ($radek = mysql_fetch_array($db_dotaz, MYSQL_ASSOC)) { if ($index != null) { $data[$radek[$index]] = $radek; } else { $data[count($data)] = $radek; } } return $data; } else { return true; } } } ?> K ukončení scriptu dojde na vyznačeném řádku. Přihlášený jsem, na začátku souboru mám <?php session_start();?>
Můžete mi někdo říct proč se tak děje? |
||
Michales Profil |
Co se stane kdyz radek umazes?
|
||
komárek Profil * |
#3 · Zasláno: 25. 4. 2015, 15:15:02 · Upravil/a: komárek
Tak script proběhne úplně v pořádku.
Když ten řádek tam je, ukončí se to na tom řádku a nehodí to vůbec žádnou chybu. Vůbec nechápu proč se tak děje Na ostatních stránkách mi to funguje. Tak se omlouvám, háže to chybu Call to a member function is_logged() on a non-object in Pokud to zavolám ještě před tím scriptem proběhne vše v pořádku. |
||
anonymníí Profil * |
#4 · Zasláno: 25. 4. 2015, 15:53:09
komárek:
A kde bereš proměnnou $user? Je jasné, že to musí skončit na chybové hlášce, když pracuješ s proměnnou, která neexistuje. |
||
komárek Profil * |
#5 · Zasláno: 25. 4. 2015, 16:02:48 · Upravil/a: komárek
A proč tedy když dám toto před ten script vše je v pořádku tak jak má být. Pokud to vnořím do toho scriptu skočí hláška.
Proměnná $user je samozřejmě uložená v $_SESSION $_SESSION['jmeno'] = $user->jmeno ; Pardón omylem jsem vložil něco jiného. Ale je to jak píšu je uložená v session $user->load(); // Pokusí se přihlásit uživatele z uložených údajů v _SESSION nebo _COOKIE Už je vše v pořádku |
||
Časová prodleva: 9 let
|
0