Archívum - Feb 2008 - Fórum téma
február 18
Left join problema
Van harom mySQL tablam (category, products es prod2cat):
Category:
Products:
Prod2Cat:
Milyen mySQL lekeresel tudnam kilistazni peldaul az oszes aru nevet (products) amely a 2-es kategoriaban van ?
Koszonom!
■ Category:
id | name
==================
1 | computers
2 | mp3 players
3 | camera
==================
1 | computers
2 | mp3 players
3 | camera
Products:
id | name |
=================
1 | Ipod
2 | Nikon camera
=================
1 | Ipod
2 | Nikon camera
Prod2Cat:
prodid | catid
===============
1 | 2
2 | 3
===============
1 | 2
2 | 3
Milyen mySQL lekeresel tudnam kilistazni peldaul az oszes aru nevet (products) amely a 2-es kategoriaban van ?
Koszonom!
Nevezéktan, többnyelvűség
sziasztok,
egy többnyelvű webes rendszert fejlesztek,
a gombok, formok, stb. amik nyelv függő részek nyelvi file-ból jönnek.
Azt szeretném megkérdezni tud-e valaki leírást, vagy valami specifikációt hogy
hogyan érdemes készíteni nevezéktant több nyelvű rendszerhez.
pl.:
login_btn = 'Belépés';
Előre is köszönöm.
■ egy többnyelvű webes rendszert fejlesztek,
a gombok, formok, stb. amik nyelv függő részek nyelvi file-ból jönnek.
Azt szeretném megkérdezni tud-e valaki leírást, vagy valami specifikációt hogy
hogyan érdemes készíteni nevezéktant több nyelvű rendszerhez.
pl.:
login_btn = 'Belépés';
Előre is köszönöm.
Form adatainak küldése PHP-vel, oldalfrissítés nélkül
Egy relatív összetett problémával találtam magam szemben:
Egy apróhirdetés-beküldő és -kilistázó modult kell összehozni, oly módon, hogy JS/CSS megoldással tabokat hoztam létre és egy ChangeTab() nevű függvénnyel váltom azokat, természetesen gond nélkül működik (alapból a kilistázás jelenik meg).
Ezen felül a beküldés tabon értelemszerűen van egy form, ami submit gombra elvileg egy php-nek kéne, hogy elküldje az adatokat, majd kiírná egy div-ben (vagy akár a form helyett - részletkérdés), hogy sikerült az elküldés. Erre ajaxos (prototype.js) megoldást találtam, kipróbáltam egy üres oldalon, működik.
Viszont amikor már implementálom a tabos keretbe, gombnyomás után újra betöltődik az egész oldal, azzal, hogy az eredeti index.php?lg=hu cím átalakul index.php?# címre (action="#"), és nem ír ki semmit az adott div-ben.
Ő a kód:
[code]
<div id="TabLista" style="display:block;">
<div class="apro_empty"><a href="javascript:"> </a></div>
<div class="apro_on"><a href="javascript:ChangeTab('Lista')">apróhirdetések</a></div>
<div class="apro_off"><a href="javascript:ChangeTab('Bekuld')">beküldés</a></div>
</div>
<div id="TabBekuld" style="display:none;">
<div class="apro_empty"><a href="javascript:"> </a></div>
<div class="apro_off"><a href="javascript:ChangeTab('Lista')">apróhirdetések</a></div>
<div class="apro_on"><a href="javascript:ChangeTab('Bekuld')">beküldés</a></div>
</div>
<div class="apro_main" id="ContentLista">
bla bla
</div>
<div class="apro_main_none" id="ContentBekuld">
<form action="#" id="formBekuld">
<center>Minden mező kitöltése kötelező!</center>
<table>
<tr><td class="apro_td">Név:</td><td><input type="text" id="apro_nev" size="11" /></td></tr>
<tr><td class="apro_td">E-mail:</td><td><input type="text" id="apro_mail" size="11" /></td></tr>
<tr><td class="apro_td">Tel.:</td><td><input type="text" id="apro_tel" size="11" /></td></tr>
Egy apróhirdetés-beküldő és -kilistázó modult kell összehozni, oly módon, hogy JS/CSS megoldással tabokat hoztam létre és egy ChangeTab() nevű függvénnyel váltom azokat, természetesen gond nélkül működik (alapból a kilistázás jelenik meg).
Ezen felül a beküldés tabon értelemszerűen van egy form, ami submit gombra elvileg egy php-nek kéne, hogy elküldje az adatokat, majd kiírná egy div-ben (vagy akár a form helyett - részletkérdés), hogy sikerült az elküldés. Erre ajaxos (prototype.js) megoldást találtam, kipróbáltam egy üres oldalon, működik.
Viszont amikor már implementálom a tabos keretbe, gombnyomás után újra betöltődik az egész oldal, azzal, hogy az eredeti index.php?lg=hu cím átalakul index.php?# címre (action="#"), és nem ír ki semmit az adott div-ben.
Ő a kód:
[code]
<div id="TabLista" style="display:block;">
<div class="apro_empty"><a href="javascript:"> </a></div>
<div class="apro_on"><a href="javascript:ChangeTab('Lista')">apróhirdetések</a></div>
<div class="apro_off"><a href="javascript:ChangeTab('Bekuld')">beküldés</a></div>
</div>
<div id="TabBekuld" style="display:none;">
<div class="apro_empty"><a href="javascript:"> </a></div>
<div class="apro_off"><a href="javascript:ChangeTab('Lista')">apróhirdetések</a></div>
<div class="apro_on"><a href="javascript:ChangeTab('Bekuld')">beküldés</a></div>
</div>
<div class="apro_main" id="ContentLista">
bla bla
</div>
<div class="apro_main_none" id="ContentBekuld">
<form action="#" id="formBekuld">
<center>Minden mező kitöltése kötelező!</center>
<table>
<tr><td class="apro_td">Név:</td><td><input type="text" id="apro_nev" size="11" /></td></tr>
<tr><td class="apro_td">E-mail:</td><td><input type="text" id="apro_mail" size="11" /></td></tr>
<tr><td class="apro_td">Tel.:</td><td><input type="text" id="apro_tel" size="11" /></td></tr>
Képfeltöltés, valódi mime lekérdezése
Egy képfeltöltős működésben user hibajelzés során futottam bele a problémába.
Az alábbi ellenőrzéseket végzem:
- a $_FILES tömbből megnézem a fájl kiterjeszést, csak az elvárt (.jpg) lehet,
- a $_FILES tömbből nézem a böngésző által küldött mime típust csak az elvárt lehet,
- összevetem a $_FILES és a temp. képfájlról getimagesize() által kapott mime típusokat, egyezniük kell,
- és a további ellenőrzések...
Képfeltöltési hibát jeleztek, a hibás képfájlból nem jött létre tumbkép sem. A fájlt megnyitva az egy szokvány weboldal forrása volt jpg kiterjesztésű fájlban.
A hiba vizsgálata során magam lementettem az editorban egy html oldalt test.jpg néven, ezt feltöltve a $_FILES tömbben image/jpeg volt és a getimagesize() fv. is ezt adta vissza a temp képre. Így a fenti szűrések ki vannak játszva, azaz biztonsági rés maradt, csak az nem tölt fel hekkelt "képet", ami nem akar.
Kérdésem:
Hogyan lehet egy feltöltött fájlről megbízhatóan megtudni a mime típusát - azaz, hogy valóban képfájlról (jpg, gif, vagy png) van-e szó?
Utánanéztem, itt találtam megoldást de a szükséges PHP függvények (PECL) nincsenek mindig ott a tárhelyeken.
Másik megoldásként az exif_imagetype() fv-t ajánlják, de ez sem érhető mindenhol el.
Egyelőre gyorsjavítást végeztem - a helyére másolás után a fájlt kiolvasva keresek benne html, vagy script kódokra jellemző stringrészeket - de ez suszter megoldás.
Köszönettel várom a tippeket, ill. az ötletadó linkeket.
■ Az alábbi ellenőrzéseket végzem:
- a $_FILES tömbből megnézem a fájl kiterjeszést, csak az elvárt (.jpg) lehet,
- a $_FILES tömbből nézem a böngésző által küldött mime típust csak az elvárt lehet,
- összevetem a $_FILES és a temp. képfájlról getimagesize() által kapott mime típusokat, egyezniük kell,
- és a további ellenőrzések...
Képfeltöltési hibát jeleztek, a hibás képfájlból nem jött létre tumbkép sem. A fájlt megnyitva az egy szokvány weboldal forrása volt jpg kiterjesztésű fájlban.
A hiba vizsgálata során magam lementettem az editorban egy html oldalt test.jpg néven, ezt feltöltve a $_FILES tömbben image/jpeg volt és a getimagesize() fv. is ezt adta vissza a temp képre. Így a fenti szűrések ki vannak játszva, azaz biztonsági rés maradt, csak az nem tölt fel hekkelt "képet", ami nem akar.
Kérdésem:
Hogyan lehet egy feltöltött fájlről megbízhatóan megtudni a mime típusát - azaz, hogy valóban képfájlról (jpg, gif, vagy png) van-e szó?
Utánanéztem, itt találtam megoldást de a szükséges PHP függvények (PECL) nincsenek mindig ott a tárhelyeken.
Másik megoldásként az exif_imagetype() fv-t ajánlják, de ez sem érhető mindenhol el.
Egyelőre gyorsjavítást végeztem - a helyére másolás után a fájlt kiolvasva keresek benne html, vagy script kódokra jellemző stringrészeket - de ez suszter megoldás.
Köszönettel várom a tippeket, ill. az ötletadó linkeket.
február 16
PHP-ben egy eseményre több javascript függvény hívása
Sziasztok! Pl. OnFocus eseményre szeretnék több javascript függvényt felsorolni PHP-ben.
Ezek a függvények további bonyolúltabb PHP kódokat hívnak POS vagy GET.
Szépen le is futnak sorjában Firefox alatt, ha me van kapcsolva a firebug.
Ha ki van kapcsolva, csak az első függvényt hajtja végre. Explorerben is csak az elsőt.
Ha közéjük teszek alert(1) stb... tehát így:
Akkor minden böngészőben végrehajtja az összes függvényt, firebug bekapcsolás nélül is.
Esetleg valami várakoztató függvényt kell az alert() helyére írni?
Mi ennek a normális megoldása, vagy szintaktikája?
■ ....
OnFocus=\"func1('parameterek', 'POS');
func2('parameterek', 'GET');
func3('parameterek', 'GET');\"
....
OnFocus=\"func1('parameterek', 'POS');
func2('parameterek', 'GET');
func3('parameterek', 'GET');\"
....
Ezek a függvények további bonyolúltabb PHP kódokat hívnak POS vagy GET.
Szépen le is futnak sorjában Firefox alatt, ha me van kapcsolva a firebug.
Ha ki van kapcsolva, csak az első függvényt hajtja végre. Explorerben is csak az elsőt.
Ha közéjük teszek alert(1) stb... tehát így:
....
OnFocus=\"func1('parameterek', 'POS');alert(1);
func2('parameterek', 'GET');alert(2);
func3('parameterek', 'GET');\"
....
OnFocus=\"func1('parameterek', 'POS');alert(1);
func2('parameterek', 'GET');alert(2);
func3('parameterek', 'GET');\"
....
Akkor minden böngészőben végrehajtja az összes függvényt, firebug bekapcsolás nélül is.
Esetleg valami várakoztató függvényt kell az alert() helyére írni?
Mi ennek a normális megoldása, vagy szintaktikája?
Mysql karakterkódolás egyeztetés.
Gondolom már kicsit unalmas a téma, de Én sajnos nem jövök rá hol a hiba.
Az oldalak PHP-ban írodtak, mindegyik oldalban szerepel a <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> meta tag, az oldalak nem tartalmaznak BOM-ot.
A PHP verziója Version 5.2.5, default_charset: no value/ no value
A Mysql Verziója: Szerver verzió: 5.1.23
Karakter paraméterek:
character set client utf8
(Globális változó) latin1
character set connection utf8
(Globális változó) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Globális változó) latin1
character set server latin1
character set system utf8
collation connection utf8_general_ci
(Globális változó) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
A webszerver ISS.
Az adat felvitelkor a Mysqlben ÃrvìztűrÅ‘tüköfúrógép szerpel az Árvíztűrő tükörfúrógép helyet. (vagyis nem éppen helyesen ábrázolódik )
Ha a kapcsolat létrehozásakor a PHP-ba beírom, hogy
$k = "SET NAMES UTF8";
mysql_query($k);
Akkor a Mysql-ben is helyesen jelenik meg.
Nemrég telepítettem egy Wordpresst, és nem tüztem be a wp-db.php-ba a fenti két sort, aminek a következménye a ÃrvìztűrÅ‘tüköfúrógép tárolási mód. A honlapon nem venni semmit belőle észre, de a Html Validatort kiakasztja.
Az lenne a kérdésem, hogy a fenti beállítás mellett még miért szűkséges a
$k = "SET NAMES UTF8";
mysql_query($k); beillesztése?
Mit kéne még konfigurálni, hogy a fenti két sort ne keljen alkalmazni.
■ Az oldalak PHP-ban írodtak, mindegyik oldalban szerepel a <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> meta tag, az oldalak nem tartalmaznak BOM-ot.
A PHP verziója Version 5.2.5, default_charset: no value/ no value
A Mysql Verziója: Szerver verzió: 5.1.23
Karakter paraméterek:
character set client utf8
(Globális változó) latin1
character set connection utf8
(Globális változó) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Globális változó) latin1
character set server latin1
character set system utf8
collation connection utf8_general_ci
(Globális változó) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
A webszerver ISS.
Az adat felvitelkor a Mysqlben ÃrvìztűrÅ‘tüköfúrógép szerpel az Árvíztűrő tükörfúrógép helyet. (vagyis nem éppen helyesen ábrázolódik )
Ha a kapcsolat létrehozásakor a PHP-ba beírom, hogy
$k = "SET NAMES UTF8";
mysql_query($k);
Akkor a Mysql-ben is helyesen jelenik meg.
Nemrég telepítettem egy Wordpresst, és nem tüztem be a wp-db.php-ba a fenti két sort, aminek a következménye a ÃrvìztűrÅ‘tüköfúrógép tárolási mód. A honlapon nem venni semmit belőle észre, de a Html Validatort kiakasztja.
Az lenne a kérdésem, hogy a fenti beállítás mellett még miért szűkséges a
$k = "SET NAMES UTF8";
mysql_query($k); beillesztése?
Mit kéne még konfigurálni, hogy a fenti két sort ne keljen alkalmazni.
PHP alkönyvtárakban keresés help
Sziasztok!
írtam egy olyan szkriptet, ami fájlokban rákeres egy beírt kulcsszóra és a találatot kilistázza egymás alá. Működik is szépen a kód, csak az a gond, hogy ez alkönyvtárakban nem keres. Eddig jutottam:hogyan kéne ezt átalakítani úgy, hogy alkönyvtárakban is keressen?
nyílván az utolsó sort, ahol az <a href='dir1/... van, azt is át kéne írni, csak mire?
utánaolvastam ennek több helyen is, nézegettem az m_walk_dir() és a call_user_func() függvényeket, most az is_dir() függvénnyel szenvedek, de nem akar sehogysem összejönni a dolog.
segítségeteket előre is köszönöm!
■ írtam egy olyan szkriptet, ami fájlokban rákeres egy beírt kulcsszóra és a találatot kilistázza egymás alá. Működik is szépen a kód, csak az a gond, hogy ez alkönyvtárakban nem keres. Eddig jutottam:
- <?
- print "
- <form action=".$_SERVER['PHP_SELF']." method='post'>
- <input type='text' name='keresendo' value='' />
- <input type='hidden' name='s' value='1' />
- <input type='submit' value='Keres' />
- </form>";
- if($_POST["s"]=="1"){
- $list=array();
- $path = "dir1";
- $dh = opendir($path);
- while (($file = readdir($dh)) !== false) {
- if($file != "." && $file != "..") {
- $list[]=$file;
- }
- }
- closedir($dh);
- $key=$_POST["keresendo"];
- $found='';
- for ($i=0;$i<count($list);$i++) {
- $file=file($path ."/". $list[$i]);
- for ($j=0;$j<count($file);$j++)
- if (strpos($file[$j],$key)>-1) {
- $found[]=$list[$i];
- break;
- }
- }
- for ($i=0;$i<count($found);$i++)
- print "<a href='dir1/$found[$i]'>$found[$i]</a><br />";
- }
- ?>
nyílván az utolsó sort, ahol az <a href='dir1/... van, azt is át kéne írni, csak mire?
utánaolvastam ennek több helyen is, nézegettem az m_walk_dir() és a call_user_func() függvényeket, most az is_dir() függvénnyel szenvedek, de nem akar sehogysem összejönni a dolog.
segítségeteket előre is köszönöm!
február 15
php5 is_dir() néha téved
Sziasztok!
Nagyjából egy hete akadtam bele abba a problémába, hogyha nem azt a mappát listázom, amiben a szkriptem is van, akkor nem "ismeri fel" az abban lévő mappákat (fájlnak nézi).
Már feltúrtam a fél internetet, de nem találtam semmit amivel előrébb juthattam volna.
A kód:
■ Nagyjából egy hete akadtam bele abba a problémába, hogyha nem azt a mappát listázom, amiben a szkriptem is van, akkor nem "ismeri fel" az abban lévő mappákat (fájlnak nézi).
Már feltúrtam a fél internetet, de nem találtam semmit amivel előrébb juthattam volna.
A kód:
- <?php
- header("Content-type: text/plain; charset=utf8");
- $af = "./".$_GET['dir'];
- $dir = opendir($af);
- $cv = 0;
- while(($file = readdir($dir)) !== false)
- {
- if($file != "." && $file != "..")
- {
- if(is_dir($file))
- {
- $nevek[$cv]['name'] = $file;
- $nevek[$cv]['type'] = "DIR ";
- $nevek[$cv]['size'] = "----";
- $cv++;
- }
- else
- {
- $nevek[$cv]['name'] = $file;
- $nevek[$cv]['type'] = "FILE";
- $nevek[$cv]['size'] = filesize($af.$file);
- $cv++;
- }
- }
- }
- closedir($dir);
- print_r($nevek);
- ?>
Dátum szerinti összegzés, "üres" adatok esetén is
Van egy grafikon rajzoló program. Azt szeretném, hogy jelenítse meg mondjuk összegezve az adatokat az utolsó hét napra lebontva. Összegzésnél mondjuk a DATE() MySQL fv-t használom. A problémám az, hogy ha egy naphoz nincs bejegyzés, akkor az meg sem fog jelenni az eredmény listában.
Ilyet szeretnék:Ilyet kapok:Az egyik lehetséges megoldás az lenne, hogy erre a célra létrehozok egy "dates" táblát, amiben minden nap benne van és LEFT JOIN-nal kapcsolom ehhez a táblát, amit összegezni szeretnék. De ténylegesen létre is kell hoznom ilyen táblát vagy van vmilyen más lehetőség is?
■ Ilyet szeretnék:
+------------+--------+
| DATE() | SUM() |
+------------+--------+
| 2008-01-04 | 10 |
| 2008-01-05 | 20 |
| 2008-01-06 | 0 |
| 2008-01-07 | 0 |
| 2008-01-08 | 10 |
| 2008-01-09 | 15 |
| 2008-01-10 | 0 |
+------------+--------+
+------------+--------+
| DATE() | SUM() |
+------------+--------+
| 2008-01-04 | 10 |
| 2008-01-05 | 20 |
| 2008-01-08 | 10 |
| 2008-01-09 | 15 |
+------------+--------+
Görgetősáv gondok
Sziasztok!
Nagy problémám van, ami a következő:
Készítettem egy olyan Joomla alapú weboldalt, amibe fix méretű divek vannak. A scrollozás javascripttel lett megoldva, hogy képre cserélhessem a scrolbart. Ez teljesen jól működik tartalmi elemeknél, azonban ha dinamikus elemeket jelenít meg az oldal (mambot, komponens), akkor a görgetés megszünik létezni. Azt gyanítom a javascript miatt van, de biztos nem vagyok ebben.
Az oldal és a probléma ITT tekinthető meg.
A segítő választ köszönöm előrre is!
■ Nagy problémám van, ami a következő:
Készítettem egy olyan Joomla alapú weboldalt, amibe fix méretű divek vannak. A scrollozás javascripttel lett megoldva, hogy képre cserélhessem a scrolbart. Ez teljesen jól működik tartalmi elemeknél, azonban ha dinamikus elemeket jelenít meg az oldal (mambot, komponens), akkor a görgetés megszünik létezni. Azt gyanítom a javascript miatt van, de biztos nem vagyok ebben.
Az oldal és a probléma ITT tekinthető meg.
A segítő választ köszönöm előrre is!