ugrás a tartalomhoz

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

június 21

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!
 

június 20

Bejelentkezés és A felhasználó adatainak kiírása

mrjoel · 2007. Jún. 20. (Sze), 20.47
Üdv!
Lenne egy olyan problémám, hogy van egy bejelentkező oldalam ahol a felhasználó be tud jelentkezni ami így néz ki:
<?php
include "config.php";

mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

/**************************************************
* Ha még nem lépett be
***************************************************/

if ($_SESSION['belepett']!== true)
{
if (isset($_POST['login']))
{ //Ha postolt adatokat
$nick = addslashes($_POST['nev']);
$pass = ($_POST['jelszo']);

$sql = "SELECT * FROM users ";
$sql.= "WHERE (nick='".$nick."'";
$sql.= " AND jelszo='".$pass."')";

$query = mysql_query($sql);

if (mysql_num_rows($query) !== 0)
{ //Helyes nick+pass
$_SESSION['nick'] = addslashes($_POST['nev']);
$_SESSION['belepett'] = true;

header("Location: ".$_SERVER['PHP_SELF']);
}

else
{//Hibás nick+pass
print "Hibás Azonosító vagy jelszó!<br>Amennyiben elfelejtette jelszavát, vegye fel velünk a kapcsolatot.";
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table>
<tr>
<td>Azonosító:</td>
<td><input type="text" name="nev" /></td>
<td>Jelszó:</td>
<td><input type="password" name="jelszo" /></td>
<td><input type="submit" name="login" value="Belépés" /></td></tr>
<tr><td colspan="5" align="center"><a href="register.php">Regisztráció</a></td>
</tr>
</table>
</form>
<?php
}//Nem lépett be

/********************************
* Ha már belépett
*******************************/
else
{//Be van lépve

print "Bejelentkezve: ".$_SESSION['nick'];
Print "<br><br><font size=2><strong><a href=\"adat.php\">Adatok megtekintése</strong></font></a>";
print " <br><br><a href=\"logout.php\">Kijelentkezés</a><br />";

}
?>

Ehhez van egy users tábla amiben van id, nick, jelszo, email. Ez tökéletesen működik is, be tud lépni a felhasználó. Ha belépett akkor megjelenik hogy ki lépett be alatta egy link (Adatok megtekintése) és a kijelentkezés. Szóval azt szeretném elérni ha az adatok megtekintésére megy akkor kilistázódjon a felhasználó adatai az adat.php oldalra. Az adat.php scriptje így néz ki:
<?php
session_start();

if($_SESSION['belepett'] == true)
{

//Ide jöne a bejelentkezett felhasználó adatai amihez egyenlőre ennyi a scriptem/
$ossz = mysql_connect("...........extra.sql", "........", "karen");

mysql_select_db("..........",$ossz);

$sql = "SELECT * FROM proba";

$eredmeny = mysql_query($sql, $ossz) or die(mysql_error());

while ($ujTomb = mysql_fetch_array($eredmeny)) {

$adat = $ujTomb['adat'];

echo "<table border=1><tr><td>Adat: $adat</td></tr></table>

Eclipse CVS eltunt

Emul · 2007. Jún. 20. (Sze), 16.18
Haliho.
Mar masodjara jon elo ez a problema ebben a honapban es baromira idegesito.
Van egy project amit Checktoutolok CVS Repobol, aztan fejlesztegetem, neha szinkronizalok, updatelek, commitolok. Szoval hasznalom. Aztan egyszercsak az eclipse "elfelejti" hogy az a project CVS-bol lett kiszedve, es nem ajanl fel a team menuben semmit csak ket dolgot(apply patch, share project), tehat se sync, se update, se commit, se semmi aminek a CVS-hez koze van.
Ha atvaltok Team Synchronizing perspektivaba es aszondom hogy akkor szinkronizalj egyet, akkor kiirja egy par mp utan hogy nem valtozott semmi a base-hez kepest(holott de).
A CVS direk-hez nem nyultam, megvannak. Nem piszkaltam bele egy Eclipse vagy CVS fileba sem.

Legeloszor ugy oldottam meg hogy backupoltam a projectet majd kicseckoutoltam ujra, majd felulirtam a backuppal, es utana mukodott minden szepen.De akkor is baromira bosszanto, ez es kivancsi lennek mitol lehet, valamint hogy hogyan tudnam megoldani.

Elore is koszi a helpet.
 

Hova erdemes rakni az adsense reklamokat?

zoliky · 2007. Jún. 20. (Sze), 15.35
Hello,
Van egy drupal alapu oldalam, a felepitese nagyon egyszeru :

- Header (felso resz, logo)
- Header Adsense (felso adsense reklam)
- Bal sav
- Tartalom
- Footer

Az oldal kozepre van igazitva, es hossza 760px. Sajnos meg nincs online csak egy kepet tudok mutatni:http://img467.imageshack.us/img467/3337/mysitepe8.jpg

Szeretnek ket Adsense reklamot elohivni, az elso mar fent lathato es szerintem jol nez ki. A masodik reklamot fogalmam sincs hova tudom rakni. Szeretnek par tanacsot kerni, ti hova raknatok a masodik reklamot?

Remelem nem fogtok szidni, tudom kicsit hulye tema de csak velemenyekre vagyok kivancsi :)

Koszonom!
 

Biztonság a spamek ellen vendégkönyv esetén.

millye · 2007. Jún. 20. (Sze), 11.52
Üdv mindenkinek.

Több weboldalon is láttam, hogy az űrlap kitöltésénél (mondjuk egy vendégkönyv esetén) egy képről leolvasott kódot kell megadni egy beviteli mezőben. Az üzenet csak akkor van regisztrálva a vendégkönyvbe, ha a beírt kód helyes.
Hogyan működik egy ilyen rendszer? Az én vendégkönyvem csak egy szöveges file-t használ az üzenetek tárolására és nem rendelkezik ilyen védelemmel, ezért aztán gyakran kell "takarítsak benne".
Szóval... Hogyan működik? Van egy pár kép számokkal meg betűkkel amelyeket haotikusan megjelenít (minden bejgyzéskor egyet). A beírt kódot mivel kell összehasonlítani? Hol lehet erről többet megtudni?

Köszönettel,
További kellemes napot.

Millye
 

Internet explorer 6 - hogyan lehetne szimulálni??

jorgecosta · 2007. Jún. 20. (Sze), 02.19
sziasztok,

az a problémám, hogy csináltam egy weboldalt és igenjó lett, nagyon örültem is. teszteltem ie7tel, firefoksszal, operával, konkerorral. na mondom akkor megmutatom a "megrendelőnek", erre nem ie6ja volt, ahol minden szépen szét volt esve?? na most arra gondoltam, hogy csinálok egy másik, ie6ra szabott szkint, de ötletem sincs, hogy kéne belőni ezt a csodálatos böngészőt, mivel ha van 7es, a winxp nem enged 6ost feltenni... másképp nincs ötletem, hogy a szabványtól való elrugaszkodásokat hogyan tudnám szimulálni... szóval ötlet? hogy tehetek fel ie6ot?

kösz a válaszokat előre is
 

Valami bajom van az auto_incrementtel

minarikede · 2007. Jún. 20. (Sze), 00.20
Sziasztok!

Tartok tőle, hogy valami nagyon egyszerű dolgot nem veszek észre. Nem rég keztem el sql-ezni, és már bajba is kerültem. Készítettem egy táblát a következő paranccsal phpMyAdminban:

CREATE TABLE `valami` (
`azon` INT( 9 ) NOT NULL AUTO_INCREMENT ,
`kat_nev` VARCHAR( 15 ) NOT NULL ,
`kat_leiras` TEXT NOT NULL ,
PRIMARY KEY ( `azon` )
) TYPE = innodb;

most pedig szeretnék egy új sort beszúrni a következő módon:

INSERT INTO `valami` (`kat_nev` , `kat_leiras` )
VALUES ('szoveg', 'szoveg') ;


De nem akar sikerülni, csak úgy ha az 'azon' mezőnek is adok egy értéket, holott én azt várnám, hogy automatikusan növekedjen. Vagy rosszul gondolom?

mit nem veszek észre?

A segítséget előre is köszönöm!
Cs.
 

június 19

Tábla felsorolásból egy tábla sor listázása

mrjoel · 2007. Jún. 19. (K), 19.50
Üdv!
Egy olyan kérdésem lenne, hogy ha van egy sql táblám és minden elemét kilistázom és kiíratom egy oldalra, akkor a listánál azt miképp tudom megoldani hogy minden sornál lenne egy bövebb gomb amivel kiiratja nekem csak azt az egy sort az oldalra. Tehát a nagy listából amit először kiíratok (ez megy) egyenként meg tudom nézni a sorokat bövebben. Pl. van egy lista amiben név, cím, tel, és egy bövebb gomb szerpel és ha a bövebb gombra nyomok csak azt az egy sort jeleníti meg a névvel, címmel, tellel meg egy leírással(amit a nagy listánál direkt nem iratok ki). Előre is köszi a segítségeteket!