21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
danny98
Profil
Poradil by mi prosím někdo, jak v php udělat, aby mi při procházení mýho webu hrála třeba tato stanice? http://yourradio.tk/details.php?id=1
Viděl jsem návod v asp.net, ale mě jde o to, aby se při přehrávání zobrazoval player vždy při procházení a hrála ta stanice:)

details.php
<?

$conn = mysql_connect($server,$user,$password,$database);
if (!$conn) {
    echo "Connect error: " . mysql_error();
    exit;
}

if (!mysql_select_db($database)) {
    echo "Error selecting database: " . mysql_error();
    exit;
}
/*echo '<table width=100%>';*/
$id = $_GET['id'];
$sql = "SELECT * FROM `stations` WHERE `id`='$id'";
$result = mysql_query($sql);


if ($p = mysql_fetch_assoc($result)) {
echo '<h2>Details of: '.$p['station'].'</h2>';
echo '<div class="player">';
echo '<audio id="player" src="'.$p['stream'].'" >';
echo '</div>';
$id = $_GET['id'];
$sql = "SELECT * FROM `stations` WHERE `id`='$id'";
$result = mysql_query($sql);
}
while ($p = mysql_fetch_assoc($result)) {

echo '<table width=100%>';
echo '<tr><td><h4>Station name:</td><td>'.$p['station'].'</td></tr>';
echo '<tr><td><h4>Genre:</td><td>'.$p['genre'].'</td></tr>';
echo '<tr><td><h4>Country:</td><td>'.$p['country'].'</td></tr>';
echo '<tr><td><h4>Web:</td><td><a href="'.$p['web'].'">Official website</a></td></tr>';
}

echo "</table>";

?>    
Keeehi
Profil
Buď použiješ rámy, což je ošklivé řešení.

Nebo použiješ ajax což je extrémně složité udělat správně aby jsi neodstřihl uživatele bez javascriptu, uživatele se staršími prohlížeči a vyhledávače. Pokud se na to musíš ptát, nemáš dostatek znalostí na to to udělat korektně i kdybychom ti radili.
Krakatoa
Profil
Keeehi:
Mně jako nejvhodnější řešení připadá stav, který není řešen ani rámy, ani ajaxem (případně ajaxem s nějakým bonusem) a dá se přecházet mezi stránkami na webu (různé url) a přitom se jedná stále o jednu stránku v prohlížeči, která se jen různě vykresluje, například bez toho, aniž by došlo k znovunačtení přehrávaného audia, tedy tak nějak to chápu, oč jde, je vidět tu:
http://mp3pm.com
Neví někdo jak takový stav docílit? Pokud možno nějak přímo bez použití frameworku jako angular. Stačí jen to řešení v prohlížeči, co posílat prohlížeči by snad už těžké nebylo odvodit.
Keeehi
Profil
Krakatoa:
Ale tam se používá ajax.
Krakatoa
Profil
Keeehi:
Dobře. A nevíš nebo neví někdo jak docílit toho aby se při změně url načetl obsah přes ajax jak je to na té stránce, co jsem uvedl?
Keeehi
Profil
Je to normální ajax jako vždy. Jen je k tomu přidaná ta změna URL. Toho se da dosáhnout pomocí manipulace s historií prohlížeče. Takže není to ajax vyvolaný změnou URL ale ta změna je provedena samotným javascriptem paralelně k ajaxu. Jedno není nijak závislé na druhém.
Krakatoa
Profil
Keeehi:
Super. Díky moc, funguje skvěle. A jen dodám, že tímto způsobem se snad uživatelé bez javascriptu ani vyhledavače neodstřihnou, ne? Obsah jim přijde stejný, akorát jim nebude fungovat to, co je závislé na javascriptu, tedy např. nebude hrát audio bez znovunačtení.

danny98:
Podívej se na ten odkaz co tu dal Keeehi, je tam i example na githubu, abys ověřil, že to funguje, stačí přidat do after_content.php audio.
danny98
Profil
Krakatoa:
Ok děkuju :) :)
danny98
Profil
řešení si prostuduju, zatím nechám web tak jak je, jen přidám stránku http://yourradio.tk/play.php?id=1. Momentálně se nezabývám jen rádiovou databází, připravuju podklady pro databázi online televizí, druhýho admina jsem vyhodil, tak je toho na mě moc :( :D
Chamurappi
Profil
Reaguji na Krakatou:
tímto způsobem se snad uživatelé bez javascriptu ani vyhledavače neodstřihnou, ne?
Odstřihne se mnohem početnější skupina uživatelů bez podporu history.pushState. A co se vyhledávačů týče, záleží jen na tom, jak dobře funguje normální procházení webu bez zapnutého JS.

Díky moc, funguje skvěle.
Máš podchycené opravdu všechny možnosti? Zatím jsem neviděl web, který by toto používal bezchybně.


Reaguji na dannyho98:
aby se při přehrávání zobrazoval player vždy při procházení a hrála ta stanice:)
Otevři ho do nového okna. Poslech rádia je separátní činnost, proč by měla být úzce propojená s procházením webu? Když rozkliknu některý z tvých odkazů do nového tabu, bude mi hrát rádio dvojmo?
Krakatoa
Profil
Chamurappi:
Odstřihne se mnohem početnější skupina uživatelů bez podporu history.pushState.
Pár procent (hlavně IE9 a IE8). On ale není problém poslat prohlížeči, který to nepodporuje, něco jiného, ne? Nedělal jsem průzkum, ale co chodím třeba na soundcloud.com, jamendo.com, mp3pm.com ... ty to myslím používají a myslím, že i nejspíš mnoho dalších. Za mě je tedy nejvhodnějí tato možnost jako výchozí, i když tu se jedná o rádia, ale princip chování uživatele bude podobný.

A co se vyhledávačů týče, záleží jen na tom, jak dobře funguje normální procházení webu bez zapnutého JS.
To nějak nechápu. Však když je zapnutý js tak to pracuje s tím ajaxem a těma funkcema na procházení a jednotlivé stránky se načítají přes ajax. Když je js vypnutý tak se ty stránky načítají přímo s tím, že ten obsah je tam totožný (to komentuju pouze ten example, stejné být nemusí). Nechápu jaký by tedy mohl nastat problém.

Máš podchycené opravdu všechny možnosti? Zatím jsem neviděl web, který by toto používal bezchybně.
Nemám. Já jen byl nadšený z toho, že už znám princip jak to funguje. Například ten example mi občas problikává, to nejspíš ale jde nějak řešit, když weby s těma funkcema mi neproblikávají, jako například ty weby uvedeny výše. Co se týče bezchybnosti, já do toho nevidím jak ty, tak třeba soundcloud.com to myslím používá taky, jaký problém je tam?
danny98
Profil
Chamurappi::
Odkazy jsou teď tak udělány:)
Rádio dvojmo nehraje, odzkoušeno na yandex.browser, google chrome, IE, opera a Microsoft Edge (Project spartan) :)

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