Archívum - Május 2010
május 25
php include
Üdv!
Adott a következő kis összetétel:Azt szeretném elérni, hogy a "doc" nevű mappa tartalmában lévő fájloknak az elérési útját ne kelljen külön-külön megadni (mint a fenti kódban), mert sok van. Gondoltam, ha egyszerűen csak megadom a könyvtár nevét ('doc/ '), akkor sikerül majd meghívnom a fájlokat, de nem jött be. :) Van esetleg vmi megoldás? Előre is köszi!
■ Adott a következő kis összetétel:
<?php
$x = isset($_GET['x']) ? $_GET['x'] : 'index';
$file = $x . '.php';
if (is_readable($file) && in_array($x, array('index', 'doc/file1', 'doc/file2', 'doc/file3', ... 'doc/file20'))){
include $file;
}
else
header('Location: 404.php');
?>
Kapcsolódó oldalak adatbázisból és nevek linkelése
Sziasztok!
Gyakorlott PHP fejlesztőnek tartom magamat, ezért elsősorban a véleményetekre, megoldási javaslatokra lennék kiváncsi két dologgal kapcsolatban, amely a munkám során felmerült és korábban még nem találkoztam hasonlókkal:
1. Adott egy hirek tábla az adatbázisban, a hir.php?id=XY hatására a böngésző ebből behozza az adott hírt. Ehhez szeretnék egy olyan blokkot készíteni, ahova adminfelületen más híreket lehet kapcsolni, de több lehetőség is felmerült és nem tudom melyek mellett tegyem le a voksom. Az első, hogy létrehozok egy másik táblát, ami tárolja a kapcsolódásokat, egyesével, hírenként (pl. hír ID-ja, kapcsolódó hír ID-je, hír címe), de ígykönnyen több ezer rekord születhet. A másik, hogy dedikálok a hirek táblában egy kifejezett mezőt a kapcsolódó oldalaknak, ahova csak beírom az adott hírek ID-it, vesszőel elválasztva, ennek azonban hátránya, hogy külön címet (ha esetleg azt akarom, hogy eltérjen a hír eredeti címétől) nem adhatok meg. Egyrészt feltétel, hogy ha 10 vagy 1000 oldal kapcsolódik az adott hírhez akkor se szöszmötöljön sokat az adatbázislekérdezés, másrészt, hogy legyen valami opciója az egyedi névnek, sőt esetleg linknek, ha mondjuk nem egy másik hírt, hanem pl. egy külső weboldalt linkelnék a hírhez.
2. A másik problémám teljesen más: adott egy Írók mező egy táblában, rekordonként felsorolva nevekkel, mint pl. "Kiss Géza, Nagy Béla, Kovács Imre". Na már most azt szeretném, hogy ez a weboldalon úgy jelenjen meg, hogy amelyik szerzőhöz van adatlapunk az automatikusan belinkelődjön. Gondolom az, hogy a külső oldal betöltéskor vesszőnként különválassza a neveket, majd egyesével végigpörgesse a több ezer rekordból álló szerzők táblában eleve halál. Esetleg mentésnél pörgetné végig, majd komplett linkké alakítaná a neveket, és úgy tárolná az adatbázisban, aztán szerkesztésnél látszólag levenné róla a linkeket, módosításnál pedig megint ugyanez a kikeresős-linkelős procedúra?
Gyakorlott PHP fejlesztőnek tartom magamat, ezért elsősorban a véleményetekre, megoldási javaslatokra lennék kiváncsi két dologgal kapcsolatban, amely a munkám során felmerült és korábban még nem találkoztam hasonlókkal:
1. Adott egy hirek tábla az adatbázisban, a hir.php?id=XY hatására a böngésző ebből behozza az adott hírt. Ehhez szeretnék egy olyan blokkot készíteni, ahova adminfelületen más híreket lehet kapcsolni, de több lehetőség is felmerült és nem tudom melyek mellett tegyem le a voksom. Az első, hogy létrehozok egy másik táblát, ami tárolja a kapcsolódásokat, egyesével, hírenként (pl. hír ID-ja, kapcsolódó hír ID-je, hír címe), de ígykönnyen több ezer rekord születhet. A másik, hogy dedikálok a hirek táblában egy kifejezett mezőt a kapcsolódó oldalaknak, ahova csak beírom az adott hírek ID-it, vesszőel elválasztva, ennek azonban hátránya, hogy külön címet (ha esetleg azt akarom, hogy eltérjen a hír eredeti címétől) nem adhatok meg. Egyrészt feltétel, hogy ha 10 vagy 1000 oldal kapcsolódik az adott hírhez akkor se szöszmötöljön sokat az adatbázislekérdezés, másrészt, hogy legyen valami opciója az egyedi névnek, sőt esetleg linknek, ha mondjuk nem egy másik hírt, hanem pl. egy külső weboldalt linkelnék a hírhez.
2. A másik problémám teljesen más: adott egy Írók mező egy táblában, rekordonként felsorolva nevekkel, mint pl. "Kiss Géza, Nagy Béla, Kovács Imre". Na már most azt szeretném, hogy ez a weboldalon úgy jelenjen meg, hogy amelyik szerzőhöz van adatlapunk az automatikusan belinkelődjön. Gondolom az, hogy a külső oldal betöltéskor vesszőnként különválassza a neveket, majd egyesével végigpörgesse a több ezer rekordból álló szerzők táblában eleve halál. Esetleg mentésnél pörgetné végig, majd komplett linkké alakítaná a neveket, és úgy tárolná az adatbázisban, aztán szerkesztésnél látszólag levenné róla a linkeket, módosításnál pedig megint ugyanez a kikeresős-linkelős procedúra?
Oldalon eltöltött idő
Egy elméleti kérdésem lenne.
Valakinek van ötlete, hogy a google, a piwikstat, s egyéb statos cuccok, hogyan mérik az oldalon eltöltött időt?
Köszi az 5leteket.
■ Valakinek van ötlete, hogy a google, a piwikstat, s egyéb statos cuccok, hogyan mérik az oldalon eltöltött időt?
Köszi az 5leteket.
május 24
"Nagy lépés, ha egy cég rájön arra, hogy problémái vannak" - A Scrum módszerről (2. rész)
A scrum módszerről 2.
■ május 23
A Facebook a mobilszolgáltatókkal karöltve beárazná a webet
Olvad a netsemlegesség?
■ Kész HTML Email küldése PHP.ban
Ennyi van meg:
/* HTML levél küldés a Content-type fejléc megadásával */
$fejlec = "MIME-Version: 1.0\n";
$fejlec .= "Content-Type: text/html; charset=UTF-8";
/* továbító fejlécek Itt beállíthaqtod mit írjon feladónak */
$fejlec .= "From: \"Androméda-galaxis\" ";
$email = $_POST["register_email"];
$targy = ('Az Androméda-galaxis üdvözöl!');
$tartalom = stripslashes($_POST['tartalom']);
$uzenet = $tartalom;
mail( $email, $targy, $uzenet, $fejlec);
Kérdéses rész:
$tartalom = ("hirlevel/udvozol.html";) -> ezt nem tudom, hogyan kell ide beírni.
A többi adat jó és működik is.
A válasz jöhet ide is: cszlak##kukac##gmail.com-ra
■ /* HTML levél küldés a Content-type fejléc megadásával */
$fejlec = "MIME-Version: 1.0\n";
$fejlec .= "Content-Type: text/html; charset=UTF-8";
/* továbító fejlécek Itt beállíthaqtod mit írjon feladónak */
$fejlec .= "From: \"Androméda-galaxis\" ";
$email = $_POST["register_email"];
$targy = ('Az Androméda-galaxis üdvözöl!');
$tartalom = stripslashes($_POST['tartalom']);
$uzenet = $tartalom;
mail( $email, $targy, $uzenet, $fejlec);
Kérdéses rész:
$tartalom = ("hirlevel/udvozol.html";) -> ezt nem tudom, hogyan kell ide beírni.
A többi adat jó és működik is.
A válasz jöhet ide is: cszlak##kukac##gmail.com-ra
Közösségi játékom
Először is bocs a címért, jelen kérdésem csak egy "Javascript fgv. késleltetése az AJAX lefutásáig" lenne, de valószínűleg később lesz más kérdésem is és szeretném, ha az egész egy témában lenne.
A mostani problémám a következő:
Épp a játék bejelentkezés; szoba - és ellenfél-adatok folyamatos frissítése AJAX-szal részénél tartok, és ez még tökéletesen fut is.
Most egy Kilépés gombot csinálnék, ami kilépteti a játékost, majd lefuttat egy fgv.-t, ami beállítja a kezdőadatokat és behozza a kezdőoldali menüt.Ezzel ugye az a baj, hogy a player_update() után rögtön lefut a start() és felülírja a requestet, vagyis nem fut le a játékos kiléptetésének php fájlja.
Lehetne az a megoldás, hogy a player_update-be teszek egy onreadystatechange-et, és abba a start()-ot, de az a baj, hogy a player_update fgv.-t sok már fgv. is meghívja, mindig, ha vmit épp át kell írni (megnyert meccs, beállítások).
Azt akarom elkerülni, hogy az onreadystatechange-et szét kelljen ifezni, hogy ha a logout hivta meg, akkor ezt csinálja, ha egy másik fgv. akkor meg azt.
Kipróbáltam, hogy return-nel visszaadok egy 1-est, ha lefutott a request, de a logout fgv.
A mostani problémám a következő:
Épp a játék bejelentkezés; szoba - és ellenfél-adatok folyamatos frissítése AJAX-szal részénél tartok, és ez még tökéletesen fut is.
Most egy Kilépés gombot csinálnék, ami kilépteti a játékost, majd lefuttat egy fgv.-t, ami beállítja a kezdőadatokat és behozza a kezdőoldali menüt.
function logout() {
show_over_msg('logout', 'info');
// call player_update setting logout var
player_update('&logout=1');
// call start
start();
}
function player_update(update_string) {
xmlhttp = GetXmlHttpObject();
if(xmlhttp == null) {
alert ('Browser does not support HTTP Request');
return;
}
nocache = Math.random();
var url = 'player_update.php?player_id=' + overall_vars['player_id'] + '&player_type=' + overall_vars['player_type'] + '&nocache=' + nocache + update_string;
xmlhttp.open('GET',url,true);
xmlhttp.send(null);
}
function start() {
// ez eleg hosszu nem masolom be, ez allitja be a kezdoadatokat
hide_over_msg();
}
Lehetne az a megoldás, hogy a player_update-be teszek egy onreadystatechange-et, és abba a start()-ot, de az a baj, hogy a player_update fgv.-t sok már fgv. is meghívja, mindig, ha vmit épp át kell írni (megnyert meccs, beállítások).
Azt akarom elkerülni, hogy az onreadystatechange-et szét kelljen ifezni, hogy ha a logout hivta meg, akkor ezt csinálja, ha egy másik fgv. akkor meg azt.
Kipróbáltam, hogy return-nel visszaadok egy 1-est, ha lefutott a request, de a logout fgv.
május 22
70 Unique Examples Of 404 Error Pages For Your Inspiration
További 404-es ötletek
■ kétszintes menü + include
Sziasztok!
Kérdésem a következő lenne. 2 szintes menü van egy weboldalon. Include fg-el szeretném a content div-be betölteni a tartalmat. Egy szintes menünél semmi gond nincs viszont a kétszintesnél valami miatt nem töltődik be az oldal. Én így csináltam meg, de nem jó. Mi lehet a hibám?
A menü egy részlete:
A content div-ben elhelyezkedő include fgv:
■ Kérdésem a következő lenne. 2 szintes menü van egy weboldalon. Include fg-el szeretném a content div-be betölteni a tartalmat. Egy szintes menünél semmi gond nincs viszont a kétszintesnél valami miatt nem töltődik be az oldal. Én így csináltam meg, de nem jó. Mi lehet a hibám?
A menü egy részlete:
<li><a href="#">Információk</a>
<ul>
<li><a href="index.php?x=bemutatkozas.php">Bemutatkozás</a></li>
<ul>
<li><a href="index.php?x=bemutatkozas.php">Bemutatkozás</a></li>
A content div-ben elhelyezkedő include fgv:
<div id="content">
<?php
$x = $_GET['x'];
if(!isset($x)) {
$x = "main";
}
$file = $x . ".php";
if (is_readable($file) && in_array($x, array('main', 'bemutatkozas'))){
include("$file");
}
?>
</div>
<?php
$x = $_GET['x'];
if(!isset($x)) {
$x = "main";
}
$file = $x . ".php";
if (is_readable($file) && in_array($x, array('main', 'bemutatkozas'))){
include("$file");
}
?>
</div>