ugrás a tartalomhoz

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

február 18

Left join problema

zoliky · 2008. Feb. 17. (V), 23.06
Van harom mySQL tablam (category, products es prod2cat):

Category:


id | name
==================
1  | computers
2  | mp3 players
3  | camera


Products:

id | name |
=================
1  | Ipod
2  | Nikon camera


Prod2Cat:

prodid | catid
===============
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

lorko · 2008. Feb. 17. (V), 22.02
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.
 

Form adatainak küldése PHP-vel, oldalfrissítés nélkül

cs.m · 2008. Feb. 17. (V), 17.39
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&#337; kitöltése kötelez&#337;!</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

Thom · 2008. Feb. 17. (V), 01.33
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.
 

február 16

PHP-ben egy eseményre több javascript függvény hívása

ha5abe · 2008. Feb. 16. (Szo), 21.33
Sziasztok! Pl. OnFocus eseményre szeretnék több javascript függvényt felsorolni PHP-ben.

....
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');\"
....


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.

karpati · 2008. Feb. 16. (Szo), 19.07
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.
 

PHP alkönyvtárakban keresés help

DarkRaptor · 2008. Feb. 16. (Szo), 17.21
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:

<?

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 />";

}
  
?>
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!
 

február 15

php5 is_dir() néha téved

Arnold Layne · 2008. Feb. 15. (P), 21.24
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:

<?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

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

+------------+--------+
|   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 |
+------------+--------+
Ilyet kapok:

+------------+--------+
|   DATE()   |  SUM() |
+------------+--------+
| 2008-01-04 |     10 |
| 2008-01-05 |     20 |
| 2008-01-08 |     10 |
| 2008-01-09 |     15 |
+------------+--------+
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?
 

Görgetősáv gondok

AdrianWeb · 2008. Feb. 15. (P), 12.01
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!