Archívum - 2008 - Fórum téma
augusztus 16
Php Templatező készítése
Sziasztok!
Egy egyszerű templatezőt szeretnék csinálni az oldalamhoz phpban, nem szeretnék semmi extrát, mint SMarty, vagy ilyenek, csak nagyon alap dolgokat:
foreach, if-else, esetleg switch, de az már extra..
Az egész úgy indult, hogy eredetileg mysqlhez írtam egy sql statement templatezőt, aztán kicsit belegondoltam, hogy jobban járok, ha csinálok egy sima templatezőt, és abból extendelem ki a db_statement objectemet. Ezért bindParams, compile, meg ilyeneket a függvények nevei. Ami most megvan az így néz ki:Ezt szeretném kicsit továbbfejleszteni, hogy egy foreach kezelést is el tudjon végezni.
A problémám abban van, hogy ez a mostani rész a compile-ban a replace_template metódust hívja meg minden egyes elemrem, és ez nekem azért hasznos, mert így nem kell kiescapelnem a külső forrásból jövő adatokból azokat a részeket, amik ugyanolyanok, mint ami a változókat kéri le. Például ha valaki {$pista} változót egy olyan stringre állítja, hogy "{$zsuzsi}", akkor azt nyilván escapelni kell abban az esetben, ha a feldolgozó kód többször is áthaladhat afölött a rész fölött.
Egy egyszerű templatezőt szeretnék csinálni az oldalamhoz phpban, nem szeretnék semmi extrát, mint SMarty, vagy ilyenek, csak nagyon alap dolgokat:
foreach, if-else, esetleg switch, de az már extra..
Az egész úgy indult, hogy eredetileg mysqlhez írtam egy sql statement templatezőt, aztán kicsit belegondoltam, hogy jobban járok, ha csinálok egy sima templatezőt, és abból extendelem ki a db_statement objectemet. Ezért bindParams, compile, meg ilyeneket a függvények nevei. Ami most megvan az így néz ki:
class Template
{
protected $pattern="{\$([\w_]+)}";
public function __construct($template,$pattern=null)
{
$this->template=$template;
$this->params=array();
$this->cache=null;
if ($pattern)
{
$this->pattern=$pattern;
}
}
public function bindParam($key,$value)
{
$this->params[$key]=$value;
$this->cache=null;
return $this;
}
public function bindParams($source)
{
foreach($source as $key => $value)
{
$this->bindParam($key,$value);
}
return $this;
}
protected function replace_template($key)
{
return $this->params[$key];
}
public function compile()
{
if (!is_string($this->cache))
{
$this->cache=preg_replace("/".$this->pattern."/e",'$this->replace_template(\1)',$this->template);
}
return $this->cache;
}
}
A problémám abban van, hogy ez a mostani rész a compile-ban a replace_template metódust hívja meg minden egyes elemrem, és ez nekem azért hasznos, mert így nem kell kiescapelnem a külső forrásból jövő adatokból azokat a részeket, amik ugyanolyanok, mint ami a változókat kéri le. Például ha valaki {$pista} változót egy olyan stringre állítja, hogy "{$zsuzsi}", akkor azt nyilván escapelni kell abban az esetben, ha a feldolgozó kód többször is áthaladhat afölött a rész fölött.
augusztus 16
Hosszú szó több sorba törése
Sziasztok! Régóta nem írtam már ide, de sajnos akadt egy problémám.
Van egy DIV-em, ami fix szélességű (mondjuk 200px) (illetve még van egy display:block tulajdonsága). Azonban a tartalmát dinamikusan kapja egy PHP rendszertől, és előfordul, hogy egy szó hosszabb, mint ami kiférne 200 pixelen, így túllóg az adott szó, és szétbarmolja az oldalt. Nincs valami CSS megoldás a dologra, hogy a hosszú szavakat több sorba írja ki? Kerestem, de nem találtam semmit. :(
■ Van egy DIV-em, ami fix szélességű (mondjuk 200px) (illetve még van egy display:block tulajdonsága). Azonban a tartalmát dinamikusan kapja egy PHP rendszertől, és előfordul, hogy egy szó hosszabb, mint ami kiférne 200 pixelen, így túllóg az adott szó, és szétbarmolja az oldalt. Nincs valami CSS megoldás a dologra, hogy a hosszú szavakat több sorba írja ki? Kerestem, de nem találtam semmit. :(
fájl védelem
Következő lenne a problémám:
Van egy rendszerem, amely egy session bejelentkezést használ, a rendszerben vannak mindenféle mime formátumú és nagyságú állományok. Nem szeretném hogy ezeknek az állományoknak az elérési útját közvetlenül a böngészőbe begépelve elérjék őket. Első lépésben arra gondoltam, hogy ezeket az állományokat a webroot alá teszem. De ekkor a belépet felhasználók is a fájlokat csak követve php-n keresztül érhetnék el. A másik megoldás az lenne, hogy egy htacces-szel védett mappában lennének az állományok de akkor valahogy meg kell oldanom, hogy az authentikációt a php megcsinálja. Valaki nem tud erre a megoldásra egy jó módszert?
■ Van egy rendszerem, amely egy session bejelentkezést használ, a rendszerben vannak mindenféle mime formátumú és nagyságú állományok. Nem szeretném hogy ezeknek az állományoknak az elérési útját közvetlenül a böngészőbe begépelve elérjék őket. Első lépésben arra gondoltam, hogy ezeket az állományokat a webroot alá teszem. De ekkor a belépet felhasználók is a fájlokat csak követve php-n keresztül érhetnék el. A másik megoldás az lenne, hogy egy htacces-szel védett mappában lennének az állományok de akkor valahogy meg kell oldanom, hogy az authentikációt a php megcsinálja. Valaki nem tud erre a megoldásra egy jó módszert?
JS keretrendszerek, gyakor selectorok banchmark
Előzmény: http://weblabor.hu/forumok/temak/22134
Tesztoldal: http://mootools.net/slickspeed/
Vbence felvetésére, csinálok egy új témát, amiben a gyakori selectorok szerint szűrűnk. Én a következő sorokat javaslom összeadni:
Tesztoldal: http://mootools.net/slickspeed/
Vbence felvetésére, csinálok egy új témát, amiben a gyakori selectorok szerint szűrűnk. Én a következő sorokat javaslom összeadni:
Számlarendszer
Üdv Mindenkinek.
Mivel kezdő vagyok nem értek nagyon PHP-hez.
A probléma a következő:
Adott egy oldal ahol 1 felhasználónak pontjai van x dologér(pl. hozzászólás)
Minden hozzászólásért x pontot kap de ha valamit igénybe vesz (pl..képfeltöltés) a számlából levon x pontot ha van elég pont de ha nincs nem engedi végrehajtani és kiírja hogy:"Nem lehetséges nincs elég pontod."
Ha pedig van eleg pont akkor Azt hogy:"Sikeresen beküldted.A pont jóváírásra került!"
Ezt az oldalamhoz irom!
Idáig eljutottam:
Összeadás:Levonás(itt akadtam el):Remélem tudtok segíteni!
Jó legalább az összeadás?
Üdv
ErikAlpar
■ Mivel kezdő vagyok nem értek nagyon PHP-hez.
A probléma a következő:
Adott egy oldal ahol 1 felhasználónak pontjai van x dologér(pl. hozzászólás)
Minden hozzászólásért x pontot kap de ha valamit igénybe vesz (pl..képfeltöltés) a számlából levon x pontot ha van elég pont de ha nincs nem engedi végrehajtani és kiírja hogy:"Nem lehetséges nincs elég pontod."
Ha pedig van eleg pont akkor Azt hogy:"Sikeresen beküldted.A pont jóváírásra került!"
Ezt az oldalamhoz irom!
Idáig eljutottam:
Összeadás:
<?
function osszead ( $elsoszam, $masodikszam )
{
$eredmeny = $elsoszam + $masodikszam )
return $eredmeny
}
print oszead(5,8) //kiirja hogy 13
?>
<?
$szamla = 150
$valami = 10
function kivon ( $elsoszam, $masodikszam )
{
$eredmeny = $elsoszam - $masodikszam )
return $eredmeny
}
do
{
print "Sikeresen beküldted.A pont jóváírásra került!<br>\n" //ezt írja ki ha van elég pont
$szamla++
} while ( $szamla > && < $valami
print kivon(5,8) //kiírja hogy
?>
Jó legalább az összeadás?
Üdv
ErikAlpar
Azonos nevű paraméterek sorrendje garantált?
Szervusztok!
Az volna a kérdésem, hogy ha azonos nevű paramétereket post-olok el akkor garantált-e, hogy ugyanabban a sorrendben olvasom vissza mint ahogy el lett küldve? Email címek létrehozásához akarok írni egy kis programot ahol be kell kérni a létrehozandó címet, nevet, jelszót. Ezt a problémát úgy oldottam meg, hogy számokkal megkülönböztettem a paraméterek neveit, azonban tegnap a fejembe ötlött, hogy ha garantált a sorrend akkor egyszerűsíteni lehetne a dolgot, hiszen a request.getParameterValues("name") (Java-ról van szó) vissza adná a neveket egy tömbben, ugyanígy a többi paraméter esetében. Tehát a tömbökben lévő adatok sorrendje meghatározná az adatok összetartozását.
Válaszokat előre köszi!
sirkalmi
■ Az volna a kérdésem, hogy ha azonos nevű paramétereket post-olok el akkor garantált-e, hogy ugyanabban a sorrendben olvasom vissza mint ahogy el lett küldve? Email címek létrehozásához akarok írni egy kis programot ahol be kell kérni a létrehozandó címet, nevet, jelszót. Ezt a problémát úgy oldottam meg, hogy számokkal megkülönböztettem a paraméterek neveit, azonban tegnap a fejembe ötlött, hogy ha garantált a sorrend akkor egyszerűsíteni lehetne a dolgot, hiszen a request.getParameterValues("name") (Java-ról van szó) vissza adná a neveket egy tömbben, ugyanígy a többi paraméter esetében. Tehát a tömbökben lévő adatok sorrendje meghatározná az adatok összetartozását.
Válaszokat előre köszi!
sirkalmi
augusztus 14
PHP login rendszer
Szép napot kívánok mindenkinek.Egy login rendszer fejlesztésén töröm a fejem mar napok óta.Nem is volna nehéz,ha session-t használnák.A kérdés az.hogyan oldható meg a login session nélkül biztonságosan.
Megoldható ez valahogy?Tudna nekem segiteni valaki?Köszönöm mindenki segitségét
■ Megoldható ez valahogy?Tudna nekem segiteni valaki?Köszönöm mindenki segitségét
floatolt div sor bal margót kap ie alatt
Szervusztok!
Nem értem, hogy a sor miért kap ie alatt margót. Firefox alatt tökéletesen működik. Na de lássuk a kódot..
A válaszkat előre is köszönöm!
üdv,
Tomee
■ Nem értem, hogy a sor miért kap ie alatt margót. Firefox alatt tökéletesen működik. Na de lássuk a kódot..
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.float {float:left; width: 20px; border: solid 1px black; margin-left: 10px;}
.clear {clear:both;}
.main {border: solid 1px black;}
-->
</style>
</head>
<body>
<div class="main">
<div class="float">1</div>
<div class="float">2</div>
<div class="float">3</div>
<div class="clear"></div>
<div class="float">4</div>
<div class="float">5</div>
<div class="float">6</div>
<div class="clear"></div
</div>
</body>
</html>
üdv,
Tomee
sql oszlopok összehasonlítása
Sziasztok!
Adott egy tábla, két oszloppal (A, B). Adott A értékhez egyforma B értéknek kell tartozni, tehát ha 3 sorban is az A oszlopban kutya szerepel, akkor mindháromban a B oszlopban csontnak kell szerepelni (vagy bármi másnak, de azonosnak). Azt szeretném megtudni, hogy ez hol nem teljesül, azaz melyek azok az A értékek, amikhez nem csak egyforma B tartozik.
Erre vmi ötlet?
Köszönöm előre is
Dani
■ Adott egy tábla, két oszloppal (A, B). Adott A értékhez egyforma B értéknek kell tartozni, tehát ha 3 sorban is az A oszlopban kutya szerepel, akkor mindháromban a B oszlopban csontnak kell szerepelni (vagy bármi másnak, de azonosnak). Azt szeretném megtudni, hogy ez hol nem teljesül, azaz melyek azok az A értékek, amikhez nem csak egyforma B tartozik.
Erre vmi ötlet?
Köszönöm előre is
Dani
JavaScript keretrendszerek összehasonlítása
Találtam egy ilyet: http://mootools.net/slickspeed/
Nekem most egy gyors keretrendszerre van szükségem, ami viszonylag kicsi is, így az alábbi méréseket hoztam össze két gépen (Windows XP, az egyik egy 2 magos Athlon laptop 3 GB memóriával, a másik egy 1 magos Athlon XP 1 GB memóriával)
Az utolsó kettő mérete eléggé eltérhet, meg azok elég összetettek, így oda nem írtam semmit, úgyse felelne most meg az igényeknek. Engem nagyon érdekelne, hogy más operációs rendszereken és esetleg más böngészőknél milyen eredmények jönnek ki. Így megköszönném, ha vki lefuttatná más környezetekben és itt megosztaná, hogy milyen értékek jöttek ki neki. Talán mindannyiunk hasznára válhat. Egyelőre a JQuery a favorit.
■ Nekem most egy gyors keretrendszerre van szükségem, ami viszonylag kicsi is, így az alábbi méréseket hoztam össze két gépen (Windows XP, az egyik egy 2 magos Athlon laptop 3 GB memóriával, a másik egy 1 magos Athlon XP 1 GB memóriával)
MooTools 1.2 | JQuery 1.2.6 | Prototype 1.6.0.2 | YUI 2.5.2 Selector beta | Dojo 1.1.1 | |
---|---|---|---|---|---|
Méret: | 95 kB | 97,8 kb | 124 kb | - | - |
IE6 | 638 | 443 | 2920 | 1805 | 750 |
IE7 | 668 | 455 | 2858 | 1645 | 754 |
FF3 | 185 | 189 | 307 | 454 | 135 |
Opera 9.26 | 311 | 255 | 434 | 938 | 136 |
IE6 - 2 | 2273 | 1417 | 8173 | 7299 | 1974 |
FF2 - 2 | 376 | 363 | 478 | 919 | 268 |
Összesítés: | 4 451 | 3 122 | 15 170 | 13 060 | 4 017 |
Az utolsó kettő mérete eléggé eltérhet, meg azok elég összetettek, így oda nem írtam semmit, úgyse felelne most meg az igényeknek. Engem nagyon érdekelne, hogy más operációs rendszereken és esetleg más böngészőknél milyen eredmények jönnek ki. Így megköszönném, ha vki lefuttatná más környezetekben és itt megosztaná, hogy milyen értékek jöttek ki neki. Talán mindannyiunk hasznára válhat. Egyelőre a JQuery a favorit.