ugrás a tartalomhoz

Archívum - 2008 - Fórum téma

augusztus 16

Php Templatező készítése

inf · 2008. Aug. 16. (Szo), 00.12
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:

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;
	}
	
}
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.

augusztus 16

Hosszú szó több sorba törése

Garono · 2008. Aug. 15. (P), 22.40
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. :(
 

fájl védelem

karpati · 2008. Aug. 15. (P), 16.42
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?
 

JS keretrendszerek, gyakor selectorok banchmark

fchris82 · 2008. Aug. 15. (P), 13.14
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:

Számlarendszer

ErikAlpar · 2008. Aug. 15. (P), 12.53
Ü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:

<? 
    function osszead ( $elsoszam, $masodikszam )
             {
             $eredmeny = $elsoszam + $masodikszam )
             return $eredmeny
             }
print oszead(5,8)  //kiirja hogy 13
?> 
Levonás(itt akadtam el):

<?
$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 
?>
Remélem tudtok segíteni!
Jó legalább az összeadás?
Üdv
ErikAlpar
 

Azonos nevű paraméterek sorrendje garantált?

sirkalmi · 2008. Aug. 15. (P), 10.13
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
 

augusztus 14

PHP login rendszer

Hacker1990 · 2008. Aug. 14. (Cs), 20.37
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
 

floatolt div sor bal margót kap ie alatt

Tomee · 2008. Aug. 14. (Cs), 19.22
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..

<!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>
A válaszkat előre is köszönöm!
üdv,
Tomee
 

sql oszlopok összehasonlítása

dbedo · 2008. Aug. 14. (Cs), 15.21
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
 

JavaScript keretrendszerek összehasonlítása

fchris82 · 2008. Aug. 14. (Cs), 14.39
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)

MooTools 1.2JQuery 1.2.6Prototype 1.6.0.2YUI 2.5.2 Selector betaDojo 1.1.1
Méret:95 kB97,8 kb124 kb--
IE663844329201805750
IE766845528581645754
FF3185189307454135
Opera 9.26311255434938136
IE6 - 222731417817372991974
FF2 - 2376363478919268
Összesítés:4 4513 12215 17013 0604 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.