Hirdetés

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

  • #68216320

    törölt tag

    válasz Peter Kiss #18084 üzenetére

    Persze, természetesen fent van. Amikor az exe fájlt indítottam kereste is, feltettem, most nem ad hibaüzenetet.
    Tehát elméletileg fut. Bár nem tudom exe futásakor hogyan tudom apache nélkül tesztelni.

    Más:
    Amikor mondjuk egy regisztrációs űrlapot készítetek milyen megoldással kezelitek a megadott adatokat és hibákat? Én két megoldást tudok, de kíváncsi lennék a megfelelőre :)

    1.
    Az űrlap, az adatok ellenőrzése, a feldolgozása ugyanabban a PHP fájlban van. Leegyszerűsítve valahogy így nézne ki:

    if( ha vannak adatok ellenőrzöm ) {
    ...
    if( hiba1) {
    $formView=true
    $errorMessage[]=hibaüzenet
    }
    if( hiba2) {
    $formView=true
    $errorMessage[]=hibaüzenet
    }
    ...
    }
    else {
    formView=true
    }

    if( formView===true ) {
    formot megjelenítem, esetleges $errorMessage tömböt kiírom
    }
    else {
    kapott adatokat feldolgozom
    feldolgozás utáni üzenetet megjelenítem
    }

    2.
    Az űrlap és az ellenőrzés/feldolgozás külön PHP fájlban van

    form.php

    <form method="post" action="task_form.php">
    ...
    </form>

    task_form.php

    kapott adatok ellenőrzése ...
    if( hiba1 ) {
    $_SESSION['formErrors'][] = hibaüzenet
    }
    if( hiba2 ) {
    $_SESSION['formErrors'][] = hibaüzenet
    }
    ...

    if( ! empty($_SESSION['formErrors']) )
    $location = $_SERVER['HTTP_REFERER']
    else {
    adatokat feldolgozom
    $location = következő oldal címe
    }

    $loc = sprintf('Location:%s', $location )
    header($loc);

    Igazából nem tudom melyik lenne az ideális, már ha bármelyik is annak nevezhető.
    Az első kényelmesebb, viszont a browser frissítés gombra újra elküldi az adatokat, amit ugyan kezelhetek, de akkor sem tetszik igazán.
    A második ezt kivédi, mert hiba esetén ugyan visszadja az űrlapot újra, de üresen (persze session-al tehetek vissza értéket) és frissítésre csak újra megjeleníti, nincs küldés. Cserébe viszont macerás.

    Ti milyen megoldást használtok ilyen esetben?

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