ugrás a tartalomhoz

Hogyan ellenőrizzem, hogy még nem jött űrlap adat?

Sovereign · 2006. Nov. 24. (P), 17.31
Van egy ürlapom amin adat ellenörzést végzek. A problémám az lenne, hogy amint lefuttatom kidobja, hogy minden adat hibás - hiszen még nincsen kitöltve -.
Kérdésem:
Meg lehet vhogy oldani a php kód futásának felfüggesztését addig amíg nem klikkelek az elküldre.

Másik:
Próbáltam úgy, hogy egyik oldalon van maga az űrlap. Klikkelek elküldi egy másik oldalra adatellenörzés céljából. Ez a végeredménytől függően vagy elküldi az űrlap tartalmát a harmadik oldalnak ami feltölti az adatbázist vagy vissza küldi az űrlap oldalnak. A helyesen megadott adatokat vissza írja a többit nem. És persze kiírja, hogy mi a hiba. A hibákat egy tömbe gyűjtöm az ellenörző oldalon.

A segítséget előre is nagyon köszönöm!
 
1

Ellenőrizd, hogy elküldték-e

Dualon · 2006. Nov. 24. (P), 18.22
Ezt úgy szoktuk csinálni, hogy ellenőrizzük, megvolt-e a submit.
Egyik módja például:

<form action="felallomany.php" name="fKedvencUrlapom" method="post">
<label for="mezo_azonosito">Tőccséki</label> <input type="text" name="fMezo" value="" id="mezo_azonosito" />
<input type="submit" name="fSubmit" value="Elküldés" />
</form>
A php kód szerepelhet ugyanazon állományban, meg külön is. Ilyenkor igazából nem felfüggeszted a futását, hanem meghívásra kerül (újból).
if (isset($_POST['fSubmit'])) {
// itt jön az űrlap ellenőrzése
}
(Ha nem nagy teher, szerintem többen is örömmel fogadnánk, ha kiírnád a magyar szavakat! Pl. vhogy legyen inkább valahogy. Kösz előre is!)
2

válasz

Sovereign · 2006. Nov. 25. (Szo), 11.43
Működni működik így. Csak egy probléma van. Nem küldi sehova az ürlapot. Hisz, hogy működjön előbb jön az űrlap majd az ellenörzés. De az ellenörzés során kap az action értéket. De ezzel az értékkel nem tud semmit kezdeni mert korábban szerepel a programban.
3

mostakkormivan?

Dualon · 2006. Nov. 25. (Szo), 11.51
Megtennéd, hogy ezt leírod még egyszer, kicsit érthetőbben, vagy esetleg példákkal illusztrálod? :)
4

válasz.

Sovereign · 2006. Nov. 25. (Szo), 15.06
Először is megvizsgáltatom, hogy ráklikkeltek e már a küldésre. Ha nem akkor jön az űrlap kiiratása. Form action részébe kiiratom a $ref változót. Melyben két érték szerepelhet. upload.php - ha minden helyesen van kitöltve - ha valami nem jó akkor $_SERVER[PHP_SELF].
A ref változó csak az ellenörzés során kap értéket.
IF űrlappal minden rendben $ref = 'upload.php';
ELSE
valami hiba van $ref='$_SERVER[PHP_SELF]';

Kicsit vizualizálva:

<?php
print "<from>
beviteli mezők
</form>";
IF függvények hívása mezők ellenörzése végett
$ref értéket kap
?>
Mivel sorban megy a program ezért a $ref változó óval az action után kap értéket. Így ha kinden jól van kitöltve nem fut le még egyszer a program. Vagyis a $ref tartalma nem jut el az action-höz.

Remélem világos voltam.
5

Remélem világos voltam.

Anonymous · 2006. Nov. 25. (Szo), 20.17
Ha jól értem, akkor ez teljesen elhibázott szemléletmód, ha meg nem sértelek. Formot, és annak kiértékelését nem így végezzük.
Hanem így:
if( nem üres a $_POST tömb ) {
   értékelés
   if( hibás adatok vannak ) {
    Hibaüzenetek generálása
   } else {
    Adatfeldolgozás
    Header("Location: eredmeny oldal");
    exit;
   }
}
<from method="post">
beviteli mezők, submit gomb
</form>
Gyulus
6

válasz

Sovereign · 2006. Nov. 26. (V), 08.26
Minden építő jellegű kritikát szívesen fogadok!