ugrás a tartalomhoz

Archívum - Jún 21, 2007 - Fórum téma

nem talalom a hivatkozast

eaposztrof · 2007. Jún. 21. (Cs), 23.27
fura helyzet all fenn, megprobalom erthetoen vazolni:
adott egy index.php, amelybe includeolva van egy cat.php amely megnyit egy mysql adatbazist, kilistaz sorokat, majd kiirja azokat. eddig minden helyen, DE! az alabbi idezetben figyelembe ajanlom a "href=/partners/$name.html". a kimenet: a sql tablabol kapott adatok alapjan osszeall, de a szerveren ilyen oldalak nem leteznek. de a bongeszo megjeleniti oket.
while ($row = mysql_fetch_assoc($result)) {
	$result2 = mysql_query("select * from dir_subcat where id_cat=$row[id] order by name");
	echo $row[name];
	unset($basz);
	while ($row2 = mysql_fetch_assoc($result2)) {
		$name="$row[name]/$row2[name]";
		$name = str_replace(" & "," and ",$name);
		$name = strtr($name," ,","-_");
		$basz[] = "<a href='/partners/$name.html'>$row2[name]</a>";
	}
ratalaltam kozben egy masik filera, ami szinten includeolva egy index2.php-ba, amely magyarazatot ad a jelensegre:
	list($cname,$sname) = explode("/",$_SERVER['QUERY_STRING']);
			$cname = strtr($cname,"-_"," ,");
			$cname = str_replace(" and "," & ",$cname);
			$sname = strtr($sname,"-_"," ,");
			$sname = str_replace(" and "," & ",$sname);
	$catrow = @mysql_fetch_assoc(mysql_query("select c.id as cid, s.id as sid from dir_cat c left join dir_subcat s on c.id = s.id_cat where c.name='$cname' and s.name='$sname'")) or exit;
	$result = mysql_query("select * from bex_users where cat_id='$catrow[cid]' and subcat_id='$catrow[sid]' and status='A' order by name");
	while ($row = mysql_fetch_assoc($result)) {
echo $row[url].$row[name].$row[description];
}
eddig minden rendben, csakhogy sem az "index2.php" sem az includeolt "cat2.php" nincs meghivva sehol. mas fileok meg nem tartozzak a projekthez, tovabbi includeok nincsenek, egyszoval ottvan, de nincs meghivva!? innen magas nekem.
raadasul az eredeti projektben mukodik, a klonjaban meg nem. :(
segitseg!
 

PHP PROBLEMA

Amy · 2007. Jún. 21. (Cs), 17.12
SZIASZTOK!

AKADT EGY KIS PROBLEMAM, EGY E- COMMERCE SITE-OT CSINALGATOK (elegge gyerek cipoben jarok a phpvel),AZ UTOLSO OLDALON ELKELLENE KULDENEM EMAILBEN A VASRLONAK HOGY MIT VASAROLT.EBBEN KEREM SEGITSEGETEKET HOGY EGYALTALAN EZT PHP VEL KELLENNE E MEGOLDANOM,ES HOGYAN....

Here is a recap of your order:<br /><br />
Order date: <?php echo $today ?><br />

<table width="400" border="0">
<tr>
<td>
<p >Bill to:<br />

<?php echo $firstname . " " . $lastname ?><br />
<?php echo $add1 ?><br />
<?php if ($add2) echo $add2 . "<br />"?>
<?php echo $city . "," . $state . " " . $zip . " " . $country ?></p>
</td>
<td>
<p >Ship to:<br />
<?php echo $shipfirst . " " . $shiplast ?><br />
<?php echo $shipadd1 ?><br />
<?php if ($shipadd2) echo $shipadd2 . "<br />"?>
<?php echo $shipcity . "," . $shipstate . " " . $shipzip . " " . $shipcountry ?></p>
</td>
</tr>
</table>
<hr />
<table cellpadding="5">
<tr>
<?php
$query= "SELECT * from orderdet WHERE ordernum = '$orderid'";
$results = mysql_query($query)
or die (mysql_query());
while ($row= mysql_fetch_array($results)) {
extract ($row);
$prod = "SELECT * FROM products where prodnum = '$prodnum'";

$prod2 = mysql_query($prod);
$prod3 = mysql_fetch_array($prod2);
extract($prod3);
echo '<td >';
echo $qty;
echo '</td>';
echo '<td>';
echo $name;
echo '</td>';
echo '<td >';
echo $price;
echo '</td>';
echo '<td >';
//get...
$extprice = number_format($price * $qty, 2);
// echo $extprice;
echo '</td>';
echo '</tr>';
}
session_destroy();
?>
</tr>
<tr>
<td colspan="3">

Template engine

Max Logan · 2007. Jún. 21. (Cs), 14.23
Volt egy topic ahol szóba kerültek a tempalte engine-ek. Ott írtam, hogy én egy sima egyfüggvényes engine-t használok. A céljaimnak megfelel.

A topicban PP felvetette, hogy a megoldásommal, hogyan oldom meg a működési logika és a megjelenítés szétválasztását.

A kérdésen agyalva rájöttem, hogy valójában nálam nincsen külön megjelenítési réteg, csak egy .tpl file, amiben a megadott helyen kicserélek értékeket. Tehát nálam a template csak HTML és CSS kódot tartalmaz.

A Smarty-s példák alapján egyértelművé vált számomra, hogy ott a template-ben van "programkód", ami a template engine saját syntaxisával van leírva. Ez azt jelenti, hogy adott esetben egy menü kiírásához szükséges adatokat megkapja a működési logikától a tpl engine és majd ő megoldja a megjelenítést.

Ezt végiggondolva úgy gondolom, hogy bár a Smarty ilyen működés mellett valóban megjelenítési réteget képez, felesleges művelet zajlik.

Egy menü kiírásához ugye a PHP összeszedi az infókat, majd átadja pl. egy tömb formájában. Ez eddig egy ciklus. A smarty fogja az adatokat és lefuttat egy másik ciklust, ami valójában létrehozza a megjelenítendő kódot.

Sztem ez itt erőforráspazarlás, mert két ciklus oldja meg azt amit eggyel PHP szinten meg lehet oldani.

Ha számításba vesszük azt, hogy nem smarty-t használunk, hanem a .tpl-be PHP kódot teszünk, akkor is ott vagyunk, hogy két ciklus fut le (és a tpl máris kódot tartalmaz).

Tehát megítélésem szerint a template engine-ek ilyen működése erőforrás pazarló. Most azt nem nézem, hogy pl. a smarty képes cache-elni.

Az én egyfüggvényes template megoldásomban a lényeg a PHP és HTML kód szétválasztása volt. Tehát, hogy ne ötmillió echo szerepeljen a kódban, és ha már egyszer külön van a tényleges kódtól, akkor egyszerűsödik az új kinézet kialakítása (kinézetváltás). (Egy menü összeállítása nálam egy függvénnyel van megoldva, ami egy .tpl file-t tölt fel adatokkal, majd ezzel a kész template részlettel tér vissza (kész html kód).

header probléma

kiss_david1 · 2007. Jún. 21. (Cs), 14.08
Üdv!

Honlapomon a bejelentkezésnél, amikor minden adat stimmel akkor egy header("Location: ..."); paranccsal irányítanám át a felhasználót egy másik oldalra, de ezt a hibaüzenetet adja:

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\CLASS\html\index.php:5) in C:\wamp\www\CLASS\html\index.php on line 236

Mi lehet a probléma? Orvosolható valahogyan?

Előre is köszi!