Archívum - Május 2010 - Fórum téma
május 26
php include menü
Sziasztok!
Nemrég kezdtem ismerkedni a phpval, így kérném türelmeteket ha értetlenül fogalmazok. (a nyelv szintaktikája és utasításkészletét még nem igazán tettem magamévá)
Van egy egyszerű includos menüm (index.php):
A menü:
<a href='?menu=lap1'>Nyitólap</a>
<a href='?menu=lap2'>Nyitólap</a>
...
Majd egy nem fix tartalom divbe includolom a tartalmat.
<?php
switch($_GET['menu'])
{
case lap1:
include("lap1.php");break;
case lap2:
include("lap2.php");break;
default:
include("lap3.php");break;
}
?>
Ezzel nincs is probléma, csak mutatom, hogy egy hasonló felállást szeretnék elérni a keptar.php oldalon:
<!-- ======== FARSANG =========== -->
<div class="megnyit">
<a href="#" onClick="document.getElementById('farsang').style.display=(document.getElementById('farsang').style.display=='none')?'block':'none';return false">Képek megnyitásához / bezárásához kattintson ide!</a></div>
<table width="100%" id="farsang" style="display:none">
<tr>
<td width="100%">
<?php
include("galery/farsang/index.html");
?>
</td>
</tr>
</table>
</div><br />
<!-- ===== KÁLVÁRIA ============ -->
<div class="megnyit">
<a href="#" onClick="document.getElementById('kalvaria').style.display=(document.getElementById('kalvaria').style.display=='none')?'block':'none';return false">Képek megnyitásához és bezárásához kattintson ide!</a></div>
<table width="100%" id="kalvaria" style="display:none">
<tr>
<td width="100%">
<?php
include("galery/kalvaria/index.html");
?>
</td>
</tr>
</table>
</div>
Nemrég kezdtem ismerkedni a phpval, így kérném türelmeteket ha értetlenül fogalmazok. (a nyelv szintaktikája és utasításkészletét még nem igazán tettem magamévá)
Van egy egyszerű includos menüm (index.php):
A menü:
<a href='?menu=lap1'>Nyitólap</a>
<a href='?menu=lap2'>Nyitólap</a>
...
Majd egy nem fix tartalom divbe includolom a tartalmat.
<?php
switch($_GET['menu'])
{
case lap1:
include("lap1.php");break;
case lap2:
include("lap2.php");break;
default:
include("lap3.php");break;
}
?>
Ezzel nincs is probléma, csak mutatom, hogy egy hasonló felállást szeretnék elérni a keptar.php oldalon:
<!-- ======== FARSANG =========== -->
<div class="megnyit">
<a href="#" onClick="document.getElementById('farsang').style.display=(document.getElementById('farsang').style.display=='none')?'block':'none';return false">Képek megnyitásához / bezárásához kattintson ide!</a></div>
<table width="100%" id="farsang" style="display:none">
<tr>
<td width="100%">
<?php
include("galery/farsang/index.html");
?>
</td>
</tr>
</table>
</div><br />
<!-- ===== KÁLVÁRIA ============ -->
<div class="megnyit">
<a href="#" onClick="document.getElementById('kalvaria').style.display=(document.getElementById('kalvaria').style.display=='none')?'block':'none';return false">Képek megnyitásához és bezárásához kattintson ide!</a></div>
<table width="100%" id="kalvaria" style="display:none">
<tr>
<td width="100%">
<?php
include("galery/kalvaria/index.html");
?>
</td>
</tr>
</table>
</div>
PDO prepared statement
Meglehet valahogy tekinteni ,hogy milyen értékeket kapott a prepared statement vagy ,hogy milyen lekérdezést hajtott végre velük a PDO?Már egy ideje szívok ,hogy semmit se ad vissza a PDO lekérdezés ,holott az phpmyadmin-ban ugyanaz a lekérdezés az értékek behelyettesítése után hibátlanúl lefut.Több fajta behelyettesítést is próbáltam pl.vagy:
■ SELECT
count(*)
FROM users
WHERE
user_name = ? AND
password = ? "
"SELECT
count(*)
FROM users
WHERE
user_name = :user AND
password = :password "
május 25
.htaccess ErrorDocument
Üdv!
Szeretnék a .htaccess állománnyal saját 404 errort kiírni, de sehogy sem megy! Jelenleg ez a fájl tartalma:
<Files "magyar">
ForceType application/x-httpd-php
</Files>
<Files "english">
ForceType application/x-httpd-php
</Files>
<Files "content_helper">
ForceType application/x-httpd-php
</Files>
<Files "error">
ForceType application/x-httpd-php
</Files>
ErrorDocument 404 /error.php
De ha ezt írom: ErrorDocument 404 "Error!" Az sem megy!
Ehhez kell engedélyezni valamit a httpd.conf-ban?
■ Szeretnék a .htaccess állománnyal saját 404 errort kiírni, de sehogy sem megy! Jelenleg ez a fájl tartalma:
<Files "magyar">
ForceType application/x-httpd-php
</Files>
<Files "english">
ForceType application/x-httpd-php
</Files>
<Files "content_helper">
ForceType application/x-httpd-php
</Files>
<Files "error">
ForceType application/x-httpd-php
</Files>
ErrorDocument 404 /error.php
De ha ezt írom: ErrorDocument 404 "Error!" Az sem megy!
Ehhez kell engedélyezni valamit a httpd.conf-ban?
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 23
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
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>
Mennyire lehet utasítani a böngészőt, hogy a "kliens nevében" más weblapokat nyisson meg és ott cselekedjen?
Sziasztok!
Előre is bocs, mert egy teljesen kezdő tesz fel nagyon konkrét kérdést, szóval lehet, hogy az egész egy gyökérség...
Mennyire lehet utasítani a böngészőt? Például azt szeretném, hogy a weblapom egy olyan szolgáltatást nyújtson, hogy ha beírok egy szót és okézok, akkor új ablakban egy másik - nem saját - weblapot nyit meg, de nem a nyitólapján, hanem olyan állapotban, mintha annak a webalapnak egy bizonyos mezejébe beírtam volna az előbbi szót és submitoltam volna.
Na mondtam én, hogy ebből gáz lesz :)
pl. a weblapomon legyen egy egysoros űrlap, amibe ha beleírok, akkor megnyitja a google keresési találatát az adott szóra. Csakhogy ezt a google konkrétan támogatja és eszközt ad hozzá, akárcsak hasonló társai. (vagy nem?)
Mert mi van ha én olyan webalpokkal szeretném ezt megcsinálni, amik ezt nem engedik. Vagyis nem tiltják, de nincs hozzá külön felkínált eszköz.. vagy ez a feltételezésem eleve hülyeség..
És mi van ha ennél bonyolultabb dolgokat akarok csinálni? Akár több mezős űrlapokat átadni, akár több másik weblapnak (előre programozott sorrendben a megfelelő helyekre, ami működik, amíg azokat a weblapokat meg nem változtatják.)
Serveroldalon egyszerűbbnek képzelem, valahogy úgy, hogy a server lehívja a lapot egy "virtuális böngészőn" (megint gyökérnek érzem magam :)), majd lehívja megint a kitöltött űrlappal, és csak ezt jeleníti meg ténylegesen a felhasználónak. De ez nyílván sebesség meg minden egyéb szempontból is bődületes baromság..
De akkor hogy?
Mennyire lehet utasítani a böngészőt, hogy a "kliens nevében" cselekedjen?
Vagy ehhez már böngészőt kell programozni?
Mert a chrome megcsinálja, elég sok weblappal..
*a végére eszembe jutott, hogy amennyit én tudok az alapján még lehet, hogy erre is való a javascript, de lehet, hogy pont nem*
Előre is köszi, Dávid
■ Előre is bocs, mert egy teljesen kezdő tesz fel nagyon konkrét kérdést, szóval lehet, hogy az egész egy gyökérség...
Mennyire lehet utasítani a böngészőt? Például azt szeretném, hogy a weblapom egy olyan szolgáltatást nyújtson, hogy ha beírok egy szót és okézok, akkor új ablakban egy másik - nem saját - weblapot nyit meg, de nem a nyitólapján, hanem olyan állapotban, mintha annak a webalapnak egy bizonyos mezejébe beírtam volna az előbbi szót és submitoltam volna.
Na mondtam én, hogy ebből gáz lesz :)
pl. a weblapomon legyen egy egysoros űrlap, amibe ha beleírok, akkor megnyitja a google keresési találatát az adott szóra. Csakhogy ezt a google konkrétan támogatja és eszközt ad hozzá, akárcsak hasonló társai. (vagy nem?)
Mert mi van ha én olyan webalpokkal szeretném ezt megcsinálni, amik ezt nem engedik. Vagyis nem tiltják, de nincs hozzá külön felkínált eszköz.. vagy ez a feltételezésem eleve hülyeség..
És mi van ha ennél bonyolultabb dolgokat akarok csinálni? Akár több mezős űrlapokat átadni, akár több másik weblapnak (előre programozott sorrendben a megfelelő helyekre, ami működik, amíg azokat a weblapokat meg nem változtatják.)
Serveroldalon egyszerűbbnek képzelem, valahogy úgy, hogy a server lehívja a lapot egy "virtuális böngészőn" (megint gyökérnek érzem magam :)), majd lehívja megint a kitöltött űrlappal, és csak ezt jeleníti meg ténylegesen a felhasználónak. De ez nyílván sebesség meg minden egyéb szempontból is bődületes baromság..
De akkor hogy?
Mennyire lehet utasítani a böngészőt, hogy a "kliens nevében" cselekedjen?
Vagy ehhez már böngészőt kell programozni?
Mert a chrome megcsinálja, elég sok weblappal..
*a végére eszembe jutott, hogy amennyit én tudok az alapján még lehet, hogy erre is való a javascript, de lehet, hogy pont nem*
Előre is köszi, Dávid