Regisztrációs űrlap PHP-ban
Regisztrációs űrlapot készítek és van egy kis problémám. Ürlap küldésekor a progri ellenőrzi, hogy minden adat ki van a töltve és egyezik e a jaleszó (jelszó jelszó mégegyszer).
Nem szeretném elkülöníteni az űrlapot és az ellenörzést. Ám amint betölt az oldal lefut a PHP kód is. Mivel ekkor még nincsen kitöltve az űrlap kiírja, hogy nincs minden adat megadva. Ez nem is lenne baj. Ám! (Az ellenőrzés egy szimpla if) ha igaz - vagyis ki van töltve rendesen - akkor továbbítania kell az adatokat egy másik lapnak ami feltölti az adatbázist. Ha hamis - nem megy sehova - . A probléma az, hogy bárhogy variálom az igaz vagy a hamis ág utásítását két dolog lép történik. Vagy elküldi ha ki van töltve ha nem. Vagy
nem küldi el.
A kérdésem. Meg lehet vhogy állítani addig a program futását amíg nem klikkelek rá a regisztrál gombra?
Próbáltam egy onclick-et beiktatni. Sikerem nem volt. Kicsit utána néztem neten de minden hol javascript-et hívnak meg az onclick-nél. PHP-vel meg lehet oldani vagy minden képpen java script kell - amihez egyenlőre egyáltalán nem értek :( -
Elnézést, hogy ilyen nagyra sikeredett! :D
■ Nem szeretném elkülöníteni az űrlapot és az ellenörzést. Ám amint betölt az oldal lefut a PHP kód is. Mivel ekkor még nincsen kitöltve az űrlap kiírja, hogy nincs minden adat megadva. Ez nem is lenne baj. Ám! (Az ellenőrzés egy szimpla if) ha igaz - vagyis ki van töltve rendesen - akkor továbbítania kell az adatokat egy másik lapnak ami feltölti az adatbázist. Ha hamis - nem megy sehova - . A probléma az, hogy bárhogy variálom az igaz vagy a hamis ág utásítását két dolog lép történik. Vagy elküldi ha ki van töltve ha nem. Vagy
nem küldi el.
A kérdésem. Meg lehet vhogy állítani addig a program futását amíg nem klikkelek rá a regisztrál gombra?
Próbáltam egy onclick-et beiktatni. Sikerem nem volt. Kicsit utána néztem neten de minden hol javascript-et hívnak meg az onclick-nél. PHP-vel meg lehet oldani vagy minden képpen java script kell - amihez egyenlőre egyáltalán nem értek :( -
Elnézést, hogy ilyen nagyra sikeredett! :D
nem ért
onsubmit
Sztem ...
<form>
...
<input type="submit" name="reg_submit" value="Regelek"/>
</form>
<?PHP
if ( $_POST["reg_submit"] )
{
Adatok ellenőrzése, megfelelő műveleket végrehajtása ...
}
else
{
Ide jön a form kiiratása
}
?>
A megoldást én még annyival szoktam kiegészíteni, ha hibás adat van, akkor visszatölti a formot, a POST-olt adatokat pedig visszailleszti a megfelelő helyre és a form előtt megjeleníti a hibákat, hogy tudja a user, hogy mit kell javítani ...
igen: sztem
Hibaüzenet
Nem kell tömb ...
KÖSZÖNET!
Megnézem mi sül ki belőle :)
Hát....
Itt a kód:
<html>
<head>
<title>Regisztráció</title>
</head>
<body>
<?php
if ( $_POST['submit'] = 'Regisztrál' )
{
if (empty($_POST['user']) && empty($_POST['pass']) && empty($_POST['rpass']) && empty($_POST['vnev'])
&& empty($_POST['knev']) && empty($_POST['city']) && empty($_POST['address']) && empty($_POST['iranysz'])
&& empty($_POST['email']))
{
// header('Location: '.$url);
$hiba = 'Nincs minden adat megadva!';
}
else
{
// $hiba = 'Nincs minden adat megadva!';
header('Location: '.$url);
}
}
else
{
print $hiba;
}
print "<form method='POST' action=''>
<table width='100%' border='0' cellspacing='1' cellpadding='0'>
<tr>
<td>Felhasználói név:</td>
<td><input type='text' name='user' values''</td>
</tr>
<tr>
<td>Jelszó:</td>
<td><input type='text' name='pass' values''></td>
</tr>
<tr>
<td>Jelszó újra:</td>
<td><input type='text' name='rpass' values''></td>
</tr>
<tr>
<td>Vezeték név:</td>
<td><input type='text' name='vnev' values''></td>
</tr>
<tr>
<td>Kereszt név:</td>
<td><input type='text' name='knev' values=''></td>
</tr>
<tr>
<td>Város</td>
<td><input type='text' name='city' values=''></td>
</tr>
<tr>
<td>Cím</td>
<td><input type='text' name='address' values=''></td>
</tr>
<tr>
<td>Irányító szám: </td>
<td><input type='text' name='iranysz' values=''></td>
</tr>
<tr>
<td>E-mail cím:</td>
<td><input type='text' name='email' values''></td>
</tr>
</table>
<input type='submit' name='submit' value='Regisztrál' onclick='upload.php'>
</form>";
?>
</body>
</html>
A hiba. Ha nem viszek be adtot nem megy sehova. Ha csak egy vmit beviszek már megy. Az & lecseréltem and re akkor sem.
példa
<html>
<head>
<title>Regisztráció</title>
</head>
<body>
<?php
if ( $_POST )
{
$hibatomb = Array(); //ebbe mennek a hibák
print_r($_POST);
// így lesed a mezőket
if (empty($_POST['user'])){
$hibatomb[]='Nincs user';
}
if (empty($_POST['pass'])){
$hibatomb[]='Nincs pass';
}
if (!empty($hibatomb)){
echo "<br>Hibalista-tömb tartalma: ";
print_r($hibatomb); //hiba kiiratása
}
else
{
echo "<br>Siker! ";
echo "okay - urlap elfogadva"; // elfogadva az urlap
}
}
else
{
print " Ennek az ágnak nem sok értelme van jelenleg. :)";
}
print "<form name='urlap' method='POST' action='".$_SERVER['PHP_SELF']."'>
<table width='100%' border='0' cellspacing='1' cellpadding='0'>
<tr>
<td>Felhasználói név:</td>
<td><input type='text' name='user' values=''</td>
</tr>
<tr>
<td>Jelszó:</td>
<td><input type='text' name='pass' values=''></td>
</tr>
<tr>
<td>Jelszó újra:</td>
<td><input type='text' name='rpass' values=''></td>
</tr>
<tr>
<td>Vezeték név:</td>
<td><input type='text' name='vnev' values=''></td>
</tr>
<tr>
<td>Kereszt név:</td>
<td><input type='text' name='knev' values=''></td>
</tr>
<tr>
<td>Város</td>
<td><input type='text' name='city' values=''></td>
</tr>
<tr>
<td>Cím</td>
<td><input type='text' name='address' values=''></td>
</tr>
<tr>
<td>Irányító szám: </td>
<td><input type='text' name='iranysz' values=''></td>
</tr>
<tr>
<td>E-mail cím:</td>
<td><input type='text' name='email' values=''></td>
</tr>
</table>
<input type='button' name='gomb' value='Regisztrál' onclick='javascript: urlap.submit() '>
</form>";
?>
</body>
</html>
Hibás javítások
1. A HTML4 szabvány szerint az input tagnek nincs values attríbuma.
2. Az input-ot button-re javítani a form alján... A majdnem jó megoldást nem javítjuk rosszra!
Sovereign ezt írta:
3. A PHP_SELF-ben nem bízunk, a helyes használat:
üdv. krey
igaz
1. ez igaz, de amint látod a kérdező telejsen rosszul használta, ezt javítottam, úgyhogy a hozzászólásod csak fikázásnak minősül...
"2. Az input-ot button-re javítani a form alján... A majdnem jó megoldást nem javítjuk rosszra!" - semmi baj a buttonnal, ez csak a te szubjektív véleményed... ő OnClick-et szeretett volna használni, ezért énis ezt használtam fel, nem akartam ráerőszakolni, hogy mi a jó szerintem, veled ellentétben...
A 3. pontot inkább nem kommentálom...attól függ a használata, hogy milyen szerveren fut a PHP, ez olyan mint a sok-sok bugyuta SQL injekció elleni védelem, semmit nem ér, de jó okoskodásra... ez persze nem jelenti a biztonságos programozás elvetését, de ez nem ezen áll vagy bukik...nagyon sok ilyet láttam már, utána évek alatt eltűntek, mert értelmüket vesztették stb.
4. Teljesen igaz, de semmi köze a kérdező problémájához. Ettől függtelenül megtanulhatja, úgyis muszáj lesz neki előbb vagy utóbb ha ezzel akar foglalkozni. A Formok helyes használatáról még a W3C se tud dönteni és kompromisszumos + hatékony módszert találni, de látom neked sikerült! Gratula!
üdv.
j.
Én így csinálom ...
akár igaz is lehetne...
Persze ...
sztem is
Köszönet 2
Mégegyszer köszönök mindent!
SZÉGYENLEM MAGAM!
2as verzióval többre mentem ám az action részt b@szik végrehajtani. Minden változót külön ellenörzök. Ha mindegyik ki van töltve ki is dobja, hogy minden remek. A $ref változór upload.php-re állítja. Ezt kiiratom az actionben. ott van mert kiiratom mégegyszer. De... nem érdekli.
Én lelövöm magam tuti....
Nem igazán értem ...
upload
toltsetek mar fel egy teljes mukodokepes valamit amit beszurok a kis html oldalamba es mukodik ez a sazr...es hol adom meg h melyi kemail cimre kuldje az infot meg ilyenek ??
Regizés
Valaki tudna segíteni nekem , hogy "Regisztrációs űrlapot" hogyan tudnék csinálni?
Előre is köszi!
Ajánlom magamat (a jegyzetemet)