Keresés

Új hozzászólás Aktív témák

  • meone

    tag

    válasz Sk8erPeter #3482 üzenetére

    Most szimplán annyi megy szépen de megint mikor be jön az üres form megint elvégződik az adatbázis művelet és be kerül egy üres sor.

  • meone

    tag

    válasz Sk8erPeter #3479 üzenetére

    Az első észrevételt ki javítottam.

    A második észrevételre is módosítottam következetessé tettem a scriptet most már akkor $pix így használom.

    A harmadik észrevételre:
    Azt tudom, hogy vannak szebb megoldások, de mivel még kezdő vagyok valahol nekem is el kell kezdenem.

    Eddig el tudtam jutni:

    $menteni=0;

    if ( isset($pix) && !is_numeric($pix) )
    {
    $menteni++;
    echo "Hibásan van ki töltve a 4.2-es kérdés, értéke:".$pix;
    }

    if ( isset($menyibe) && !is_numeric($menyibe) )
    {
    $menteni++;
    echo "<br> Hibásan van ki töltve a 30-as kérdés, értéke:".$menyibe;
    }

    if ( isset($ftmenyi) && !is_numeric($ftmenyi) )
    {
    $menteni++;
    echo "<br> Hibásan van ki töltve a 35-ös kérdés, értéke:".$ftmenyi;
    }

    if ( isset($menyirend) && !is_numeric($menyirend) )
    {
    $menteni++;
    echo "<br> Hibásan van ki töltve a 61-es kérdés, értéke:".$menyirend;
    }

    dbcsat();

    $sql = "insert (.....)

    if ($menteni==0)
    {
    $eredmeny = mysql_query($sql) ;
    } else {
    echo "hiba van";
    }

    Én így tudom meg oldani, de ez se jó.

    Amit te mondasz azt nem tudom meg csinálni. :O

  • meone

    tag

    válasz Sk8erPeter #3476 üzenetére

    Értem akkor vissza állítom isset-re.

    A break-re gondoltam. :DDD :B

    Most jelenleg ott járok, hogy ha be tölt az oldal akkor is le fut az adatbázis kérés.

    Azt, hogy lehet meg oldani, hogy elsőre mikor üres a form ne fusson le a az adatbázis írása?
    Meg össze akarom babrálni úgy a két részt, hogy csak akkor fusson le ha a felette lévő részben már nincsen hiba egyébként írja ki a hibát és ugorja át az INSERT-es részt és folytassa a form kitöltésével.

    Íme a kód:

    if ( !isset($_POST["pix"]) && !is_numeric($pix) )
    {
    echo "Hibásan van ki töltve a 4.2-es kérdés, értéke:".$pix;
    }

    if ( !isset($_POST["menyibe"]) && !is_numeric($menyibe) )
    {
    echo "<br> Hibásan van ki töltve a 30-as kérdés, értéke:".$menyibe;
    exit;
    }

    if ( !isset($_POST["ftmenyi"]) && !is_numeric($ftmenyi) )
    {
    echo "<br> Hibásan van ki töltve a 35-ös kérdés, értéke:".$ftmenyi;
    }

    if ( !isset($_POST["menyirend"]) && !is_numeric($menyirend) )
    {
    echo "<br> Hibásan van ki töltve a 61-es kérdés, értéke:".$menyirend;
    }

    dbcsat();

    $sql = "insert into mobilk (evf, szak, datum, k1, k2, k3, k41a, k42a, k43a, k44a, k5, k6, k7, k8, ................... k59, k60, k61) VALUES ('$evf ','$szak',NOW(),'$radio1',.......)";

    $eredmeny = mysql_query($sql) or die("hiba");

    Ha jól emlékszem meg kéne adni egy külön változót az if-eknél és ha rossz az érték akkor növelje eggyel, és végül a mysql_query-nél pedig egy újabb if-el meg vizsgálni azt hogy ez a változó ez alap értéken van e, vagy a hibák miatt változott, és csak akkor tovább engedni ha nem változott.

    Vagy hülyeség az okoskodásom?

  • meone

    tag

    válasz Sk8erPeter #3462 üzenetére

    Köszönöm, nézhettem volna a kódot ideig soha nem jöttem volna rá. :R

    Köszönöm még egyszer.

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3471 üzenetére

    Megvan már megírtam és nagyon szépen működik állítja is.
    Az volt a baj, hogy amikor belevettem a kolcsonzés táblát, ugye amikor "összekötöttem" őket akkor csak azokat írta ki, amiket már valaha kölcsönöztek ami nem volt jó, illetve amit fentebb írtam, hogy ha kölcsönzéshez veszem fel akkor nem lesz jó, mert ha egyszer visszahozták akkor 1re állítódik be az adott kölcsönzésnél a lejár érték, azonban ha kiveszik akkor nem az előző visszahozás íródik felül 0-ra hanem egy új, de a rendszer még mindig látja az előző 1est, így rossz értéket adva vissza.

    Adathordozóhoz tettem be, ami egyértelművé teszi az egészet így. Tehát az 1es sorozatszámú dvd-t veszik ki stb... így nem lehet kavarás :)
    De lényeg,hogy tényleg szépen megy és csak azokat adja ki kölcsönözhetőnek amiből van bent.
    Tehát ha egy film 2dvd-n is megvan, akkor ha egyik kölcsönözve van akkor automatikusan a másik sorozatszámú filmet még ki lehet venni,ha az sincs bent akkor pedig meg sem jelenik a listán. :)

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3461 üzenetére

    Köszi szépen és neked is cucka.

    Arra jöttem, rá, ha a kölcsönzés táblába teszem ezt a lejárt vagy sem jelzőt, akkor az nem lesz jó.
    Ugye egy korábban visszahozott filmre 1et állítok be, hogy bent van de ha utána kivették akkor is jelzi, hogy bent van,mivel van egy 1es a lejár mezőben.
    Így tehát ezt az adathordozóhoz teszem be, mivel minden egyes adathodozó egyedinek számít, így egy adott dvd-nek csak 1állapota lehet vagy bent van vagy kint.
    Most már azt hiszem jó lesz :)

    Meg tudom adni, hogy alapértelmezetten 1esek legyenek benne vagy csak 0-át lehet?

  • cucka

    addikt

    válasz Sk8erPeter #3468 üzenetére

    Itt tulajdonképpen akkor csak arra kell figyelni, hogy a MySQL-kapacitást ne lépd túl.
    A korábban említett nagy rendszereknél a mysql kapacitás nem kérdés, ugyanis jellemzően saját szerveren üzemeltek. Átlag párezer forintos webhosting szolgáltatáshoz (mondjuk 1-2 giga tárhely, 100 mega mysql) értelemszerűen ez a megoldás nem igazán jó.

    Egyébként meglévő adatbázisnál hogyan lehet megnézni, még meddig terpeszkedhetsz?
    Passz. Én írnék egy mailt a szolgáltatómnak ezügyben :)

    A több százezer kép tárolása adatbázisban mennyivel foglal ilyen módon több/kevesebb helyet?
    Nagyjából ugyanannyit foglal, mint külön file-ként. Amire oda kell figyelni, hogy ha select-nél a bináris mezőt is kéred, akkor az nem a leggyorsabb, komoly adatforgalmat generál a szkripted és a mysql adatbázis között. Ezért készítettünk annak idején cache-t is hozzá, ami a filerendszerbe pakolta le a fileokat. Sőt, olyan is volt, hogy az adatbázis és a cache külön gépen futott. :)

  • cucka

    addikt

    válasz Sk8erPeter #3462 üzenetére

    Ha a 0-t számnak tekinted, akkor a kódod nem jó, ugyanis az empty() a 0-ra és az üres tömbre is boolean true-val tér vissza. Jelen esetben empty helyett isset-et kéne használni.

    (#3460) PazsitZ
    Extract() függvény használata nagyon nem javasolt, ugyanolyan okokból, ami miatt a register_globals használata sem. Ha ilyen sok változóról van szó, akkor érdemes egy tömbben felsorolni azokat, majd ez alapján beállítani az összes változó értékét, például így:

    $elfogadott_nevek=array('nev1, 'nev2', 'nev3');
    foreach ($elfogadott_nevek as $nev){
    if (isset($_POST[$nev])){
    $$nev=$_POST[$nev];
    }
    }

  • cucka

    addikt

    válasz Sk8erPeter #3452 üzenetére

    Ne szerencsétlenkedjé' már.. :D

    $nap_hu=array('hétfő', 'kedd', ... 'vasárnap');
    $nap_en=array('Monday', 'Tuesday', ... 'Sunday');
    $datum=str_replace($nap_en, $nap_hu, date('Y-m-d l H:i'));

  • cucka

    addikt

    válasz Sk8erPeter #3445 üzenetére

    És milyen célból? Nekem elsőre kicsit feleslegesen bonyolultnak tűnik, persze biztos valamilyen szempont nem jutott még eszembe.
    Nagy php-s keretrendszer, magas szintű absztrakcióval. Röviden: a file feltöltés ugyanolyan űrlap elem, mint a szöveges, checkbox, legördülő, stb.. Az űrlap elemeinek lehet értéke, az értéket el lehet menteni adatbázisba, tehát a file feltöltéssel felvitt bináris adatot és a szöveges mezőbe beírt szöveget egyenrangúan kezelem.
    Amúgy előnye például, hogy az adatbázisban található az összes adata a weboldalnak. Adatbázis automatikus mentése könnyen megoldható, az import/export is egyszerű, tehát ilyen előnyei vannak. Nem kell foglalkozni a filerendszer sajátosságaival, nem kell tudni, hogy melyik könyvtárban vannak a képek, nem kell odafigyelni, hogy különbözőek legyenek a filenevek, nem okoz gondot több százezer kép tárolása, ilyesmi. Természetesen figyelni kell a sebességre, ezért készült hozzá filerendszer alapú cache-elés is.
    Ebben a topikban főleg apróbb, egyszerű programokról van szó, ennek a módszernek az előnyei pedig inkább nagy rendszerekben érvényesülnek.

    (#3446) 8nemesis8
    Igen ilyesmire én is gondoltam, de hogyan állapítom meg, hogy visszahozták e!?
    Például a visszahozás dátuma az adatbázisban alapértelmezésként NULL. Ha visszahozták, akkor beállítod az aktuális dátumot. MySQL-ben a null-ság ellenőrzését valahogy így oldod meg:
    select * from tablanev where mezonev is null
    select * from tablanev where mezonev is not null

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3456 üzenetére

    ÓÓÓ basszus, észre se vettem, hogy meone, beletettél egy pontosvesszőt az if mögé, én meg azt másolgattam itt... Hát akkor nyilván minden esetben echo-zni fog.
    Szedd ki a pontosvesszőt, és jó lesz.
    Szóval akkor ez már az, amit eredetileg írni akartam:
    if ( !empty($_POST["pix"]) && is_numeric($pix) )
    {
    echo "Hibásan van ki töltve a 4.2-es kérdés értéke:".$pix;
    }

  • meone

    tag

    válasz Sk8erPeter #3456 üzenetére

    Megcsinálom a változtatás, de semmi eredmény.
    Ugyan úgy ki írja mind a két esetben.

    Rá jöttem már mi a hiba. :W
    Ez a sor:

    echo "Hibásan van ki töltve a 4.2-es kérdés értéke:".$pix;
    Azért írja ki mind a két esetben mert csak egy egyszerű "echo" van ki írva.
    Meg lehet ezt úgy változtatni, hogy csak akkor írja ki ha tényleg van hiba?

    Vagy teljesen hülyeség az okoskodásom?

    Amúgy itt a kód:

    <?php

    if (!empty($_POST["evf"]))
    {
    $evf=$_POST["evf"];
    $szak=$_POST["szak"];
    $radio1=$_POST["radio1"];
    $mobil=$_POST["mobil"];
    $radio2=$_POST["radio2"];
    $freki=$_POST["freki"];
    $pix=$_POST["pix"];
    $terulet=$_POST["terulet"];
    $radio3=$_POST["radio3"];
    $radio4=$_POST["radio4"];
    $radio5=$_POST["radio5"];
    $radio6=$_POST["radio6"];
    $radio7=$_POST["radio7"];
    $radio8=$_POST["radio8"];
    $radio9=$_POST["radio9"];
    $radio10=$_POST["radio10"];
    $gond=$_POST["gond"];
    $radio11=$_POST["radio11"];
    $radio12=$_POST["radio12"];
    $radio13=$_POST["radio13"];
    $radio14=$_POST["radio14"];
    $radio15=$_POST["radio15"];
    $radio16=$_POST["radio16"];
    $radio17=$_POST["radio17"];
    $radio18=$_POST["radio18"];
    $tanacshird=$_POST["tanacshird"];
    $radio19=$_POST["radio19"];
    $radio20=$_POST["radio20"];
    $radio21=$_POST["radio21"];
    $radio22=$_POST["radio22"];
    $napilatmiert=$_POST["napilatmiert"];
    $radio23=$_POST["radio23"];
    $hiradomiert=$_POST["hiradomiert"];
    $radio24=$_POST["radio24"];
    $mikene=$_POST["mikene"];
    $menyibe=$_POST["menyibe"];
    $radio25=$_POST["radio25"];
    $javaslat=$_POST["javaslat"];
    $radio26=$_POST["radio26"];
    $radio27=$_POST["radio27"];
    $ftmenyi=$_POST["ftmenyi"];
    $radio28=$_POST["radio28"];
    $radio29=$_POST["radio29"];
    $radio30=$_POST["radio30"];
    $radio31=$_POST["radio31"];
    $multielony=$_POST["multielony"];
    $multihatrany=$_POST["multihatrany"];
    $radio32=$_POST["radio32"];
    $fmiert=$_POST["fmiert"];
    $radio33=$_POST["radio33"];
    $radio34=$_POST["radio34"];
    $radio35=$_POST["radio35"];
    $radio36=$_POST["radio36"];
    $radio37=$_POST["radio37"];
    $radio38=$_POST["radio38"];
    $radio39=$_POST["radio39"];
    $radio40=$_POST["radio40"];
    $radio41=$_POST["radio41"];
    $radio42=$_POST["radio42"];
    $radio43=$_POST["radio43"];
    $radio44=$_POST["radio44"];
    $radio45=$_POST["radio45"];
    $radio46=$_POST["radio46"];
    $radio47=$_POST["radio47"];
    $radio48=$_POST["radio48"];
    $radio49=$_POST["radio49"];
    $menyirend=$_POST["menyirend"];
    }
    echo $radio1;

    if ( !empty($_POST["pix"]) && is_numeric($pix) ) ;
    {
    echo "Hibásan van ki töltve a 4.2-es kérdés értéke:".$pix;
    }
    ?>

    <form method="POST" action="<?php print $_SERVER["PHP_SELF"];?>">
    <table width="750" height="3489" border="1" align="center">
    <tr>
    <td colspan="5" height="36">TECHNOL&Oacute;GIA&nbsp;&nbsp; &Eacute;S&nbsp;&nbsp; M&Oacute;DSZERTAN&nbsp;&nbsp; FEJLESZT&Eacute;SE &nbsp;M&#368;K&Ouml;D&#336; HONLAPOK&nbsp; TARTALMI&nbsp; ELEMZ&Eacute;S&Eacute;RE</td>
    </tr>
    <tr>
    <td colspan="5" height="20"><p align="right"><em>(Nincs rossz v&aacute;lasz, nem kell megfelelni senkinek &eacute;s semminek!)
    &nbsp;K&eacute;rd&#337;&iacute;v(001. sz.)</em></p></td>
    </tr>
    <tr>
    <td colspan="5" height="20"><p>&Eacute;vfolyam: . <input name="evf" type="text" id="evf" value="<?php print $evf; ?>" size=95 maxlenght="100">
    </p></td>
    </tr>
    <tr>
    <td colspan="5" height="20"><p>Szak: . <input name="szak" type="text" id="szak" value="<?php print $szak; ?>" size=100 maxlenght="100">
    </p></td>
    </tr>
    <tr>
    <td colspan="5" height="10"><p>D&aacute;tum: <?php echo date("Y.m.d") ?> </p></td>
    </tr>
    <tr>
    <td width="38">Sorsz.</td>
    <td width="308">K&Eacute;RD&Eacute;S</td>
    <td colspan="3">V&aacute;lasz</td>
    </tr>
    <tr>
    <td>1.</td><td>Van-e multim&eacute;di&aacute;s mobil k&eacute;sz&uuml;l&eacute;ke? </td>
    <td width="107"><input name="radio1" type="radio"value="y" <?php echo $radio1 == 'y' ? 'checked="checked"' : ''; ?> >
    Igen</td>
    <td colspan="2"><input type="radio" name="radio1"value="n"
    <?php echo $radio1 == 'n' ? 'checked="checked"' : ''; ?>>Nem</td>
    </tr>
    <tr>
    <td width="38">2.</td><td ><p>Milyen t&iacute;pus&uacute; mobil-eszk&ouml;zt haszn&aacute;l jelenleg?(Ha haszn&aacute;l. Ha nem, h&uacute;zza ki!)</p>
    </td><td colspan="3"><input name="mobil" type="text" id="mobil" value="<?php print $mobil; ?>" size=50 maxlenght="100"></td>
    </tr>
    <tr>
    <td>3.</td><td>Ismeri-e a k&eacute;sz&uuml;l&eacute;ke technikai jellemz&#337;it, adatait?</td>
    <td><input type="radio" name="radio2"value="y"
    <?php echo $radio2 == 'y' ? 'checked="checked"' : ''; ?>>
    igen</td>
    <td width="116"><input type="radio" name="radio2"value="n" <?php echo $radio2 == 'n' ? 'checked="checked"' : ''; ?>>
    nem</td>
    <td width="147"><input type="radio" name="radio2"value="res" <?php echo $radio2 == 'res' ? 'checked="checked"' : ''; ?>>
    r&eacute;szben</td>
    </tr>
    <tr>
    <td>4.1</td><td><em>Mi a m&#369;k&ouml;d&eacute;si frekvenci&aacute;ja? </em></td>
    <td colspan="3"><input name="freki" type="text" id="freki" value="<?php print $freki; ?>" size="20" maxlenght="100" />
    (ha nem tudja, h&uacute;zzon vonalat!)</td>
    </tr>
    <tr>
    <td>4.2</td>
    <td><em>Mekkora &eacute;s milyen felbont&aacute;s&uacute; a kijelz&#337;je?</em></td>
    <td colspan="3"><input name="pix" type="text" id="pix" value="<?php print $pix; ?>" size="20" maxlenght="100" />
    pixel</td>
    </tr>
    <tr>
    <td>4.3</td><td><em>Hol alkalmas a mobilja internetez&eacute;sre?</em></td><td colspan="3"><p>
    <input name="terulet" type="text" id="terulet" value="<?php print $terulet; ?>" size="30" maxlenght="100" />
    (pl.:r&eacute;gi&oacute;)</p></td>
    </tr>
    <tr>
    <td>4.4</td><td><em>Fogad-e streaming-filet?</em></td>
    <td><input type="radio" name="radio3"value="y" <?php echo $radio3 == 'y' ? 'checked="checked"' : ''; ?>>
    igen</td>
    <td colspan="2"><input type="radio" name="radio3"value="n" <?php echo $radio3 == 'n' ? 'checked="checked"' : ''; ?>>
    nem</td>
    </tr>
    <tr>
    <td>5</td><td>Mire kell alkalmasnak lennie egy mobil k&eacute;sz&uuml;l&eacute;knek?</td><td><input type="radio" name="radio4"value="tel" <?php echo $radio4 == 'tel' ? 'checked="checked"' : ''; ?>>
    telefon&aacute;l&aacute;sra</td><td><input type="radio" name="radio4"value="int" <?php echo $radio4 == 'int' ? 'checked="checked"' : ''; ?>>
    internetez&eacute;sre</td><td><input type="radio" name="radio4"value="mind2" <?php echo $radio4 == 'mind2' ? 'checked="checked"' : ''; ?>>
    mindkett&#337;re</td>
    </tr>
    <tr>
    <td>6.</td>
    <td>Az &ouml;n jelenlegi mobil k&eacute;sz&uuml;l&eacute;ke alkalmas-e internetes csatlakoz&aacute;sra?</td>
    <td><input type="radio" name="radio5"value="y" <?php echo $radio5 == 'y' ? 'checked="checked"' : ''; ?>>
    igen</td>
    <td colspan="2"><input type="radio" name="radio5"value="n" <?php echo $radio5 == 'n' ? 'checked="checked"' : ''; ?>>
    nem</td>
    </tr>
    <tr>
    <td>7.</td>
    <td>&Aacute;ltal&aacute;ban csak telefon&aacute;l&aacute;sra haszn&aacute;lja a mobilk&eacute;sz&uuml;l&eacute;k&eacute;t?</td>
    <td><input type="radio" name="radio6"value="y" <?php echo $radio6 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio6"value="n" <?php echo $radio6 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td>8.</td>
    <td><strong>Meg tud-</strong>e n&eacute;zni r&ouml;videbb terjedelm&#369; vide&oacute;anyagot a mobilja seg&iacute;ts&eacute;g&eacute;vel? </td>
    <td><input type="radio" name="radio7"value="y" <?php echo $radio7 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio7"value="n" <?php echo $radio7 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td>9.</td>
    <td>Meg <strong>szokott</strong>-e n&eacute;zni ilyen anyagokat?</td>
    <td><input type="radio" name="radio8"value="y" <?php echo $radio8 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio8"value="n" <?php echo $radio8 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td>10</td>
    <td><strong>M&aacute;r el&#337;fordult</strong> a bar&aacute;taim k&eacute;sz&uuml;l&eacute;k&eacute;n, hogy igen.</td>
    <td><input type="radio" name="radio9"value="y" <?php echo $radio9 == 'y' ? 'checked="checked"' : ''; ?> />
    igem</td>
    <td colspan="2"><input type="radio" name="radio9"value="n" <?php echo $radio9 == 'n' ? 'checked="checked"' : ''; ?> />
    Nem fordult el&#337;.</td>
    </tr>
    <tr>
    <td>11.</td>
    <td><p>Van-e akad&aacute;lya annak, hogy egy mobil-eszk&ouml;z-csomagot haszn&aacute;ljon tanul&aacute;shoz? </p></td>
    <td><input type="radio" name="radio10"value="y" <?php echo $radio10 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio10"value="n" <?php echo $radio10 == 'n' ? 'checked="checked"' : ''; ?> />
    nincs</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>Ha igen, mi? </td>
    <td colspan="3"><input name="gond" type="text" id="gond" value="<?php print $gond; ?>" size="50" maxlenght="100" /></td>
    </tr>
    <tr>
    <td>12.</td>
    <td>Ha van egy&eacute;b internet-hozz&aacute;f&eacute;r&eacute;se, akkor is haszn&aacute;lja a mobilt internetez&eacute;sre?</td>
    <td><input type="radio" name="radio11"value="y" <?php echo $radio11 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio11"value="n" <?php echo $radio11 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio11"value="res" <?php echo $radio11 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td>13.</td>
    <td><p>Naponta internetezik?</p></td>
    <td><input type="radio" name="radio12"value="y" <?php echo $radio12 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio12"value="n" <?php echo $radio12 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td>14.</td>
    <td>&Ouml;n szerint alkalmas-e a mobilk&eacute;sz&uuml;l&eacute;k hirdet&eacute;sekre? </td>
    <td><input type="radio" name="radio13"value="y" <?php echo $radio13 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio13"value="n" <?php echo $radio13 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio13"value="res" <?php echo $radio13 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td>15.</td>
    <td>A nyomtatott hirdet&eacute;si inform&aacute;ci&oacute;t r&eacute;szes&iacute;ti-e el&#337;nyben? </td>
    <td><input type="radio" name="radio14"value="y" <?php echo $radio14 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio14"value="n" <?php echo $radio14 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio14"value="res" <?php echo $radio14 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td>16.</td>
    <td>Az elektronikus hirdet&eacute;st is megn&eacute;zi? &nbsp;</td>
    <td><input type="radio" name="radio15"value="y" <?php echo $radio15 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio15"value="n" <?php echo $radio15 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio15"value="res" <?php echo $radio15 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td height="26">17.</td>
    <td>C&eacute;lir&aacute;nyosan keres a hirdet&eacute;sek k&ouml;z&ouml;tt? </td>
    <td><input type="radio" name="radio16"value="y" <?php echo $radio16 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio16"value="n" <?php echo $radio16 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio16"value="res" <?php echo $radio16 == 'res' ? 'checked="checked"' : ''; ?> />
    n&eacute;ha</td>
    </tr>
    <tr>
    <td height="42">18.</td>
    <td>A mobilon el&eacute;rhet&#337; hirdet&eacute;si &eacute;s egy&eacute;b anyagok mellett haszn&aacute;l-e nyomtatott &uacute;js&aacute;gokat is?</td>
    <td><input type="radio" name="radio17"value="y" <?php echo $radio17 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio17"value="n" <?php echo $radio17 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio17"value="res" <?php echo $radio17 == 'res' ? 'checked="checked"' : ''; ?> />
    vegyesen</td>
    </tr>
    <tr>
    <td height="42">19.</td>
    <td>Megb&iacute;zhat&oacute;nak tartja-e a sz&aacute;m&iacute;t&oacute;g&eacute;pen, interneten el&eacute;rhet&#337; hirdet&eacute;si inform&aacute;ci&oacute;kat? </td>
    <td><input type="radio" name="radio18"value="y" <?php echo $radio18 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio18"value="n" <?php echo $radio18 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio18"value="res" <?php echo $radio18 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td height="87">20.</td>
    <td>Mit tan&aacute;csol a hirdet&#337;knek, hogy gyorsabban &eacute;s hat&eacute;konyabban el&eacute;rj&eacute;k a c&eacute;lcsoportjukat?</td>
    <td colspan="3"><textarea name="tanacshird" cols="50" rows="5" id="tanacshird" maxlenght="100"><?php print $tanacshird; ?></textarea></td>
    </tr>
    <tr>
    <td height="29">21.</td>
    <td>Csak interneten hirdessenek?</td>
    <td><input type="radio" name="radio19"value="y" <?php echo $radio19 == 'y' ? 'checked="checked"' : ''; ?> />
    Igen</td>
    <td><input type="radio" name="radio19"value="n" <?php echo $radio19 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio19"value="res" <?php echo $radio19 == 'res' ? 'checked="checked"' : ''; ?> />
    vegyesen</td>
    </tr>
    <tr>
    <td height="61">22.</td>
    <td>Milyen a megb&iacute;zhat&oacute;s&aacute;ga ma a mobilon el&eacute;rhet&#337; hirdet&eacute;si inform&aacute;ci&oacute;k megjelen&eacute;s&eacute;nek? </td>
    <td><input type="radio" name="radio20"value="y" <?php echo $radio20 == 'y' ? 'checked="checked"' : ''; ?> />
    Kiv&aacute;l&oacute;</td>
    <td><input type="radio" name="radio20"value="n" <?php echo $radio20 == 'n' ? 'checked="checked"' : ''; ?> />
    k&ouml;zepes</td>
    <td><input type="radio" name="radio20"value="res" <?php echo $radio20 == 'res' ? 'checked="checked"' : ''; ?> />
    gyenge</td>
    </tr>
    <tr>
    <td height="23">23.</td>
    <td>K&ouml;nny&#369;v&eacute; teszi a keresett anyagot az internet?</td>
    <td><input type="radio" name="radio21"value="y" <?php echo $radio21 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><p>
    <input type="radio" name="radio21"value="n" <?php echo $radio21 == 'n' ? 'checked="checked"' : ''; ?> />
    Egy&aacute;ltal&aacute;n nem k&ouml;nny&#369;</p></td>
    <td><input type="radio" name="radio21"value="res" <?php echo $radio21 == 'res' ? 'checked="checked"' : ''; ?> />
    vegyesen</td>
    </tr>
    <tr>
    <td height="42">24.</td>
    <td>Olvasna-e rendszeresen napilapot mobil-k&eacute;perny&#337;n?</td>
    <td><input type="radio" name="radio22"value="y" <?php echo $radio22 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio22"value="n" <?php echo $radio22 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="46">25.</td>
    <td>mi&eacute;rt?</td>
    <td colspan="3"><textarea name="napilatmiert" cols="50" rows="5" id="napilatmiert" maxlenght="100"><?php print $napilatmiert; ?></textarea></td>
    </tr>
    <tr>
    <td height="23">26.</td>
    <td>Hossz&uacute; h&iacute;rad&oacute;t is n&eacute;zne mobilon?</td>
    <td><input type="radio" name="radio23"value="y" <?php echo $radio23 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio23"value="n" <?php echo $radio23 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio23"value="res" <?php echo $radio23 == 'res' ? 'checked="checked"' : ''; ?> />
    alkalomszer&#369;en</td>
    </tr>
    <tr>
    <td height="87">27.</td>
    <td>mi&eacute;rt?</td>
    <td colspan="3"><textarea name="hiradomiert" cols="50" rows="5" id="hiradomiert" maxlenght="100"><?php print $hiradomiert; ?></textarea></td>
    </tr>
    <tr>
    <td height="42">28.</td>
    <td>Szereti-e ha rekl&aacute;mokkal is felkeresik inform&aacute;ci&oacute;el&eacute;r&eacute;s k&ouml;zben?</td>
    <td><input type="radio" name="radio24"value="y" <?php echo $radio24 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio24"value="n" <?php echo $radio24 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="50">29.</td>
    <td>Ha anyagi korl&aacute;tja nem volna, milyen k&eacute;sz&uuml;l&eacute;ket v&aacute;s&aacute;rolna? (m&aacute;rka; t&iacute;pus)</td>
    <td colspan="3"><textarea name="mikene" cols="50" rows="5" id="mikene" maxlenght="100"><?php print $mikene; ?></textarea></td>
    </tr>
    <tr>
    <td height="61">30.</td>
    <td>H&aacute;ny forintot sz&aacute;nna arra, hogy egy t&ouml;bbfunkci&oacute;s <strong>mobiltelefont</strong> v&aacute;s&aacute;roljon, amin ak&aacute;r kereskedelmi megrendel&eacute;st is feladhat?</td>
    <td colspan="3"><input name="menyibe" type="text" id="menyibe" value="<?php print $menyibe; ?>" size="20" maxlenght="100" />
    HUF</td>
    </tr>
    <tr>
    <td height="23">31.</td>
    <td><p>Szokott-e filmet n&eacute;zni mobil-on? </p> </td>
    <td><input type="radio" name="radio25"value="y" <?php echo $radio25 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio25"value="n" <?php echo $radio25 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio25"value="res" <?php echo $radio25 == 'res' ? 'checked="checked"' : ''; ?> />
    Csak rekl&aacute;mfilmet </td>
    </tr>
    <tr>
    <td height="37">32.</td>
    <td><p>Ha m&aacute;r van sokfunkci&oacute;s k&eacute;sz&uuml;l&eacute;ke, mit javasolna, hogy olcs&oacute;bban jusson hozz&aacute; egyes hirdet&eacute;si, kereskedelmi inform&aacute;ci&oacute;hoz? </p></td>
    <td colspan="3"><textarea name="javaslat" cols="50" rows="5" id="javaslat" maxlenght="100"><?php print $javaslat; ?></textarea></td>
    </tr>
    <tr>
    <td height="23">33.</td>
    <td>Egyet&eacute;rt-e azzal, hogy a di&aacute;kok kaphassanak kedvezm&eacute;nyes, esetleg ingyenes internetes tarif&aacute;t? </td>
    <td><input type="radio" name="radio26"value="y" <?php echo $radio26 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio26"value="n" <?php echo $radio26 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="23">34.</td>
    <td>Ha di&aacute;koknak ingyenes volna ez a szolg&aacute;ltat&aacute;s, akkor milyen gyakran venn&eacute; ig&eacute;nybe? </td>
    <td><input type="radio" name="radio27"value="y" <?php echo $radio27 == 'y' ? 'checked="checked"' : ''; ?> />
    Mindig.</td>
    <td><input type="radio" name="radio27"value="n" <?php echo $radio27 == 'n' ? 'checked="checked"' : ''; ?> />
    Nem venn&eacute;m ig&eacute;nybe.</td>
    <td><input type="radio" name="radio27"value="res" <?php echo $radio27 == 'res' ? 'checked="checked"' : ''; ?> />
    Alkalmank&eacute;nt</td>
    </tr>
    <tr>
    <td height="42">35.</td>
    <td>H&aacute;ny forintot tudna r&aacute;sz&aacute;nni, ha m&eacute;gsem volna ingyenes?</td>
    <td colspan="3"><input name="ftmenyi" type="text" id="ftmenyi" value="<?php print $ftmenyi; ?>" size="20" maxlenght="100" />
    HUF</td>
    </tr>
    <tr>
    <td height="23">36.</td>
    <td>Egyet&eacute;rt-e azzal, hogy a telefon&aacute;l&aacute;st &eacute;s a mobil-kereskedelmi inform&aacute;ci&oacute;k el&eacute;r&eacute;s&eacute;t k&uuml;l&ouml;n tarifacsomagk&eacute;nt kezelj&eacute;k &eacute;s v&aacute;lasztani lehessen? </td>
    <td><input type="radio" name="radio28"value="y" <?php echo $radio28 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio28"value="n" <?php echo $radio28 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="42">37.</td>
    <td>Egyet&eacute;rt-e azzal, hogy a di&aacute;kokat is el&eacute;rhess&eacute;k kereskedelmi c&eacute;gek hirdet&eacute;seikkel?</td>
    <td><input type="radio" name="radio29"value="y" <?php echo $radio29 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio29"value="n" <?php echo $radio29 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="61">38.</td>
    <td>Egyet&eacute;rt-e azzal, hogy a di&aacute;kok a hozz&aacute;juk eljuttatott hirdet&eacute;sek fej&eacute;ben olcs&oacute;bban jussanak hozz&aacute; az internethez? </td>
    <td><input type="radio" name="radio30"value="y" <?php echo $radio30 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio30"value="n" <?php echo $radio30 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="23">39.</td>
    <td>Zaklat&aacute;snak veszi-e, ha hirdet&eacute;sekkel keresik fel &ouml;nt? </td>
    <td><input type="radio" name="radio31"value="y" <?php echo $radio31 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio31"value="n" <?php echo $radio31 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="53">40.</td>
    <td>&Aacute;ltal&aacute;nosan milyen <strong><u>el&#337;nyeit</u></strong> emeln&eacute; ki a multim&eacute;di&aacute;s eszk&ouml;z(&ouml;k)nek? </td>
    <td colspan="3"><textarea name="multielony" cols="50" rows="5" id="multielony" maxlenght="100"><?php print $multielony; ?></textarea></td>
    </tr>
    <tr>
    <td height="54">41.</td>
    <td>&Aacute;ltal&aacute;nosan milyen <strong><u>h&aacute;tr&aacute;nyait</u></strong> emeln&eacute; ki a multim&eacute;di&aacute;s eszk&ouml;z(&ouml;k)nek?</td>
    <td colspan="3"><textarea name="multihatrany" cols="50" rows="5" id="multihatrany" maxlenght="100"><?php print $multihatrany; ?></textarea></td>
    </tr>
    <tr>
    <td height="61">42.</td>
    <td>Fontos-e, az &ouml;n munk&aacute;ja, tanul&aacute;sa szempontj&aacute;b&oacute;l, hogy helyt&#337;l &eacute;s id&#337;t&#337;l f&uuml;ggetlen&uuml;l is el&eacute;rhessen bizonyos inform&aacute;ci&oacute;kat?</td>
    <td> <input type="radio" name="radio32"value="y" <?php echo $radio32 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio32"value="n" <?php echo $radio32 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio32"value="res" <?php echo $radio32 == 'res' ? 'checked="checked"' : ''; ?> />
    K&ouml;z&ouml;mb&ouml;s</td>
    </tr>
    <tr>
    <td height="73">43.</td>
    <td><p>Mi&eacute;rt? </p></td>
    <td colspan="3"><textarea name="fmiert" cols="50" rows="5" id="fmiert" maxlenght="100"><?php print $fmiert; ?></textarea></td>
    </tr>
    <tr>
    <td height="42">44.</td>
    <td>Mobil-k&eacute;sz&uuml;l&eacute;ken is rendezi-e az internetes inform&aacute;ci&oacute;kat? </td>
    <td><input type="radio" name="radio33"value="y" <?php echo $radio33 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio33"value="n" <?php echo $radio33 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="42">45.</td>
    <td>Csak h&aacute;l&oacute;zatos k&eacute;sz&uuml;l&eacute;ken rendezem az inform&aacute;ci&oacute;imat. </td>
    <td><input type="radio" name="radio34"value="y" <?php echo $radio34 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio34"value="n" <?php echo $radio34 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="61">46.</td>
    <td><p>&Ouml;n szerint nagyon r&aacute;telepszik az emberre, ha m&aacute;r a mobil k&eacute;sz&uuml;l&eacute;k&eacute;n is kereskedelmi internetez&eacute;st folytat? </p></td>
    <td><input type="radio" name="radio35"value="y" <?php echo $radio35 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td colspan="2"><input type="radio" name="radio35"value="n" <?php echo $radio35 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    </tr>
    <tr>
    <td height="42">47.</td>
    <td>Figyeli-e (az interneten) a kedvenc honlapjain a napi v&aacute;ltoz&aacute;sokat? </td>
    <td><input type="radio" name="radio36"value="y" <?php echo $radio36 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio36"value="n" <?php echo $radio36 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio36"value="res" <?php echo $radio36 == 'res' ? 'checked="checked"' : ''; ?> />
    alkalomszer&#369;en</td>
    </tr>
    <tr>
    <td height="23">48.</td>
    <td>A t&aacute;rsas&aacute;gi oldalakat n&eacute;zi?</td>
    <td> <input type="radio" name="radio37"value="y" <?php echo $radio37 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio37"value="n" <?php echo $radio37 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio37"value="res" <?php echo $radio37 == 'res' ? 'checked="checked"' : ''; ?> />
    (m&aacute;st is) n&eacute;ha</td>
    </tr>
    <tr>
    <td height="23">49.</td>
    <td>H&iacute;rport&aacute;lt szokott-e n&eacute;zni? </td>
    <td><input type="radio" name="radio38"value="y" <?php echo $radio38 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio38"value="n" <?php echo $radio38 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio38"value="res" <?php echo $radio38 == 'res' ? 'checked="checked"' : ''; ?> />
    alkalomszer&#369;en</td>
    </tr>
    <tr>
    <td height="26">50.</td>
    <td>Felvett-e &uacute;j szok&aacute;sokat az internet elterjed&eacute;se &oacute;ta? </td>
    <td><input type="radio" name="radio39"value="y" <?php echo $radio39 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio39"value="n" <?php echo $radio39 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio39"value="res" <?php echo $radio39 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td height="23">51.</td>
    <td>Gyakrabban olvas-e h&iacute;reket mi&oacute;ta internete van? </td>
    <td><input type="radio" name="radio40"value="y" <?php echo $radio40 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio40"value="n" <?php echo $radio40 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio40"value="res" <?php echo $radio40 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td height="53">52.</td>
    <td>Nagyon r&aacute;telepszik az internet a h&eacute;tk&ouml;znapjaira? </td>
    <td><p>
    <input type="radio" name="radio41"value="y" <?php echo $radio41 == 'y' ? 'checked="checked"' : ''; ?> />
    Igen (F&uuml;gg&#337; vagyok)</p> </td>
    <td><input type="radio" name="radio41"value="n" <?php echo $radio41 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio41"value="res" <?php echo $radio41 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td height="48">53.</td>
    <td>Okos dolog-e interneten hirdetni? </td>
    <td><input type="radio" name="radio42"value="y" <?php echo $radio42 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio42"value="n" <?php echo $radio42 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio42"value="res" <?php echo $radio42 == 'res' ? 'checked="checked"' : ''; ?> />
    nem mindig </td>
    </tr>
    <tr>
    <td height="26">54.</td>
    <td>Megb&iacute;zhat&oacute;-e az internetes hirdet&eacute;s? </td>
    <td><input type="radio" name="radio43"value="y" <?php echo $radio43 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio43"value="n" <?php echo $radio43 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio43"value="res" <?php echo $radio43 == 'res' ? 'checked="checked"' : ''; ?> />
    nem mindig </td>
    </tr>
    <tr>
    <td height="45">55.</td>
    <td><p>Mennyire k&eacute;pviseli az internetes felm&eacute;r&eacute;s a t&eacute;nyleges fogyaszt&oacute;i, v&aacute;s&aacute;rl&oacute;i &nbsp;k&ouml;rt?</p> </td>
    <td><input type="radio" name="radio44"value="y" <?php echo $radio44 == 'y' ? 'checked="checked"' : ''; ?> />
    H&#369; k&eacute;pet ad r&oacute;luk</td>
    <td><input type="radio" name="radio44"value="n" <?php echo $radio44 == 'n' ? 'checked="checked"' : ''; ?> />
    Nem k&eacute;pviseli </td>
    <td><input type="radio" name="radio44"value="res" <?php echo $radio44 == 'res' ? 'checked="checked"' : ''; ?> />
    Csak r&eacute;szben (k&eacute;rd&#337;&iacute;vt&#337;l f&uuml;gg)</td>
    </tr>
    <tr>
    <td height="64">56.</td>
    <td>Mennyire t&uuml;kr&ouml;zi egy kereskedelmi c&eacute;g tev&eacute;kenys&eacute;g&eacute;t az interneten jelenl&eacute;v&#337; oldala?</td>
    <td><input type="radio" name="radio45"value="y" <?php echo $radio45 == 'y' ? 'checked="checked"' : ''; ?> />
    Teljes m&eacute;rt&eacute;kben</td>
    <td><input type="radio" name="radio45"value="n" <?php echo $radio45 == 'n' ? 'checked="checked"' : ''; ?> />
    Nem k&eacute;pviseli, a val&oacute;s&aacute;gban m&aacute;ssal foglalkozik</td>
    <td><input type="radio" name="radio45"value="res" <?php echo $radio45 == 'res' ? 'checked="checked"' : ''; ?> />
    Vegyes; mindk&eacute;t jelenl&eacute;t fontos a sz&aacute;m&aacute;ra</td>
    </tr>
    <tr>
    <td height="83">57.</td>
    <td>Mennyire b&iacute;zik meg egy c&eacute;g internetes hirdet&eacute;s&eacute;ben?</td>
    <td><p>
    <input type="radio" name="radio46"value="y" <?php echo $radio46 == 'y' ? 'checked="checked"' : ''; ?> />
    Megb&iacute;zom</p></td>
    <td><input type="radio" name="radio46"value="n" <?php echo $radio46 == 'n' ? 'checked="checked"' : ''; ?> />
    Nem b&iacute;zom meg (szeretek a keresked&#337; szem&eacute;be n&eacute;zni) </td>
    <td><input type="radio" name="radio46"value="res" <?php echo $radio46 == 'res' ? 'checked="checked"' : ''; ?> />
    M&eacute;g csak most alakul ki az internetet teljesen elfogad&oacute; koroszt&aacute;ly, ut&aacute;na </td>
    </tr>
    <tr>
    <td height="61">58.</td>
    <td>Ha &ouml;nnek c&eacute;ge van (volna) r&aacute;b&iacute;zn&aacute; mag&aacute;t az internetre, hogy el&eacute;rje a (c&eacute;lk&ouml;z&ouml;ns&eacute;g&eacute;t) a v&aacute;s&aacute;rl&oacute;it?</td>
    <td><input type="radio" name="radio47"value="y" <?php echo $radio47 == 'y' ? 'checked="checked"' : ''; ?> />
    igen</td>
    <td><input type="radio" name="radio47"value="n" <?php echo $radio47 == 'n' ? 'checked="checked"' : ''; ?> />
    nem</td>
    <td><input type="radio" name="radio47"value="res" <?php echo $radio47 == 'res' ? 'checked="checked"' : ''; ?> />
    r&eacute;szben</td>
    </tr>
    <tr>
    <td height="87">59.</td>
    <td>Milyen gyakran rendel az interneten kereszt&uuml;l? (b&aacute;rmit)</td>
    <td><input type="radio" name="radio48"value="y" <?php echo $radio48 == 'y' ? 'checked="checked"' : ''; ?> />
    Gyakran (hetente)</td>
    <td><p>
    <input type="radio" name="radio48"value="n" <?php echo $radio48 == 'n' ? 'checked="checked"' : ''; ?> />
    Nem rendelek</p>
    </td>
    <td><p>
    <input type="radio" name="radio48"value="res" <?php echo $radio48 == 'res' ? 'checked="checked"' : ''; ?> />
    N&eacute;ha (1-2 havonta)</p> </td>
    </tr>
    <tr>
    <td height="87">60.</td>
    <td>Milyen &eacute;rt&eacute;khat&aacute;ron t&uacute;l nem rendel semmit az internetr&#337;l?</td>
    <td><input type="radio" name="radio49"value="y" <?php echo $radio49 == 'y' ? 'checked="checked"' : ''; ?> />
    B&aacute;rmit megrendelek</td>
    <td><input type="radio" name="radio49"value="n" <?php echo $radio49 == 'n' ? 'checked="checked"' : ''; ?> />
    Semmit sem</td>
    <td><input type="radio" name="radio49"value="res" <?php echo $radio49 == 'res' ? 'checked="checked"' : ''; ?> />
    Csak jelk&eacute;pes &eacute;rt&eacute;keket rendelek. (Pizzafut&aacute;r; vonatjegy; rep&uuml;l&#337;jegy.) </td>
    </tr>
    <tr>
    <td height="87">61.</td>
    <td>Mi volt az eddigi legnagyobb &eacute;rt&eacute;k, amit interneten rendelt meg? </td>
    <td colspan="3"><input name="menyirend" type="text" id="menyirend" value="<?php print $menyirend; ?>" size="20" maxlenght="100" />
    HUF </td>
    </tr>
    <tr>
    <td height="40" colspan="2" align="right">
    <input type=submit value="Mehet"></td>
    <td colspan="3">
    <input type=reset value="Mégse"></td>
    </tr>
    </table>
    </form>

    Lehet valamit elnéztem a kódban? :F

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3452 üzenetére

    Szuper.

    Illetve az vajon butaság lenne e, hogy valahogyan megcsinálnám, hogy automatikusan a visszahozás dátumába beállítsa, hogy vissza lett hozva!?
    Ez inkább maradjon manuális ugye? Tehát mondjuk az admin ha visszahoztak egy filmet, akkor egy gombbal be tudja állítani, hogy vissza lett hozva.

  • meone

    tag

    válasz Sk8erPeter #3454 üzenetére

    Csak ennyi hiányzott: "&&" :)
    Akkor a CSS-t majd még ez után csinálom meg először legyen kész ez a script.

    Még akadt egy kis gond.
    Meg csináltam ezt a változtatást, de most akkor is ki írja a szöveget ha nincsen benne érték.

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3445 üzenetére

    Hát akkor ebbe az irányba kezdek el gondolkodni, mert ahogyan én csináltam dátumok alapján egymásba ágyazott selectekkel és vagy 5-6sorban úgy részben lett jó megoldás.

    Egyébként lehet valami éppen aktuális, mai dátumot lekérni valahogyan phpvel?
    Mert akkor kivétel időpontjához azt adnám meg.

  • cucka

    addikt

    válasz Sk8erPeter #3440 üzenetére

    Hogyan tárolsz képet az adatbázisban?
    Például a mysql-ben a különböző blob típusú mezők erre vannak.

    Valószínűleg azért ajánlják mindenhol a link tárolását az adatbázisban, mert csak azt lehet megcsinálni.
    Nem. Azért ajánlják, mert sokkal egyszerűbb megcsinálni.

    ha valaki megcsinálná azt, hogy mondjuk egy jpeg képnek a szerkesztőben látható tartalmát tárolná el adatbázisban, majd úgy hívná elő, hogy abból jpeg-kép szülessen, akkor hááát igencsak ki lehetne nevetni
    Én már megcsináltam párszor, kezdhetsz nevetni.

    Ott adatot tárolsz, nem konkrétan fájlokat, majd ezeket előhívogatod, ahol szükséged van rá.
    Egy file tartalma is adat.

  • cucka

    addikt

    válasz Sk8erPeter #3438 üzenetére

    De mondjuk ez biztonsági szempontból kicsit kevés ellenőrzésnek, nem? De más gépről hogyhogy működhet ugyanaz a Session ID?
    Szerintem fogj egy komolyabb könyvet és olvasd el, hogy hogyan működik a php session kezelése.
    Úgy működhet ugyanaz a session_id, hogy senki sem ellenőrzi, hogy a kliens gépnének nem-e változott az ip címe vagy a user_agent-je. Ha biztonságos rendszert szeretnél, akkor ezt a kettőt ellenőrizni kell.

    a feltörésnél igazából még az nem tiszta, hogy ha tételezzük fel megvan az md5-hash-ed, akkor abból miért nem lehet visszafejteni az eredeti jelszót, ha mindig ugyanazon az algoritmuson alapszik a hash legyártása.
    Azért nem lehet visszafejteni, mert nem lehet visszafejteni. Ilyen a hash algoritmus, ez a lényege, hogy egy irányú. A pontos válaszok nagyon túlmutatnak ezen a topikon, ez a téma a doktori disszertációk és egyetemi kutatások szintje, teljes megértéséhez elég komoly algebrai ismeretek szükségesek. Amúgy ha érdekel a téma, kezdésnek nézd meg az rsa algoritmusát, a wikin például le van írva, hogy pontosan hogyan működik és miért nehéz visszafejteni.

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3440 üzenetére

    Bocs, igazad van. Elég nagy butaságot írtam.

    Másik téma:
    Nekem most egy videotékát kell megcsinálnom. A következő a gondom.
    Ugye ki lehet venni a filmeket és ezt egy kölcsönzés táblában eltárolom, hogy melyik hordozót vette ki, ami egy kulcs és hogy ki vette ki, ami tagsági szám, illetve még a kivitel és visszahozás időpontját tárolom el.
    Kivitel kulcs,illetve a fentebb említett másik kettő kulcs külső.
    Nah az a gondom, hogy csak azokat szeretném megjeleníteni a kölcsönzési listában,amik éppen bent vannak a tékában, ami kölcsönzés alatt van azokat ne mutassa. Ezt sajnos semmilyen lekérdezéssel nem tudtam megoldani, csak részben jó megoldással.
    Valami ötletet tudnál/tudnátok erre adni?

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3425 üzenetére

    Még én sem tudom, hogy az adatbázisba tároljam e a képet vagy csak a linket, de ahogyan olvasgatok utána inkább a link mentését ajánlják többen is.
    Azonban én úgy gondolom nekem egyszerűbb lenne képet tárolni az adatbázisban.

  • cucka

    addikt

    válasz Sk8erPeter #3426 üzenetére

    De ha itt md5-tel ismét "titkosítom" azt a karaktersorozatot, amit a felhasználó bevitt, és az eredményt összevetem az adatbázisban tárolt adatokkal, akkor ezt miért nem tudják ugyanezzel a módszerrel automatizáltan feltörni?
    Már hogy képzeled az automatizáltan feltörést? Végigpróbálod az összes lehetséges jelszót?
    A lényege a dolognak, hogy az md5 (és más hash algoritmusok is) egyirányúak. Ez azt jelenti, hogy nincs olyan algoritmus, ami polinomiális időben tudna egy adott hash-re ütközést találni. Tehát hiába látod a hash-t, a jelszót nem tudod belőle visszafejteni.

    Most ez kábé olyan, mintha nem is lenne titkosítva, mert a bevitelkor úgyis a titkosított
    eredményt veti össze a már korábbban titkosítottal.

    Nem. Először is a hash az nem titkosítás, hanem hash. Más a célja, másra jó. Hiába tudja az illető a hash-t, attól még nem tud belépni az oldaladra, mert ahhoz a jelszót kéne tudnia.

    Hogy érzékeld a különbséget a hash és a titkosítás között: gondolom te is találkoztál már netről letöltött zenével/programokkal, ahol a fileok mellett ott az svf file. Na az pont ugyanilyen hash algoritmussal készül, az svf-ben minden filehoz tartozik egy 32 biten ábrázolt szám. Miután letöltötted a fileokat, ezzel lehet ellenőrizni, hogy valóban helyesek-e az adatok. A hash algoritmusok egyik jellemzője, hogy nagyon "szórnak", tehát ha a bemeneti adatot kis mértékben megváltoztatod, az eredményül kapott hash teljesen más lesz. Ezért jó pl. ilyen ellenőrzésekre. (Igen, elvileg az md5 vagy az sha1 is tökéletesen megfelelő ilyen ellenőrzésekre, de ha nem kifejezetten fontos az egyirányúság, akkor jellemzően megéri valamilyen gyorsabb algoritmust használni)

  • fordfairlane

    veterán

    válasz Sk8erPeter #3426 üzenetére

    Remélem érthető, mire akarok kilyukadni

    Mi a kérdés? :U Hash-t tárolsz, azt veted össze loginnál, oké. Nincs további teendő ezzel szerintem.

  • ArchElf

    addikt

    válasz Sk8erPeter #3426 üzenetére

    A legegyszerűbb módja az, ha megszerzik az authentikációs csomagot. Ha ezt újra be tudják küldni a szervernek és az elfogadja, akkor meg is van a session hijack (pontosabban ez inkább reuse). Az igazi hijack az, amikor a bejelentkezés után a felhasználónak adsz pl egy Session ID-t ami alapján meg tudod mondani, hogy a már be van lépve. A ez a session id pl egy másik gépről is működik (vagy ugyanarról a gépről (kicsit később), az az igazi session hijack.

    Ha pedig egy kívülálló már select-elni tudja az adatbázisod, az rég rossz.

    AE

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3424 üzenetére

    Ja, egyébként a "session lopás"-t hogy kell elképzelni? Hogy tudják megszerezni ilyen módon az adatokat?

    Még egy: (#3420) fordfairlane:
    "de nem érdemes csak emiatt elbonyolítani egy egyszerűbb rendszert."
    Igazából a jelszavak md5-titkosítással történő bevitelével töltöttem kb. a legkevesebb időt. Volt legalább 2 perc, miután megnéztem valahol, hogyan kell, szóval ez tulajdonképpen nem igazán bonyolította el az amúgy igencsak egyszerűnek mondható rendszeremet. :D

    Még ami nem igazán tiszta számomra:
    $nick = addslashes($_POST['user']);
    $pass = md5($_POST['pass']);

    $query = " SELECT DISTINCT * FROM users
    WHERE (nick='".$nick."' AND jelszo='".$pass."'); ";
    //stb.

    Ez egy egyszerűbb módja a jelszó leellenőrzésének, amit bevittek a bejelentkező űrlap elküldésekor.
    De ha itt md5-tel ismét "titkosítom" azt a karaktersorozatot, amit a felhasználó bevitt, és az eredményt összevetem az adatbázisban tárolt adatokkal, akkor ezt miért nem tudják ugyanezzel a módszerrel automatizáltan feltörni? Most ez kábé olyan, mintha nem is lenne titkosítva, mert a bevitelkor úgyis a titkosított eredményt veti össze a már korábbban titkosítottal. :D
    Remélem érthető, mire akarok kilyukadni :B

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3396 üzenetére

    Nekem is elég lesz az md5.
    Nah szépen meg is csináltam faszán a levédéseket bejelentkezést és szétbontottam mit használhat user és admin.

    A következő lépés képek beszúrása a videotékába. Ha ehhez is van hasonlóan jó kis linked akkor szívesen fogadom. Illetve lehetséges, hogy egy kis cssre is lesz mellé időm, azt eddig weblabor-ról nézegettem.

  • fordfairlane

    veterán

    válasz Sk8erPeter #3416 üzenetére

    Most akkor kissé már össze vagyok zavarodva, akkor lényegében azt is mondhatnánk, hogy tök feleslegesek a titkosítások, mert úgyis mindent meg lehet kerülni.

    A hash algoritmus egy titkosítási módszer. A lényege, hogy az eredeti adatfolyamot helyettesítjük egy lenyomattal, ezt hívják hash kódnak. Miért jó az, ha a hash kód van meg az eredeti adatfolyam helyett? Mert a hash kód ismerete, kiszivárgása sem jelent problémát, elvileg a kódból nem lehet egyszerű eszközökkel "kinyerni", visszafejteni az eredeti adatokat. A hash kódokat több helyütt is használják. Ami nem mindegy, hogy mire használjuk, mit akarunk vele meggátolni.

    Gyakorlatilag miért nincs ebben a konkrét esetben jelentősége? Mert a hash kód a leírt rendszerből nem szivároghat ki. Abban az esetben juthat hozzá a hash kódhoz a támadó, ha az adatbázis tartalmát ki tudja elolvasni. Mikor tudja a támadó kiolvasni az adatbázis tartalmát, akár hash kód van benne, akár a plain text jelszavak? Hát elvileg csakis akkor, ha már van közvetlen hozzáférése hozzá. Ha pedig már közvetlenül hozzáfér az adatbázishoz, a jelszavakhoz, akkor valószínűleg egy egyszerűbb site-nál hozzáfér minden adathoz közvetlenül, akár írási joggal. Ebben az esetben a jelszavaknak meg már nincs jelentősége.

    Persze egy olyan rendszernél, ahol a jelszavakat ismerve további járulékos károkat lehet okozni (ugyanazzal a név:jelszó párossal más helyre is be lehet lépni pl.), akkor érdemes inkább hash kódot tárolni, úgy egyébként is ez a korrekt megoldás, de nem érdemes csak emiatt elbonyolítani egy egyszerűbb rendszert.

  • ArchElf

    addikt

    válasz Sk8erPeter #3416 üzenetére

    Elsősorban a jelszavakat a jogosultsággal rendelkező felhasználóktól védik hasheléssel. Avagy a felhasználók érdekeinek védelme a rendszergazda kíváncsisága ellen.

    Tegyük fel, hogy te vagy egy cég tulajdonosa, és alkalmazol egy rendszergazdát. Nem biztos, hogy szeretnéd, ha szabadidejében az ügyfeleid nevében vásárolgatna...

    Ezután képzeld el mindezt egy bankkal. Így már érthető, ugye?

    AE

  • cucka

    addikt

    válasz Sk8erPeter #3416 üzenetére

    Milyen gyorsabb módszerekre kell gondolni? Nem azért kérdezem, mert kódfeltörés lesz a hobbim, hanem érdekel, hogy mi ellen, hogyan szokás védekezni.

    Kezdjük a kályhánál.
    A hash algoritmusok lényege, hogy van nagyon sok fajta különféle bemeneti adatod és ezekhez kell hozzárendelni egy szűkebb halmazból egy elemet. Jelen esetben a nagyon sok fajta különféle bemeneti adat a lehetséges jelszavak halmaza (pl. n..m hosszúságú alfanumerikus stringek), a szükebb halmaz pedig a 128 bites számok halmaza (ezek a lehetséges md5 hash-ek). A hash algoritmus azt csinálja, hogy a bemeneti adatból egy hasht gyárt. Nyilván, az algoritmus több eltérő bemeneti adathoz is kiadhatja ugyanazt a hash kulcsot, ezt hívják ütközésnek. Akkor jó egy hash algoritmus, ha a hash kulcs alapján nem tudsz olyan bemeneti adatot mondani, aminél ütközés lép fel.

    A hash kulcs feltörésének legegyszerűbb módja a próbálgatás, aminek a műveletigénye O(2^n), azaz exponenciális. Ezt gyakorlatilag senki sem használja. Vannak más módszerek is, mint a "rainbow tables", ezekkel lényegesen gyorsabban lehet ütközést taláni, de ez a gyorsaság még mindig több órát vagy napot jelent. Ezen kívül ha jól emlékszem, az md5-höz sikerült találni polinomiális időben lefutó algoritmust, viszont ott a konstans szorzók brutálisan nagyok, tehát szintén lassú (meg kell keressem a forrást, jópár éve olvastam erről, tehát lehet, hogy rosszul emlékszem). Leginkább ezért ajánlják a nagyokosok, hogy md5 helyett sha1-el kódold a jelszavakat.

    Az ütközések keresése elsősorban hitelesítésnél fontos (pl. hitelesített szoftver), ezeknél megérheti a befektetett időt az ütközések keresése. Ha valaki talál egy adatbázist több száz vagy ezer lekódolt jelszóval, akkor ott nem éri meg ezzel tökölni.
    Az ütközés kikerülésének a legegyszerűbb módja a salt, aminek lényege, hogy kódolás előtt a kódolandó adathoz hozzá kell fűzni, így gyakorlatilag hiába talál bárki ütközést a hash értékhez, az eredményül kapott jelszó nem fog működni.

    Összefoglalva: a jelszavak visszakódolása egyrészt nagyon sok idő, másrészt a salt miatt egyáltalán nem biztos, hogy eredményes, tehát ha valaki hozzá is fér az adatbázisodhoz, jó eséllyel nem fogja ezt csinálni. Ezért fölösleges annyit pörögni a témán. Természetesen a hash algoritmusok nagyon fontosak, csak pont ebben a speciális esetben jelenthető ki, hogy nem túl érdekesek.

    A jelszavakhoz való illetéktelen hozzáférést elsősorban phishing oldalakkal szokták csinálni, de mondjuk a session lopás is lehet eredményes.

  • cucka

    addikt

    válasz Sk8erPeter #3411 üzenetére

    A tárgyi tévedések mellett a cikkel a fő probléma a feltételezés, hogy ha egy támadó hozzáfér az adatbázisodhoz, akkor azt fogja csinálni, hogy visszakódolja az ott tárolt jelszavakat.
    A valóság, hogy a jelszavakat nem md5 (vagy más) hash-ek visszafejtésével szerzik meg a rosszindulatú emberek, vannak erre gyorsabb módszerek is. A másik, hogy ha már hozzáfértek az adatbázisodhoz, akkor az a legkisebb problémád, hogy meglátják a kódolt jelszavakat.

    Igazából ez egy elméleti téma, gyakorlatilag meglehetősen haszontalan, tehát ha nem muszáj, akkor nem kell foglalkozni vele, az egyszerű md5 vagy sha1 bőven megfelelő erre a célra.

  • fordfairlane

    veterán

    válasz Sk8erPeter #3411 üzenetére

    Ha már itt tartunk, van esetleg valami hiteles cikk, amit tudnál a témával kapcsolatban ajánlani?

    Melyik témával kapcsolatban? Az MD5-ről elég annyit tudni, hogy egyirányú kódolás, 32 karakteren lehet tárolni, a többit a beépített md5 függvény elintézi. Persze ha valakit érdekelnek a részletek, az megtalálja az algoritmust is, fent van a Wikipédián.

  • fordfairlane

    veterán

    válasz Sk8erPeter #3396 üzenetére

    "Az MD5 ellenőrző számok az angol ábc betűiből (26) és számokból (10) állnak. Ez ugye 32 felvehető érték, 32 karakternél (32 karakteresek az MD5 ellenőrző számok). Tehát összesen 3632 [kb. 1,46 * 1048] lehetséges MD5 ellenőrző szám van."

    Ezt a baromságot... az MD5 egy 128 bites hash, akkor lesznek benne "angol betűk", ha hexadecimális formában írja le valaki, de ugye akkor sem az angol abc betűi, hanem csak 0-9 és a-f-ig. Ilyen pocsék leírásokat nem kéne linkelni.

  • ArchElf

    addikt

    válasz Sk8erPeter #3396 üzenetére

    Mondjuk az a linkelt oldal eléggé sántít. Persze meg lehet (és félre lehet) érten belőle, mi a sózás, és miért van rás szükség. De a magyarázatok, levezetések, ejj mintha egy 14 éves hobbista írta volna. :DDD

    AE

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3394 üzenetére

    Igen, ez csak egy teljesen alap kötelezőprogram lesz, de későbbiekben érdekelni fog komolyabb titkosítás is ha lesz időm, tényleg nem bonyolult a beléptetőrendszer létrehozása.

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3391 üzenetére

    Köszi a gyors választ.
    Igyekszem felfogni és megírni ez alapján.
    Majd még biztosan jelentkezek :)

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3381 üzenetére

    Igen, akkor néztem, hogy mi is az.
    Nem tudom hogyan került oda :D
    Köszi szépen, most nézem, hogy ír e már az adatbázisba, de minden szépen megy :)

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3379 üzenetére

    Írtam picivel előtte, hogy jelszó nélkül is szarakodott.
    De megvan a hiba, volt előtte egy hivásom kapcsolódásra paraméterek nélkül és elkerülte a figyelmemet, ezért sikítozott.
    Köszi a kódot is, egyszerűbb, ahogyan én írtam, inkább ezt fogom használni!!

  • 8nemesis8

    veterán

    válasz Sk8erPeter #3377 üzenetére

    Igazad van, de attól még a hiba ugyanúgy fennáll:(
    root felhasználót kellene lecserélnem esetleg?

    A poén az, hogy írtam egy kis lekérdezést, nem mysql, hanem a táblák lekérdezését végzi az adatbázisban:

    if($eredmeny= @mysql_query("SHOW TABLES FROM videoteka")){
    while($row = mysql_fetch_row($eredmeny)){
    print("<br>" . $row[0]);

    Ez meg tökéletesen kiírja, hogy milyen tábláim vannak, de már azon belül nem tudok dolgozni.

  • Protezis

    őstag

    válasz Sk8erPeter #3364 üzenetére

    Az első redirect felesleges, megoldható nélküle a dolog. Húzd be a másik fájlt (require_once) és egy abban lévő függvénynek passzold át az ellenőrzést.

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3326 üzenetére

    Csak megerősítő kérdés a májsztróktól: az itt leírt kétszer átirányítós, session-ös megoldás véleményetek szerint jó megoldásnak tűnik? Működni működik, de kíváncsi vagyok, hogy oldaná meg egy profi. Vagy legalább hogy mi a véleménye.

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3335 üzenetére

    "Ami hátrány lehet, hogy a könyvet még a PHP5 megjelenése előtt adták ki. (2004. februárban, a PHP5 júliusban jött ki)"
    Korrigálom ezt a hsz.-emet, nem hátrány, mivel a PHP5-ről van benne szó.

    Itt megtalálható az egész könyv online formában!

  • dany27

    őstag

    válasz Sk8erPeter #3337 üzenetére

    Azért írtam mert gondolom azt hogy megtetszik azt letudodd abból is szűrni ha csak beleolvasol! És így nem kell lebattyogni a könyvtárba ;)
    És ha akarod akkor megveszed! Én szerintem megfogom annak ellenére hogy van benne egy két hibás kód de azon gyorsan túl tudom magam tenni.(Mármint a példákban)
    Nem soká kapod privibe csak még megy fel

  • dany27

    őstag

    válasz Sk8erPeter #3335 üzenetére

    Azt hittem hogy ez itt nem kérdés hogy HTML megy-e! :)
    CSS-t annyira nem vágom, de a HTML-ből elég jó szinten vagyok!

    PHP-s könyvet szeretnél kivenni ? Ha kell a PHP5 24 óra akkor dobj egy privit megdumáljuk ;) (Gépen megvan)

  • dany27

    őstag

    válasz Sk8erPeter #3332 üzenetére

    A PHP5 24 óra az megvan csak gépen scannelve és gépen nem szeretek olvasni! Meg elég homályos de elég jól magyaráz!
    Igazából eddig a PHP.net-ről szedtem csak tudod ilyen webes nyelvet nem ismerek még egyet sem így nem tudom hogy mik a lehetőségek a nyelvben!
    Mivel suliba is most kezdtük a PHP-t meg már régóta kacérkodtam vele így nekiállok magamtól mivel suliba nem haladunk színte semmit.
    Haver meg én meg eldolgozgatunk a magunk gyorsabb tempojába azt a tanár már nem is szól érte ha nem azt csináljuk amit a többiek mert leszűri abból amit csinálunk h mi gyorsabban haladunk.

    Mivel ugye az alap programozási tudás adott pascal meg Basic után így nem nehéz haladni ha ismerjük a szintakszisát! Csak ugye ez webes dolog így ebben vannak olyan adottságok amik csak webes nyelvekre jellemzőek!
    Ezért kellene egy olyan könyv ami jól tárgyalja a különböző funkciókat! Szóval nem azt kell el magyarázni hogy mi a for ciklus meg milyen a hátul tesztelős ciklus meg mi az a switch és társai ezeket tudom mivel van más nyelvben is csak max másképp egy kicsit!

    Jah és SQL-el sem vagyok haragban ebből is van egy kis ismeretem...

  • dany27

    őstag

    válasz Sk8erPeter #3330 üzenetére

    Háth igen arra biztos hogy figyelni kell hogy az ember nehogy régebbi verziójut vegyen....
    De akkor a PHP Fekete könyv az kiesik.. Mert az szentem nem PHP5-s mivel az még valamikor 2002be jelent meg! A PHP felsőfokon az még jó lehet csak ott ugyebár az írja hogy konkrét problémákat old meg. Ez tárgyalja PHP különböző parancsait vagy csak konkrét poblémákat olda meg? Mert én még nem vagyok tisztába a PHP parancsai nagy részével csak rendelkezem egy kis programozói gyakorlattal más nyelvekből!

    Ezért gondoltam a PHP5 24 óra alattra mert abban amint láttam azért leírja h melyik parancs mire jó!

    De ha a másikban is benne van és az jobb akkor azt veszem !

  • dany27

    őstag

    válasz Sk8erPeter #3328 üzenetére

    ohh ezer bocs már megint nem használtam a keresőt.....
    Ezek szerint a az agyhullám az csak parasztvakitás!
    Akkor marad a php 24 óra alatt!
    Vagy más ajánlat?
    Kössz!

  • fordfairlane

    veterán

    válasz Sk8erPeter #3317 üzenetére

    Ez a része működik, átlátható, de F5-ös frissítésnél a legtöbb böngésző (Opera 9.64 pl. NEM) megkérdezi, ismét el szeretnénk-e küldeni a POST adatokat. És az elég gáz, ha még egyszer feltölti az adatbázist ugyanazokkal az adatokkal. Ezért is ajánlotta lezso6 a SESSION-ös trükköt. De az gond, hogy nem unsettelem sehol ezt a SESSION-be eltárolt értéket, pedig azt kéne, csak nem tudom, hol.

    Nem biztos, hogy teljesen átlátom a dolgot, de ha jól értem, itt egy egyszerű képfeltöltésről van szó, járulékos adatokkal, és az bonyolítja meg a helyzetet, hogy előnézeti képet is akarsz a felhasználónak produkálni. Én ezt úgy szoktam megoldani, hogy feltöltésnél létrehozok egy átmeneti adatbázis rekordot, amit véglegesítek, ha minden jó, és a felhasználó is leokézza. Ha Mégsem-et nyom,akkor törlök mindent. Másik megoldás, hogy jóváhagyásig sessionben tárolod az adatokat. Ennek tkp. nincs sok köze ahhoz, hogy hogyan strukturálod a kódodat, ez technikai kérdés. POST után ha az adatokat feldogozod, csinálni kell egy átirányítást.

  • válasz Sk8erPeter #3317 üzenetére

    Jade NE csak a session változót állítsd be, hanem azt is, hogy irányítson IS át ugyanoda, mert ez utóbbi nélkül télleg nem lehet sehova se rakni az unset()-et.
    Inkább leírom az egészet, nemtom eddig miért nem csináltam:

    session_start();

    if($_SESSION['siker']) {
    // tehát ez AKKOR fut le, ha már felvetted
    // a cuccokat az adatbázisba, és az átirányítás
    // miatt POSTmentes lett a lekérés, F5-re nem
    // küld újra semmit.

    // SIKER KIÍRÁSA

    $_SESSION['siker'] = false;
    // unset is lehetne, de tökmindegy... :)

    } elseif( JÓK AZ ELKÜLDÖTT ADATOK ) {

    // FELDOLGOZÁS

    $_SESSION['siker'] = true;
    header('Location', $_SESSION['PHP_SELF']);
    // nem fut tovább ugyebár, hanem elölről kezdődik,
    // de már NINCS POST...

    } else {

    // SIKERTELEN, HIBÁS, HIBAÜZENETEK, STB

    }

  • 1ed

    csendes tag

    válasz Sk8erPeter #3314 üzenetére

    Szia!

    Az első két fejezet szerintem elég jól leírja mi az MVC, illetve milyen egyéb fogalmak vannak amik egy kertrendszer esetén szóba jönnek. Vannak példák is, bár van olyan rész ami már symfony specifikus. [symfony-book]
    Esetleg érdemes lehet elolvasni, de komoly MVC keretrendszer használatát (mint pl a symfony) csak akkor javaslom ha van egy biztos OOP-s PHP, adatbázis, programtervezési tudásod, illetve a project nagysága indokolttá teszi.

  • fordfairlane

    veterán

    válasz Sk8erPeter #3314 üzenetére

    Nem tudom, érdemes-e az MVC elméleti részét boncolgatni első programnál. Mi a probléma a programoddal? Ha strukturálatalnul is működik jól, és kezelhetőek a hibák, módosítások, akkor fölösleges sokat agyalni magán a struktúrán. A struktúra szerkezete akkor kezd érdekessé válni, amikor enélkül már átláthatatlan az egész program.

  • válasz Sk8erPeter #3294 üzenetére

    Bocs, elfelejtettem visszanézni a topikba. :B

    Hirtelen most erre a dologra azt tudom mondani, hogy használd az ob_start() függvényt a kérdéses fáj elején, s így akkor küldhetsz headert, amikor csak akarsz, mert pufferbe írja az adatokat elküldés helyett, amit a szkript lefutása után ürít ki, ha ez megold valamit.

    Mert amúgy nem értem mi nem megoldható ezen. :B POST ürítésre a header('Location', $_SERVER['PHP_SELF']); cucc kell ugyebár. Amikor ezt meghívod, sessionbe is beraksz egy változót, hogy törölted a POST cuccokat, majd ezt a változót is törlöd, hogy később ne kavarjon be.

    Ehh fáradt vagyok. :B

    Illetve még annyit tudok ajánlani, hogy nézz utána az MVC-nek, ez biztos segítene a problémádon, csak idő kell hozzá... :U

  • válasz Sk8erPeter #3291 üzenetére

    Kéne pedig használni unset-et, mert amúgy látszólag mindig azt írja ki, hogy sikeres, pedig nem is volt az. Meg még annyi, hogy fentebb írtad, hogy még megkérdezi hogy elküdje-e mégegyszer a postot. Pedig azt nagyon nem kéne neki...

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3290 üzenetére

    bocs, lejárt a mod.
    Ja, de végül is akkor nem is használtam az unset() függvényt, de ebben az esetben, ha átirányítás történik, akkor kell egyáltalán?
    Az oldal tetején ott van a start_session(). A próba alapján nem muszáj, vagy csak épp szerencsém volt, vagy hogy is van ez? :D

  • válasz Sk8erPeter #3288 üzenetére

    szerk: közbe átírtam, mert mégse jó úgy...

    Nem kell a session-be tenni, hanem csak annyit csinálsz, hogyha sikeresen felvetted az adatbázisba a postolt adatokat, akkor csinálsz egy $_SESSION['siker'] = true; trükköt, majd header('Location: ', $_SERVER[''PHP_SELF'');, amivel eltűnik a $_POST, s akkor a $_SESSION['siker'] miatt kiíratod, hogy sikerült, majd unset($_SESSION['siker']).

  • válasz Sk8erPeter #3285 üzenetére

    Hát ez elég gány, akkor inkább a SESSION['post'] vagy valami másba adod meg, s aztán azt unsetteled, nem az egész sessiont. De minek kell ez? fentebb olvastam valami átirányítós dolgot, akkor amiatt kell? És konkrétan mit postolsz?

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3266 üzenetére

    Egyébként igazából ez a böngészőfrissítős dolog azért volt érdekes, mert akkor igazán szép megoldást nehéz találni arra, hogy űrlapokat egy fájlban írassunk dolgozzunk fel, hogy a felhasználó ne küldhesse el minden egyes frissítésnél a korábban megadott adatokat. (nem is lenne biztonságos, így könnyen ki lehetne akasztani az oldalt :D)
    Mivel ebben az esetben a $_POST változók értékeit át kell adni egy másik változónak, és akkor azt vizsgálni:

    $akarmi = $_POST['valami'];
    if ( !empty($akarmi) )
    { //pl. adatbázisba való feltöltés (persze kritériumok teljesülése esetén)
    }
    else
    { //űrlap kiíratása
    }

    Azt viszont ebben az esetben NEM lehet csinálni, hogy:

    if ( isset($_POST['valami']) ) //vagy akár !empty($_POST['valami']) is lehetne
    { //pl. adatbázisba való feltöltés (persze kritériumok teljesülése esetén)
    }
    else
    { //űrlap kiíratása
    }

    Mivel akkor a $_POST-nak nyilván minden egyes böngészőfrissítésnél mindig van értéke, se nem üres (empty), se nem beállítatlan (unset).

    Vagy tudtok valami elegáns megoldást az _első_ példa helyett?

  • 1ed

    csendes tag

    válasz Sk8erPeter #3262 üzenetére

    Helló!
    POST után át kell irányítani egy másik oldalra.
    form -> adatok feldolgozása (itt nincs semmilyen kimenet) -> eredmény kiírása

  • válasz Sk8erPeter #3223 üzenetére

    Nem kötelező paraméter(ek) megadása:

    function foo(bar=null)
    {
    // blah-blah
    }

    A null helyére bármit írhatsz, az lesz az alapértelmezett értéke a paraméternek, ha nem adod meg.

    Ha korlátlan számú paramétert akarsz megadni, akkor a func_get_args() függvény jöhet jól. Ez a a függvény visszaad egy tömböt, amiben a megadott paraméterek vannak. Az első paraméter 0-s indexű, a második 1-es, stb. A func_num_args() függvénnyel a megadott paraméterek számát tudod lekérni. Illetve van még a func_get_arg($index) függvény, amivel az ($index + 1)-dik paramétert tudod elérni.

  • maLakai

    csendes tag

    válasz Sk8erPeter #3198 üzenetére

    Másik fileban feldolgozás szerintem gyakoribb (amit ugye a felhasználó nem igazán lát).
    Inkább akkor látni, hogy az action ugyanoda mutat, ha a kiinduló oldal kimondottan az üzenet írására/küldésére szolgál csak. De szerintem manapság már ezesetben sem a legkedveltebb.

    Szerk: Persze átfogó felmérést nem tettem... Végeredményében, ami kényelmes, ha máshogy megoldod az is ugyanolyan jó. ^_^

  • cucka

    addikt

    válasz Sk8erPeter #3206 üzenetére

    A $_SERVER['PHP_SELF'] használatával óvatos lennék. Tegyük fel, hogy mod_rewrite-ot használsz.
    Például a valami.hu/cikkek/elso_cikk url-ből csinálsz olyat, hogy valami.hu/show.php?cikk_id=123 . Ekkor a PHP_SELF-ben nem a böngésző fejlécében látható url lesz, hanem az, amire a mod_rewrite lecserélte. Ez akkor gond, ha az adott url a mod_rewrite miatt nem hívható meg direktben.

    A html formok amúgy úgy működnek, hogy ha nem állítod be az action paramétert, akkor alapértelmezés szerint saját magára fog átirányítani, tehát jelen esetben az egészet meg lehet spórolni.

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3205 üzenetére

    Hoppá, lejárt a limit, kissé gyorsan írtam, véletlenül szóközt raktam az alsóvonás helyett, sorry, nem tudom, hogy sikerült, tehát a formnál a helyes action:

    action=\"'.$_SERVER['PHP_SELF'].'\"

  • maLakai

    csendes tag

    válasz Sk8erPeter #3196 üzenetére

    Legegyszerűbb és legjobb, hogyha nem ugyanazon az oldalon dolgozod fel az adatokat. :)

    Persze csinálhatsz pl olyat, hogy a küldesz tovább egy random azonosítót is, amiben pl dátum-idő és vmi random bennevan, ezt persze tárolod is adatbázisban, így ellenőrizve az adatbázisból, hogy az el lett-e már küldve, de ez esetben a böngésző még úgy fogja látni, hogy újra post-olsz adatokat és figyelmeztetni fog (a jobb fajta), szóval felhasználói szempontból nem a legszerencsésebb.

  • cucka

    addikt

    válasz Sk8erPeter #3193 üzenetére

    de ezek szerint a tömb értékadásakor mindig a legutolsó tömbelem UTÁN (és a lezáró /0 elé) rakja az adott elemet? (tehát számomra az volt az újdonság, hogy nem írja felül a 0. elemet)
    A $tomb[]=ertek formában megadott tömb feltöltés úgy működik, hogy a legkissebb nemnegatív egész számot használja indexnek úgy, hogy ne írjon fölül semmit. (Tehát üres tömbnél 0,1,2,3.. indexeket fogja használni). A programomban amúgy üres tömböt töltök így fel, tehát nem merül fel a kérdés, hogy fölülír-e valamit.

    És mi a teendő abban az esetben, ha adott esetben túllépi a memóriaküszöböt? Valamint milyen esetben fordulhat ez elő?
    A php a változóidnak foglal le memóriát. Ha túlléped a memóriaküszöböt, akkor ki fogja írni a php, hogy elfogyott a memória.
    Ez esetben át kell alakítsd a programodat, hogy kevesebb memóriát használjon. Például nem tolod be egy tömbbe a teljes adatbázis tábla tartalmát, hanem mindig csak 1 sort kezelsz, ilyesmi. Igazából minden eset más, nem lehet általánosan megmondani, mi a helyes lépés ilyen esetben. Amúgy az én programomat is át lehet írni ilyenre, csak nem akartam fölöslegesen bonyolítani.

    Ha ilyen problémád van, akkor a script által lefoglalt memóriamennyiséget a memory_get_usage() függvénnyel tudod lekérdezni.

    Mod: talán még annyit érdemes megjegyezni, hogy a php memóriakezelése messze nem olyan egyszerű, mint mondjuk c-ben, vannak furcsaságai.

  • cucka

    addikt

    válasz Sk8erPeter #3189 üzenetére

    Nem igazán értem, hol akadtál el. Valahogy így oldanám meg:

    $tomb=array();
    $elozonev=null;
    $res=mysql_query("select * from tablanev order by nev asc");
    while ($row=mysql_fetch_assoc($res)){
    $tomb[]=$row;
    }
    for ($i=0;$i<count($tomb);$i++){
    if ($i==0 || $tomb[$i]['nev']!=$tomb[$i-1]['nev']{
    //nagy kep kiirasa
    print '<img src="'.$tomb[$i]['nagy_kep_url'].'"" />';
    } else {
    //kis kep kiirasa
    print '<img src="'.$tomb[$i]['kis_kep_url'].'"" />';
    }
    if (!isset($tomb[$i+1]) || $tomb[$i+1]['nev']!=$tomb[$i]['nev']){
    print 'Kutya neve: '.$tomb[$i]['nev'];
    }
    }

    A program név szerint abc sorrendben kiír minden kutyához egy nagy képet, n darab kis képet és a végén a kutya nevét.
    A lényeg: végigiterálunk a sorokon és azt figyeljük, hogy mikor érünk el egy új kutya adataihoz. Ha új kutyához érünk, akkor nagy képet írunk ki, különben kis képet. Ha a következő kép már egy új kutyához tartozik, akkor kiírjuk a kutya nevét.
    Az adatok kutyanév szerint vannak rendezve, tehát olyan nem fog előfordulni, hogy egy korábban kiírt kutyához tartozó sorral találkozunk.
    Azért rakom ki a mysql-ből érkező adatokat egy tömbbe, mert az iteráció során szükségem van az előző és a következő sorra is. Feltételezem, nincs több százezer sor a táblában, így nem fog gondot okozni a script futtatása. (A lehetséges probléma az lehet, hogy nem elég a php programnak engedélyezett memóriamennyiség, ami általában 16 mega.)

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #3189 üzenetére

    Az a rész már megvan, hogy egy tömbbe le tudtam kérni a kutyák neveit, és megtisztítani a duplikátumoktól, ez nem volt túl nehéz.
    Ha egy külön while-ciklusba betenném, hogy pl. amíg ez a tömb első eleme megegyezik a "név" adatmezőben található névvel, amelyik adatsornál a táblából épp jár a "while ($result = mysql_fetch_assoc($query))", addig mutogassa az 50px-es képeket, az nem lenne jó?
    Egyelőre érdekelne, hogy valami ilyesmi gondolatmenet nem lenne-e célravezető. :F

  • ArchElf

    addikt

    válasz Sk8erPeter #3187 üzenetére

    Ez egy kicsit tagging kérdés...
    Hogy először ne a technikai részével foglalkozzak: szerintem egyrészt célszerű előre feltölteni egy tag táblát, ami tartalmaz neveket (ebben az esetben kutyaneveket), a felhasználó a képfeltöltéskor megadhatja a nevet és rakhat hozzá tag-eket is.
    A tag-ek hozzáadásánál használhat privát és pubikus tag-eket, a meglevő listát bővítheti is.

    Technikailag első blikkre így képzelném el:
    A Tag tábla:
    tag azon. | tag név | típus (publikus / vagy felhasználóvév)

    Kép tábla:
    azonosító | megjelenítendő név | kép adatok...

    KT (kép/Tag) kereszttábla:
    Kép azon | Tag azon.

    Megjelenítéskor:
    Kép azonosító kinyerése, tag-azonosítók kikeresése és monjuk egy

    Select * From Kep Where kep_az IN
    (Select kep_az From KT Where tag_az IN
    (Select tag_az From KT Where kep_az = @kep_az))

    Esetleg még bele kell hegeszteni egy aggregációt, hogy az eredeti és a Tag-ek alapján megtalált kép között mennyi közös Tag van és csökkenő sorrendbe lehessen tenni.

    AE

  • biker

    nagyúr

    válasz Sk8erPeter #3184 üzenetére

    submit nélkül az 1.0 user nem tud mit csinálni. az neki kész blokk. nem lehet elküldeni, és ennyi :(

    Én valakinek tegnap telefonba magyaráztam, hogy oldalra is lehet ám görgetni, nem csak fel le, és tegye meg, akkor majd látja a kép maradékát.
    és közben ne legyek túl ideges, igaz? :)

  • Tele von Zsinór

    őstag

    válasz Sk8erPeter #3143 üzenetére

    MySQL esetében nem ajánlott a perzisztens kapcsolat, maradj a sima _connect()-nél.
    Kapcsolatot bezárni szép, de ha úgyis a scripted végére tennéd, felesleges: a futás végén a php felszabadít minden erőforrást, így a kapcsolatot is. Használata ott ajánlott, ahol sok konkurrens felhasználó van: gyorsan összeszeded adatbázisból, ami kell, zárod a kapcsolatot, és csak utána foglalkozol a kiiratással.

  • PazsitZ

    addikt

    válasz Sk8erPeter #3141 üzenetére

    Nem ismerem kifejezetten, de amire pl felhívja a figyelmet: "Ensure that you do not exceed the number of connections allowed by MySQL."
    itt alul megtalálod az esetleges hátulütőit
    pl.:
    Esetleges bug (végtelen ciklus) esetén beakad a szál, hamar elfogy az összes kapcsolati szál.
    Ha a script valamiért hosszabb időre lock-olja a táblát/sort akkor elérhetetlenné válik.

  • PazsitZ

    addikt

    válasz Sk8erPeter #3110 üzenetére

    Esetleg próbáld ki ezt:

    function chere($txt){
    $mit = array("á","é","í","ó","ö","ü","ű","ú","Á","É","Í","Ó","Ö","Ü","Ű","Ú","ä","Ä" );
    $mire = array("a","e","i","o","o","u","u","u","A","E","I","O","O","U","U","U","a","A" );
    return(str_replace($mit,$mire,$txt)) ;
    }

  • PazsitZ

    addikt

    válasz Sk8erPeter #3108 üzenetére

    Most nézem csak, hogy mire is akarod használni.
    Én direkt nem szenvedtem hasonló esetben az ékezetekkel, url-be amúgy sem illik ékezetet rakni.
    Én így oldottam meg a dolgot:

    mb_ereg_replace("/[^a-z0-9]/i",'_',$filename)

    Azaz a filenévben csak betűt és számot engedek, minden más alulvonás lesz a névben.

  • Tele von Zsinór

    őstag

    válasz Sk8erPeter #3068 üzenetére

    Nem böngészőfüggő, a php kód a szerveren fut :)
    Nálam ilyen egy próbafuttatás:

    tibia@sziget:~$ php --run 'echo iconv("utf-8", "us-ascii//TRANSLIT", "Gyémánt") . "\n";'
    Gye'ma'nt

    a fontos különbség: iso-8859-1 vs. us-ascii. Előbbi esetén nálam is furaság lesz a végeredmény :)

    A preg_replace()-s sor, amit bemásoltál eltávolítja a nekem nem kellő karaktereket (url komponenst állítok elő), azaz mindent, ami nem szám vagy betű. Utána jön az iconv, majd megint egy preg_replace, hogy az iconv által berakott felesleget eltávolítsa. Emiatt elnézésed kérem, korábban azt mondtam, elég az iconv az ékezetek eltávolításához, de kell mögé az a preg_replace is.

  • Tele von Zsinór

    őstag

    válasz Sk8erPeter #3061 üzenetére

    Miért olvas ki a fájlból esetlegesen rossz információt?

    Nem arról van szó, hogy a böngésző szúrja el, bár erre is láttam már példát; sokkal valószínűbb az, hogy egy rosszindulató látogató hamisít bele. Ha csak a mime alapján ellenőriznél, akkor mondjuk fel tudna tölteni egy .php filet, ha azt mondja, image/jpeg. Innen általában egyszerű kisakkozni, hova lett mentve és voilá: saját php kódját futtatja a te szervereden.

    Az ékezetes, egyéb karakterekre valami ilyesmit ajánlok:

    static public function slugify($text)
    {
    // replace non letter or digits by -
    $text = preg_replace('~[^\\pL\d]+~u', '-', $text);

    // trim
    $text = trim($text, '-');

    // transliterate
    $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);

    // lowercase
    $text = strtolower($text);

    // remove unwanted characters
    $text = preg_replace('~[^-\w]+~', '', $text);

    if (empty($text))
    {
    return 'n-a';
    }

    return $text;

    }

    (forrás)

    Ha van iconv modulod, ez a legjobb megoldás: utf8-ból alakít sima ascii-vá úgy, hogy transliterál (van erre magyar kifejezés? :) ), azaz az á-ból a-t csinál, de a ä-ból is, ë -> e, ç -> c, satöbbi.

  • Tele von Zsinór

    őstag

    válasz Sk8erPeter #3052 üzenetére

    Úgy emlékszem, képfeltöltésről van szó, legalábbis korábban esett itt szó az átméretezéséről.
    Ahogy írták már, a böngésző által küldött mime megbízhatatlan. Ha azt akarod ellenőrizni, kép-e, használd a getimagesize() függvényt, képnél értelmes eredményt ad vissza, minden másnál hibát.

  • válasz Sk8erPeter #3052 üzenetére

    Ahogy cucka is mondta, több szempontból se jó a módszer.

    De amúgy a többféle MIME ellenőrzéséhez az ilyesmi jó, és átlátható:

    $valid = array(
    'image/jpeg',
    'image/pjpeg',
    'image/gif',
    'image/png',
    );

    if(in_array($tipus, $valid)) {
    // yada-yada-yada
    } else {
    // error
    }

  • cucka

    addikt

    válasz Sk8erPeter #3052 üzenetére

    Rossz a feltételed.

    Egyrészt amit írtál, az a megadott string-eken logikai vagy műveletet végez, majd megnézi, hogy az eredmény egyenlő-e a típus változóval. Próbáld inkább így.

    if ($tipus == 'application/octet-stream' || $tipus=='application/zip' || $tipus=='application')

    Másrészt létezik párszáz mime típus, amiből neked csak 3-4 típus a megfelelő, tehát inkább azt ellenőrizd, hogy beletartozik-e abba a 3-4 típusba, mint hogy azt, hogy beletartozik-e a maradék párszázba.

    Harmadrészt a mime típust a kliens küldi, tehát megbízhatatlan. Javaslom, inkább a file kiterjesztése alapján ellenőrizz. Ha valaki rossz kiterjesztésű file-t tölt fel, akkor így járt.

  • válasz Sk8erPeter #3048 üzenetére

    Ja hogy van erre szakosodott függvény? Há' akkor használd azt.
    Hibakezelésnek meg használd azt, ami legjobban bevált.

    Vagy ha elegánsan akarod megoldani, akkor ezt: Kivételkezelés

  • cucka

    addikt

    válasz Sk8erPeter #3043 üzenetére

    Hibakezelésre az előttem leírt megoldás is jó, de kivételkezeléssel is megoldhatod, ami szerintem valamivel elegánsabb is :)

  • válasz Sk8erPeter #3043 üzenetére

    Hibakezelésre szerintem nem én ajánlottam a módszert, de egyszerűbb szkriptben megteszi ez is. Én amúgy ilyen sok kis

    if (hiba) {
    return hibakód;
    }

    sorokat szoktam használni ellenőrzésre, amik függvényen vagy includolt szkripten belül használhatóak. A hibakezelés a függvényt hívó (vagy fájlt includoló) szkriptben történik.

    Kiterjesztés visszarakásnál az a legcélszerűbb, hogy levágás előtt a substr() függvénnyel megjegyzed a kiterjesztést, oszt visszarakod amikor kell, így nem kell vele foglalkoznia a szkriptednek, fogalma se lesz róla, hogy milyen kiterjesztésű fájlokkal dolgozik. :)

  • válasz Sk8erPeter #3041 üzenetére

    bináris = nyers, vagyis alapjában véve ugyebár egy tempfájlba tölt fel, aminek a nevét $_FILES[{inputname}]['tmp_name'] változóból éred el, s abban van a bináris. Most nézve a file_put_contents()-em gyakorlatilag hülyeség, szóval mást használj helyette, a fájlnév a régebb megadott átnevező-algoritmus $file változójában van. Pölö lehet move_uploaded_file() azonnal átmenteni, vagy az imagesave()-vel menteni, ha már be van olvasva GD-be.

  • válasz Sk8erPeter #3038 üzenetére

    UTF8-at szerintem valahogy csak meg lehet oldani, de a mikéntjéről fogalmam sincs. :B

    A fájltípust (MIME) a $_FILES tömbből is elő tudod varázsolni, én úgy szoktam. [L:http://www.php.net/manual/en/features.file-upload.post-method.php][/L]

  • válasz Sk8erPeter #3037 üzenetére

    1.)
    Az 010101110101011010111010101011011110 alatt a képet értettem bináris formában. Tehát magát a képet, mint adat, feltöltés esetében ugyebár ez a $_FILES tömbben van.

    2.)
    Igen, pontosan ezt csinálja. :)

  • válasz Sk8erPeter #2951 üzenetére

    Valami ilyesmire lesz neked szükséged:

    $image = '010101110101011010111010101011011110';
    $file = 'kép.jpg';
    $name = substr($file, 0, strrpos($file, '.')); // kiterjesztés levágása
    $file = $name;

    $i = 1;
    while(file_exists($file)) {
    $i++;
    $file = $name . '_' . $i . '.jpg';
    }

    file_put_contents($file, $image);

    Most hirtelen hasból ennyire futotta, lehetne még rajta okosítani.

  • Balint133

    aktív tag

    válasz Sk8erPeter #2951 üzenetére

    Szia, nem tudom, h az a script pontosan h néz ki, de a

    file_exists()

    függvénnyel meg tudod nézni, hogy már létezik e.
    klikk

  • válasz Sk8erPeter #2862 üzenetére

    Nem, csak az volt, hogy ciklusba voltak ágyazva az include-ok, kábé így:

    while(iteráció) {
    include('ugyanaz a fájl.');
    }

    Én hülyeségem. :B

    HTML űrlap generálás miatt kellett, s nem ilyen volt hanem sok egymásba ágyazott ciklus, így állandóan a winyón kellett kaparnia 17 fájl után, amiből néhányat akár 70x is be kellett ágyazni. Írtam egy osztályt, ami gyorsítótárazva ágyaz be, azaz ha valamit beágyaz, akkor beírja egy változóba is a benne lévő php scriptet, majd ha mégegyszer be kéne ágyazni, akkor már a memóriából olvassa be a scriptet, s eval-lal újra lefuttatja. Persze a szkript lefutása után törlődnek a cuccok a memóriából, így ezzel "csak" 5x tempót értem el, ami még mindig 2x lassabb az egy fájlos módszernél, úgyhogy fogtam magam és becache-eltem egy fájlba az egész generált űrlapot (ami 200x gyorsabb), oszt kész, az úgyis ritkán változik :U

    class Cached_Include {
    private static $_cache;

    public static function inc($inc, &$importVars)
    {
    $inc = dirname(__FILE__) . '/' . $inc;

    if(!self::$_cache[$file]) {
    self::$_cache[$inc] = '?>' . file_get_contents($inc) . '<?';
    }

    extract($importVars, EXTR_REFS | EXTR_SKIP);

    eval(self::$_cache[$inc]);
    }

    public static function save()
    {
    file_put_contents('cache.txt', serialize(self::$_cache));
    }

    public static function load()
    {
    self::$_cache = unserialize(file_get_contents('cache.txt'));
    }
    }

    Sebességek amúgy:

    sok fájl, no optimalizálás: 1200-1500ms
    sok fájl, cachelt include: 180-200ms
    egy fájl (minden ebben van): 80-100ms
    cachelve az egész hóbelevanc: 1-10ms :DDD

  • Tele von Zsinór

    őstag

    válasz Sk8erPeter #2862 üzenetére

    Helyesbítek: a fileműveletek lassúak. Ha 1-2-10 includeod van csak, ez nem fog feltűnni, ha sokkal több, akkor viszont már jelentős visszafogó tényező.
    Például a symfony framework ez ellen úgy védekezik, hogy cacheli a teljes core rendszerét egyetlen masszív php fileba, így éles rendszerben csak az van includeolva.

  • válasz Sk8erPeter #2848 üzenetére

    Hát én valami PHP könyvet ajánlanék, lehetőleg PHP5öst, pl a Tanuljuk meg 24 óra alatt a PHP-t az kezdésnek jó, beavat mindenbe ami kell a problémád megoldásához. Ha esetleg tudsz angolul, akkor meg neten találsz rengeteg e-book-ot pdf-ben. Dummies sorozatot ajánlom még nagyon - a stílusa miatt. :))

Új hozzászólás Aktív témák

Hirdetés