Keresés

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

  • fazr

    senior tag

    válasz Tele von Zsinór #8268 üzenetére

    Köszi a részletes választ és a PDO-s írásodat is elolvasom hamarosan.

    (#8267) Sk8erPeter Nem vettem észre, hogy törölted :D Mindegy.

  • fazr

    senior tag

    válasz Sk8erPeter #8264 üzenetére

    Egy egyszerű példa:

    akarmi.php utf-8 kódolású fájl:

    <?php

    // ha ez nincs itt akkor is rossz sima strlen()-nel
    header("Content-Type: text/html; charset=utf-8");

    $str = "é";

    echo strlen($str) . "<br />"; // 2-t ad vissza
    echo mb_strlen($str, "utf-8"); // 1-et ad vissza

    ?>

    (#8265) Athlon64+:
    Prepared statementtel kapcsolatban kérdezném, hogy mellette kell használni a mysql_real_escape_string-et? Ha manualból jól értem, akkor kell.

    köszi mindkettőtöknek

  • fazr

    senior tag

    válasz CSorBA #8261 üzenetére

    Így már jó, köszi. Látszik, hogy még sokkal jobban meg kell ismernem a nyelvet :)

    (#8262) mobal: 6-nál nem is gondoltam erre, egyszerűbb az én verziómnál :)
    Köszi a válaszokat.

    Esetleg ha valakinek van még hozzáfűznivalója/tanácsa, akkor szívesen várom.

  • fazr

    senior tag

    Sziasztok!

    Lenne néhány kérdésem. Előre is bocs, ha valamelyik hülyeség, nem régóta kezdtem el foglalkozni php-val.

    1, Ha Sessionnel csinálok beléptetést és azt akarom, hogy a böngésző újbóli megnyitásakor is bejelentkezve maradjon a felhasználó, akkor ezt gondolom cookieval kell megoldani.
    A kérdés az lenne, hogy ilyenkor mit kell tárolni a cookieban? Hogy kell megoldani?

    2, Gondolom a fájl és a tartalom kódolásánál UTF-8 lenne a kézenfekvő, de mégsem jó.
    Pl az strlen() az ékezetes karaktereket duplán számolja. ANSI fájlkódolással és Latin2 charsettel már tökéletes.
    Utóbbival annyi bajom van csak, hogy ha esetleg nemzetközi oldalt csinálok, akkor lehet kevés a Latin2.

    Ezekkel összefügg a mysql karakterkészlete? Úgy értem, hogy amilyen kódolást használok a php fájloknál, ugyan azt kell használni az érintett tábláknál is?

    3, Olvastam több helyen, hogy már nem ajánlott sima mysql_* parancsokat használni adatbázis kapcsolódásra és parancsok végrehajtására. Mit ajánlotok? Mysqli-t PDO-t, vagy mást?

    4, Ha valamilyen mysql hiba lép fel, akkor érdemes az eredeti hibaüzenetet elnyomni és kiírni egy szűkszavú sajátot (azt ami a felhasználóra tartozik), vagy ez nem okoz sebezhetőséget és csak esztétikai szerepe van? Az eredetit persze én meg tudnám nézni (email/log, vagy valami ilyesmire gondoltam, vagy ha van jobb, akkor kiváncsian várom).

    5, SQL injection ellen hogy lehet hatásosan védekezni? A metódus belseje "összetömörítve":
    if( function_exists( "mysql_real_escape_string" ) ) {
    if( get_magic_quotes_gpc() ) { $value = stripslashes( $value ); }
    $value = mysql_real_escape_string( $value );
    }
    return $value;

    Ha valamivel ki kell egészíteni, akkor légyszíves írjátok le mivel és milyen módon.
    Ugye minden esetben el kell ezt játszani (meghívni a metódust), amikor adatbázishoz nyúlok? Pl regisztáció, hozzászólás írás, bejelentkezés és egyéb űrlapok mellett még mikor kell?

    6, Regisztráció után aktiváló email kivitelezése így mennyire jó? Nagy vonalakban:
    - Generálok egy kódot, amit mentek adatbázisba (ezt a felhasználók táblájába kell, vagy érdemes máshol kezelni?), valamint elküldöm az illetőnek emailben (pl link formájában)
    - Csinálok egy feldolgozó php fájlt, ami get metódussal kapja meg az adatot az aktiváló linkre kattintva (itt /is/ gondolom védekezni kell sql injection ellen) és ha sikerült az aktiváció, akkor true-ra kell állítani a felhasználók táblában lévő activated mezőt.

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

Hirdetés