Új hozzászólás Aktív témák
-
fordfairlane
veterán
válasz
#68216320 #18085 üzenetére
Ti milyen megoldást használtok ilyen esetben?
A kettő nem zárja ki egymást. Kezelheted a form kirajzolását, a form submitot és a hibakezelést egy helyről, egy handlerből, de a részműveletek több helyen. Itt kettészedtem nézetre és minden másra. Természetesen ez így még mindig nagyon kezdetleges, de remélem, átjön a lényeg, és az újraküldés ellen védett.
form_handler:
<?php
$form_errors = array();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// validálás
$form_errors["email"] = "Ez az email már foglalt";
$if(!count($form_errors)) {
// mentés
// ...
header("Location: " . $_SERVER["SCRIPT_NAME"] . "?success=1");
exit;
}
}
$success = isset($_GET["success"]?true:false);
require_once("form.php");form.php:
<?php
<?php if(success): ?>
A regisztráció perfektül organizálódik.
<?php endif; ?>
<form method="post">
<input type="text" name="email">
<?php if(isset($form_errors["email"])): ?>
<div class="errorlabel"><?=htmlspecialchars($form_errors["email"])?></div>
<?php endif; ?>
</form> -
Sk8erPeter
nagyúr
válasz
#68216320 #18085 üzenetére
Az első mindenképpen ocsmány megoldás, mivel így nem válik szét a megjelenítés és az adatok validálása, feldolgozása, adatbázisba írása (meg hasonló műveletek). A form kiírásának semmi köze nem szabadna, hogy legyen ahhoz, hogy aztán mit kezdesz az adataiddal. Szóval mindenképp válaszd külön a kettőt. Ezért szokás szétválasztani a különböző rétegeket (lásd MVC-szemlélet és társai).
Új hozzászólás Aktív témák
- Bomba ár! HP Zbook 15 G5 - i7-8750H I 32GB I 512SSD I Nvidia P2000 4GB I FHD I Cam I W11 I Gari!
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512GB SSD 1TB HDD GTX 1060 6GB Zalman N5 MF ADATA 600W
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
- iKing.Hu - Samsung Galaxy Tab S8 Graphite Használt, karcmentes állapotban
Állásajánlatok
Cég: FOTC
Város: Budapest