Mezoknek az allapotat kell lementeni
Szuksegem van egy kis segitsegre.
Nem tudom pontosan, hogyan irjam le a problemat de megprobalom reszletesen!
Van egy PHP oldal amely regisztraciora szolgal. Tobb mezot ki kell tolteni ahoz, hogy valaki regisztralja magat az adatbazisba.
Amikor megnyomom a SUBMIT gombot a lapon akkor PHP elenorzi ha a "Username" kissebb mint 3 betu, ugyanezt teszi a mail mezovel, es elenorzi ha a jelszo minimun 8 karakter, maskeppen hibat fog jelezni.
A kod:
if (isset ($_POST['submit'])) {
$problem = FALSE;
if (strlen($_POST['username'] < 3 )) {
$problem = TRUE;
print '<p>A felhasznalo neve tul rovid</p>';
}
if (strlen($_POST['email']) < 3) {
$problem = TRUE;
print '<p>Az email cim tul rovid !</p>';
}
if (strlen($_POST['password']) < 8) {
$problem = TRUE;
print '<p>A jelszo nem lehet kisebb mint 8 karakter!</p>';
}
}
if (!$problem) {
print 'A regisztracio sikeres';
} else {
print 'A regisztracio nem sikerult';
}
<form action="register.php" method="post">
Username:<br /><input type="text" name="username" size="30" maxlength="25" /><br />
Email:<br /><input type="text" name="email" size="30" maxlength="50" /><br />
Password:<br /><input type="password" name="password" size="30" maxlength="15" /><br />
<p><input type="submit" name="submit" value="Regisztral" /></p>
Most ha belep egy felhasznalo a lapra, egy olyan user nevet kell valaszon amely hosszab mint 3 betu. Ha ez nem tejesul akkor a kov. hiba uzenet fogadja -> A felhasznalo neve tul rovid.
Szeretnem ha le tudnam menteni a "Username" es az "Email" mezok allapotat. Azt szeretnem elerni peldaul, hogy ha a Usernev megfelel (monjuk 5 betus) de az e-mail mezo kisseb mint 3 betu akkor a felhasznalo ne keljen beirja ujbol a Usernevet csak az E-mailt cimet.
Ha jol tudom ezt valahogy HTML-be kell elohivni az input value="" dologal.
Kerem ha lehet akkor segitsetek. Nagyon sokat kinlodtam es szuksegem van egy kis segitsegre, kezdo vagyok.
User
Elnezest kerek a forum moderatortol, hogy ma ketszer irok mar :)
■ Nem tudom pontosan, hogyan irjam le a problemat de megprobalom reszletesen!
Van egy PHP oldal amely regisztraciora szolgal. Tobb mezot ki kell tolteni ahoz, hogy valaki regisztralja magat az adatbazisba.
Amikor megnyomom a SUBMIT gombot a lapon akkor PHP elenorzi ha a "Username" kissebb mint 3 betu, ugyanezt teszi a mail mezovel, es elenorzi ha a jelszo minimun 8 karakter, maskeppen hibat fog jelezni.
A kod:
if (isset ($_POST['submit'])) {
$problem = FALSE;
if (strlen($_POST['username'] < 3 )) {
$problem = TRUE;
print '<p>A felhasznalo neve tul rovid</p>';
}
if (strlen($_POST['email']) < 3) {
$problem = TRUE;
print '<p>Az email cim tul rovid !</p>';
}
if (strlen($_POST['password']) < 8) {
$problem = TRUE;
print '<p>A jelszo nem lehet kisebb mint 8 karakter!</p>';
}
}
if (!$problem) {
print 'A regisztracio sikeres';
} else {
print 'A regisztracio nem sikerult';
}
<form action="register.php" method="post">
Username:<br /><input type="text" name="username" size="30" maxlength="25" /><br />
Email:<br /><input type="text" name="email" size="30" maxlength="50" /><br />
Password:<br /><input type="password" name="password" size="30" maxlength="15" /><br />
<p><input type="submit" name="submit" value="Regisztral" /></p>
Most ha belep egy felhasznalo a lapra, egy olyan user nevet kell valaszon amely hosszab mint 3 betu. Ha ez nem tejesul akkor a kov. hiba uzenet fogadja -> A felhasznalo neve tul rovid.
Szeretnem ha le tudnam menteni a "Username" es az "Email" mezok allapotat. Azt szeretnem elerni peldaul, hogy ha a Usernev megfelel (monjuk 5 betus) de az e-mail mezo kisseb mint 3 betu akkor a felhasznalo ne keljen beirja ujbol a Usernevet csak az E-mailt cimet.
Ha jol tudom ezt valahogy HTML-be kell elohivni az input value="" dologal.
Kerem ha lehet akkor segitsetek. Nagyon sokat kinlodtam es szuksegem van egy kis segitsegre, kezdo vagyok.
User
Elnezest kerek a forum moderatortol, hogy ma ketszer irok mar :)
jól tudod
ok
De mast szeretnek elerni. Ha a usernev hibas (kisebb mint 3 karakter) akkor azt mar ne jelenitse meg, csak azokat a mezoket jelenitse amik jol voltak kitoltve (mert ami jol van kitoltve mar ne legyen ujbol irva).
Koszonom !
külön hibák
koszonom
Ha nagyon hosszu a value="" kozti sor :
<?php echo isset($_POST['username']) && !isset($problem['username']) ? $_POST['username'] : "" ?>
nem problema ez a php-nek ?
type=hidden
nem mukodik...
Megadom a lapot amelyen dolgozok, szoval itt a kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"content="text/html; charset=iso-8859-1" />
<title>Document test</title>
</head>
<body>
<?php
ini_set('display_errors', 1);
// Connect to MySQL and select the database
include ('./includes/mysql.php');
// Remove HTML tags
function varCheck($input) {
if($input) {
$output = strip_tags($input);
return $output;
}
}
// Verify if user exist in database
$find_username = mysql_query("SELECT username FROM register WHERE username = '".varCheck($_POST['username'])."'");
$duplicate_username = mysql_num_rows($find_username);
if (isset ($_POST['submit'])) {
$problem = FALSE;
if (empty ($_POST['username'])) {
$problem = TRUE;
print '<p>Please type a username</p>';
}
if ( ($duplicate_username > 0 )) {
$problem = TRUE;
print '<p><b>User already exist in database.</b></p>';
}
if (empty ($_POST['email'])) {
$problem = TRUE;
print '<p>Please type an e-mail address.</p>';
}
if (empty ($_POST['password'])) {
$problem = TRUE;
print '<p>Please type a password</p>';
}
if (strlen($_POST['password']) < 8) {
$problem = TRUE;
print '<p>Password is short</p>';
}
if ($_POST['password'] != $_POST['confirm']) {
$problem = TRUE;
print '<p>Your password did not match your confirmed password!</p>';
}
}
if (!$problem) {
if ($duplicate_username == 0 ) {
mysql_query ("INSERT INTO register (user_id, username, email, validate) VALUES (0, '".varCheck($_POST['username'])."', '".varCheck($_POST['email'])."', '".rand(1,99999)."')");
print '<p><b>User added.</b></p>';
} else {
print mysql_error();
}
} else {
print '<p><b>Please try again</b></p>';
}
?>
<form action="testing.php" method="post">
Username:<br /><input type="text" name="username" size="30" maxlength="25" value="" /><br />
Email:<br /><input type="text" name="email" size="30" maxlength="50" value=""/><br />
Password:<br /><input type="password" name="password" size="30" maxlength="15" /><br />
Confirm password:<br /><input type="password" name="confirm" size="30" maxlength="15" /><br />
<p><input type="submit" name="submit" value="Register" /></p>
</body>
</html>
Azt akarnam elerni ha a felhasznalo letezik az adatbazisba akkor annak a nevet ne mentse le a Username mezoben, ha pedig a felhasznalo nev megfelel es nem letezik az adatbazisba, de a jelszo hibas a Usernevet ne kelljen ujbol beirni.
Elnezest ha sokat kerek, de szeretnem megoldani ezt a problemat, remelem most, hogy a teljes kodot megadtam ki lehet deriteni a bajt.
$userName
Mindenféle ellenőrzés során olyan értéket raksz bele, amilyent akarsz (pl. üres stringet), és a végén egyszerűen kiíratod, így nem a végén kell mindenféle ellenőrzést csinálj.
Továbbá az "INSERT INTO register" után kellene egy hibaellenőrzés, mert mi van akkor, ha közben egy másik felhasználó már regisztrált ugyanazzal a névvel?
ok
Nem igazan ertem amit leirtal.
Kosiz !
pl.
if (regisztrált($userName))
{
// ha a felhasznalo letezik az adatbazisba akkor annak a nevet ne mentse le a Username mezoben
$userName = "";
}
else
{
//ha pedig a felhasznalo nev megfelel es nem letezik az adatbazisba, de a jelszo hibas a Usernevet ne kelljen ujbol beirni.
}
<input type="text" name="username" size="30" maxlength="25" value="$userName" />
koszonom !
sikerult
Koszonom Hodicska Gergely a segitseget !
A problema tollem volt, ugyanis nem irtam be a kov. sort :
global $problem;
a $problem['username'] erteket nem tudta elerni a HTML, mert be volt zarva a $problem valtozo az if funkciokba.
Most mar mukodik !
Meg lenne egy kerdesem ha nem haragudtok meg, azt szeretnem elerni, hogy szineze be pirosal azt a mezot amit elhibaztam, mit kene csinalni ?
Koszonom !