ugrás a tartalomhoz

Regisztrációs űrlap PHP-vel, nem megy

Anonymous · 2005. Júl. 17. (V), 19.07
Üdv!
Van egy HTML oldalam egy regisztrációs űrlappal, de valamiért nem működik.
A kód:
<?php
function alert($message) {
echo "<script language='javascript' type='text/javascript'>\n alert('".$message."');\n </script>";
}
alert("teszt");
if($_POST['submit']) {
alert("elkezdődik az egész...");
$_POST['name'] = $name;
$_POST['pass'] = $pass;
$_POST['passvery'] = $passvery;
$_POST['email'] = $email;
$_POST['gender'] = $gender;
$_POST['location'] = $location;
$_POST['birthdate'] = $birthdate;
if($name != "" && $pass != "" && $passvery != "" && $email != "") {
alert("jelszó összevetés...");
if($pass != $passvery) {
alert("The two entered passwords do not match.");
exit;
}
alert("done");
alert("e-mail-check");
if(!strstr($email,'@') && !strstr($email,'.')) {
alert("The entered e-mail address is invalid!");
exit;
}
alert("done");
alert("dátumos vacak...");
if($birthdate == "" && !strstr($birthdate,".")) {
alert("The entered date is invalid!");
exit;
} else {
$youryear = substr($birthdate,6,9);
$cyear = date("Y");
$age = $cyear - $youryear;
if($age <= 6) {
alert("The entered birthdate is invalid!");
exit;
}
}
alert("done");
$rank = "Not set yet ^^";
alert("hozzáadás kezdődik....");
adduser($name,$email,$pass,$location,$age,$birthdate,$gender,$rank);
alert('User successfully added');
} else {
alert("valami hiányzik");
}
}
?>
<form action="<?=$PHP_SELF?>" method="post">
Username: <input name="name" type="text" class="commentinput" id="name" size="20" maxlength="20" /><br />
Password: <input name="pass" type="password" class="commentinput" id="pass" size="20" maxlength="20" /><br />
Verify password: <input name="passvery" type="password" class="commentinput" id="passvery" size="20" maxlength="20" /><br />
E-mail: <input name="email" type="text" class="commentinput" id="email" size="20" maxlength="20" /><br />
Gender:
<select name="gender" class="commentinput" id="gender">
<option selected="selected" value="nothing">Select your gender</option>
<option value="female">Female</option>
<option value="male">Male</option>
</select>
Location: <input name="location" type="text" class="commentinput" id="location" size="20" maxlength="20" /><br />
Birthdate: <input name="title" type="text" class="commentinput" id="title" size="20" maxlength="20" /><br />
<input name="submit" type="submit" id="submit" value="Submit" class="commentinput" />
</form>


valamiért már az "if($_POST['submit']) {" utáni üzenetet sem jeleníti meg, és nem tudom miért... segítsetek please!
 
1

alert()?

Őry Máté · 2005. Júl. 17. (V), 19.38
Az alert js függvény, ez meg php kód. print(): http://php.net/print
2

direkt van...

Anonymous · 2005. Júl. 17. (V), 19.41
mivel a php echo nem olyan feltűnő, kevertem a kettőt... a saját készítésű php alert() függvényemet direkt beírtam, az az első négy sor, ha megnézed...
4

Ne legyen direk.

Sweetchack · 2005. Júl. 17. (V), 20.01
Nem néztem át a kódodat. Egyrészt azért mert lusta vagyok, más részt pedig azért mert az interneten tonna számra lehet találni a regisztrációról cikkeket és müködő kódokat.

Szerintem fölösleges az alert függvényed. Javaslom haszználd helyette a die() függvényt, a www.php.net -en van a leírása. Vagy (inkább) használhatod a már javasolt print -et és echo -ot.

Esetleg érdemes kiprobálni ezt:
if(IsSet($_POST['submit']) AND $_POST['submit']=='AmitMegadtál'){
6

?

Anonymous · 2005. Júl. 17. (V), 20.04
Miért nem nézitek meg először a kódot, amit mellényzsebből fikáztok? A kódrészletben az alert() az egy php függvény.

Gyulus
3

amúgy...

Anonymous · 2005. Júl. 17. (V), 19.43
amúgy most egy másik oldalon is hasonló formos beküldőt csináltam és valamiért ott sem teljesül a if($_POST['submit']) :'(
kísértenek engem ezek a formok, valaki segítsen!
5

Ez benne a baromság

Anonymous · 2005. Júl. 17. (V), 20.01
$_POST['name'] = $name;
$_POST['pass'] = $pass;
$_POST['passvery'] = $passvery;
$_POST['email'] = $email;
$_POST['gender'] = $gender;
$_POST['location'] = $location;
$_POST['birthdate'] = $birthdate;


Ez a kódrészlet a POST-olt adataidat felülírja nem létező változók értékeivel, tehát elvesznek az adataid.

Helyesen, vagyis fordítva:
$name = $_POST['name'];

stb.
De még helyesebb:
extract($_POST);


Gyulus
7

kösz

Anonymous · 2005. Júl. 17. (V), 20.10
kösz, már működik... mostmár végigmennek az üzenetek egészen addig h
if($birthdate == "" && !strstr($birthdate,".")) {
alert("The entered date is invalid!");
exit;
}

de itt valamiért ez teljesül.. gondolom az strstr-rel van gond, de sajnos jobbat nem találtam a . karakter létezésének ellenőrzésére
9

allasajanlat

Anonymous · 2005. Júl. 17. (V), 20.20
Érdekes, mintha valahol láttam volna egy állásajánlatot, ahol referenciaként egy regisztrációs űrlapot kellett csinálni (prog.hu?) Csak nem arra gyúrsz :-)
Fú de rosszmájú vagyok...
10

dehogy...

Anonymous · 2005. Júl. 17. (V), 20.42
dehogyis... nem is tudtam róla :D ez egy egyszerű fansite-ba készül, csak a cikk-hozzáadást oldom meg ilyen túlbonyolítva (asszem ezt hívják normál programoknál techdemónak)
8

php.ini

Sweetchack · 2005. Júl. 17. (V), 20.19
Igen, igen. Az ilyen az bosszantó baki. :)
Ennek esélye lecsökkenthető ha a php.ini -ben
error_reporting = E_ALL
és
register_globals = off

mert ilyenkor kapsz egy hibajelzést hogy nem létező változóból akarsz értéket kiolvasni.
$_POST['name'] = $name;
A register_globals kikapcsolása pedig azért kell hogy tényleg ne létezzenek a Form elemekhez tartozó változók, csak a $_POST vagy $_GET.