ugrás a tartalomhoz

Segítség a passwordbe

frostywarrior · 2010. Aug. 5. (Cs), 11.08
Sziasztok:)

Segítségeteket szeretném kérni!Szakdolimat heggesztem éppen és szükségem lenne egy olyan segítségre hogy van egy regisztracio.html lapom ahol formon belül minden féle adatot ki lehet tölteni és ezt tovább küldi a redadat.php-ra. Csak hogy a jelszót nem hozza át a regadat.php-ra, de mivel hogy adatbázis is kell hozzá amit még nem heggesztettem meg eddig, ezért az össze adatra szükségem lenne, hogyan kell ezt megoldni...

Ja és még valami valaki pls írja már le nekem hogyan tudom az adatokat szerver oldali phpn is leellenőrizni, mert kicsit nehézkes ez számomra még

Előre is köszi a helpet:)

így néz ki a regisztracio.html:


<!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" xml:lang="en" lang="en">
<head>
<title>Regisztráció</title>
<meta http-equiv="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)" />
<meta name="created" content="Sze, 28 júl. 2010 17:51:05 GMT" />
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<script Language="JavaScript">

function Form1_Validator(theForm)
{
if (theForm.nev.value == "")
{
alert("Kérlek add meg a Teljes Neved!");
theForm.nev.focus();
return (false);
}

if (theForm.Email.value == "")
{
alert("Kérlek add meg az emailed!");
theForm.Email.focus();
return (false);
}


var checkEmail = "@.";
var checkStr = theForm.Email.value;
var EmailValid = false;
var EmailAt = false;
var EmailPeriod = false;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkEmail.length; j++)
{
if (ch == checkEmail.charAt(j) && ch == "@")
EmailAt = true;
if (ch == checkEmail.charAt(j) && ch == ".")
EmailPeriod = true;
if (EmailAt && EmailPeriod)
break;
if (j == checkEmail.length)
break;
}
// if both the @ and . were in the string
if (EmailAt && EmailPeriod)
{
EmailValid = true
break;
}
}
if (!EmailValid)
{
alert("Az email mező kitöltése hibás, próbálja újra!");
theForm.Email.focus();
return (false);
}
if (theForm.felh_nev.value == "")
{
alert("Kérlek add meg a felhasználó neved.");
theForm.felh_nev.focus();
return (false);
}
if (theForm.date_year.selectedIndex <= 0)
{
alert("Kérlek Válasz Évet.");
theForm.date_year.focus();
return (false);
}
if (theForm.date_month.selectedIndex <= 0)
{
alert("Kérlek válasz Hónapot.");
theForm.date_month.focus();
return (false);
}
if (theForm.date_day.selectedIndex <= 0)
{
alert("Kérlek válasz Napot.");
theForm.date_day.focus();
return (false);
}
if (theForm.province.value == "")
{
alert("Kérlek válaszd ki, hogy hol laksz.");
theForm.province.focus();
return (false);
}
if (theForm.sex.selectedIndex <= 0)
{
alert("Válaszd ki a nemed.");
theForm.sex.focus();
return (false);
}

if (theForm.Password.value.length < 5)
{
alert("A Jelszónak 5-nél több karakterből kell állnia!");
theForm.Password.focus();
return (false);
}

if (theForm.Password.value != theForm.Password2.value)
{
alert("A két Jelszó nem hasonlít egymásra! Próbáld újra");
theForm.Password2.focus();
return (false);
}
if (theForm.Password.value != theForm.Password2.value)
{
alert("A két Jelszó nem hasonlít egymásra! Próbáld újra");
theForm.Password2.focus();
return (false);
}


}

</script>
</head>
<body>

<h2><font size="4">Regisztrációs adatok</font></h2>
<table>
<form action="regadat.php"
method="POST" onsubmit="return Form1_Validator(this)" name="Form1"><p>

<tr>
<td>Teljes neved:*</td><td><input type="text" name="nev" size=25></td>
</tr><tr>
<td>Email:*</td><td><input type="text" size="40" name="Email" ><br>
</td>
</tr><tr>
<td>Felhasználónév:*</td><td><input type="text" name="felh_nev" size=25></td>
</tr><tr>
<td>Mikor Születtél?*</td><td>
Év:
<select NAME="date_year">
<option VALUE="0">
<option VALUE="2005">2005
<option VALUE="2004">2004
<option VALUE="2002">2003
<option VALUE="2001">2001
<option VALUE="2000">2000
<option VALUE="1999">1999
<option VALUE="1998">1998
<option VALUE="1997">1997
<option VALUE="1996">1996
<option VALUE="1995">1995
<option VALUE="1994">1994
<option VALUE="1993">1993
<option VALUE="1992">1992
<option VALUE="1991">1991
<option VALUE="1990">1990
<option VALUE="1989">1989
<option VALUE="1988">1988
<option VALUE="1987">1987
<option VALUE="1986">1986
<option VALUE="1985">1985
<option VALUE="1984">1984
<option VALUE="1983">1983
<option VALUE="1982">1982
<option VALUE="1981">1981
<option VALUE="1980">1980
<option VALUE="1979">1979
<option VALUE="1978">1978
<option VALUE="1977">1977
<option VALUE="1976">1976
<option VALUE="1975">1975
<option VALUE="1974">1974
<option VALUE="1973">1973
<option VALUE="1972">1972
<option VALUE="1971">1971
<option VALUE="1970">1970
<option VALUE="1969">1969
<option VALUE="1968">1968
<option VALUE="1967">1967
<option VALUE="1966">1966
<option VALUE="1965">1965
<option VALUE="1964">1964
<option VALUE="1963">1963
<option VALUE="1962">1962
<option VALUE="1961">1961
<option VALUE="1960">1960
<option VALUE="1959">1959
<option VALUE="1958">1958
<option VALUE="1957">1957
<option VALUE="1956">1956
<option VALUE="1955">1955
<option VALUE="1954">1954
<option VALUE="1953">1953
<option VALUE="1952">1952
<option VALUE="1951">1951
<option VALUE="1950">1950
<option VALUE="1949">1949
<option VALUE="1948">1948
<option VALUE="1947">1947
<option VALUE="1946">1946
<option VALUE="1945">1945
<option VALUE="1944">1944
<option VALUE="1943">1943
<option VALUE="1942">1942
<option VALUE="1941">1941
<option VALUE="1940">1940
<option VALUE="1939">1939
<option VALUE="1938">1938
<option VALUE="1937">1937
<option VALUE="1936">1936
<option VALUE="1935">1935
<option VALUE="1934">1934
<option VALUE="1933">1933
<option VALUE="1932">1932
<option VALUE="1931">1931
<option VALUE="1930">1930
<option VALUE="1929">1929
<option VALUE="1928">1928
<option VALUE="1927">1927
<option VALUE="1926">1926
<option VALUE="1925">1925
<option VALUE="1924">1924
<option VALUE="1923">1923
<option VALUE="1922">1922
<option VALUE="1921">1921
<option VALUE="1920">1920
<option VALUE="1919">1919
<option VALUE="1918">1918
<option VALUE="1917">1917
<option VALUE="1916">1916
<option VALUE="1915">1915
<option VALUE="1914">1914
<option VALUE="1913">1913
<option VALUE="1912">1912
<option VALUE="1911">1911
<option VALUE="1910">1910

</select>
Hónap:
<select NAME="date_month">
<option VALUE="0">
<option VALUE="1">1
<option VALUE="2">2
<option VALUE="3">3
<option VALUE="4">4
<option VALUE="5">5
<option VALUE="6">6
<option VALUE="7">7
<option VALUE="8">8
<option VALUE="9">9
<option VALUE="10">10
<option VALUE="11">11
<option VALUE="12">12
</select>
Nap:
<select NAME="date_day">
<option VALUE="0">
<option VALUE="1">1
<option VALUE="2">2
<option VALUE="3">3
<option VALUE="4">4
<option VALUE="5">5
<option VALUE="6">6
<option VALUE="7">7
<option VALUE="8">8
<option VALUE="9">9
<option VALUE="10">10
<option VALUE="11">11
<option VALUE="12">12
<option VALUE="13">13
<option VALUE="14">14
<option VALUE="15">15
<option VALUE="16">16
<option VALUE="17">17
<option VALUE="18">18
<option VALUE="19">19
<option VALUE="20">20
<option VALUE="21">21
<option VALUE="22">22
<option VALUE="23">23
<option VALUE="24">24
<option VALUE="25">25
<option VALUE="26">26
<option VALUE="27">27
<option VALUE="28">28
<option VALUE="29">29
<option VALUE="30">30
<option VALUE="31">31
</select>

</td>
</tr>
<tr>
<td>Hol laksz?*</td><td>
<select NAME="province" size="5" MULTIPLE>
<option value="Ang">
Anglia
</option>
<option value="Rom">
Románia
</option>
<option value="Szlo">
Szlovákia
</option>
<option value="Hor">
Horvátország
</option>
<option value="Ukr">
Ukrajna
</option>
<option value="Aus">
Ausztia
</option>
<option value="Len">
Lengyelország
</option>
<option value="Hun">
Magyarország
</option>

</select>
</td>
</tr><tr>
<td>Nemed:*</td><td>
<select name="sex" size="1"><option>Válaszd Ki a Nemed!</option>
<option value="F">Férfi</option><option value="N">Nő</option>
</select><br></td>
</tr>
<tr>
<td>Jelszó:*</td><td><input type="password" size="10" maxlength="10" name="Password"></td>
</tr>
<tr>
<td>Jelszó ismét:*</td><td><input type="password" size="10" maxlength="10" name="Password2"></td>
</tr>
<tr>
<td>Honnan Hallotál rólunk?</td><td>
<select name="hallotal" size="1">
<option>Válasz egyet!
</option>
<option value="Ismeros">
Ismerőstől
</option>
<option value="forum">
Internetes fórum
</option>
<option value="hirdetes">
Internetes hirdetés
</option>
<option value="ujsag">
Újságból,magazin
</option>
<option value="rendezveny">
Rendezvény
</option>
</select></td>
</tr>


<tr>
<td><input type="submit" name="submit" value="Rendben"></td>
</tr>
<tr>
<td><input type="reset" name="Reset" value="Törlés"></td>
</tr>
</form>

</body>
</html>

És így néz ki a regadat.php-m:

<!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" xml:lang="en" lang="en">
<head>
<title></title>
<meta http-equiv="generator" content="CoffeeCup HTML Editor (www.coffeecup.com)" />
<meta name="created" content="Sze, 28 júl. 2010 17:51:05 GMT" />
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta name="description" content="" />
<meta name="keywords" content="" />
</head>
<body>

<?php echo $_POST["nev"];?>
<?php echo $_POST["Email"];?>
<?php echo $_POST["felh_nev"];?>
<?php echo $_POST["date_year"];?>
<?php echo $_POST["date_month"];?>
<?php echo $_POST["date_day"];?>
<?php echo $_POST["province"];?>
<?php echo $_POST["sex"];?>
<?php echo $_POST["password"];?>
<?php echo $_POST["password2"];?>
<?php echo $_POST["hallotal"];?>

</body>
</html>
 
1

Egy hibát látok...

nvyktor · 2010. Aug. 5. (Cs), 11.40
Hali!

Én egy hibát látok benne:
A Form1_Validator van rosszul megírva, mert a vizsgált tulajdonságokat egymástól függetlenül vizsgálja. Vagyis minden vizsgálat különálló if () {} szerkezetben van.
Ehelyett én azt használnám, hogy if () {} else if () {} .... else {}

És az utolsó else ágban továbbítanám csak a dolgokat a php felé.

Vagy egyáltalán nem használnék javascriptes ellenőrzést, mert ez a megoldás amit írtál nem kezeli le ha pl valakinek nincs, vagy le van tiltva a javascript.
2

Javascriptet azért...

frostywarrior · 2010. Aug. 5. (Cs), 12.37
Hali a javascriptet is és szerver oldali phpt is szeretném ellenörizni...Tudom hogy ha valakinek ki van nyomva a js akkor át tudja ugratrni ezért is lesz ellenörizve a szerver phpján is...De ezt már le irtam oda azért is lenne szükségem néhány segitségre hogy hogyan tudok ellenörizni phpba...Jó lenne egy kis helper vagy link ahol megtalálom ezeket a php ellenörző forrás kódokat.


De megfogadom a tanácsod és megírom a függvényt if else if ágakkal:D

Ezen ne múljék:D

Köszi
3

Az a guzmiság az egészben,

nvyktor · 2010. Aug. 5. (Cs), 13.18
Az a guzmiság az egészben, hogy ha szerver oldalon php-ból ellenőrzöd, akkor nincs szükség a js vacakolásra. Csak hibalehetőség, és dolgozhatsz kétszer.

A php-ban pedig ugyanúgy kell ellenőrizni egyenként a dolgokat, mint ahogy a js teszi, csak a szintaxis más:

if ($_POST['nev'] == "") {
$hibauzenet = "Kérlek add meg a Teljes Neved!";
}

elseif ($_POST['Email'] == "")
{
$hibauzenet = "Kérlek add meg az emailed!";
}
...
else {
$hibauzenet = "Minden ok!";
// itt kell beletenni adatbázisba
// persze előtte eltávolítani a potenciálisan veszélyes tartalmakat
$hibauzenet = "<br />Adatbázisművelet sikeres!";

// és ha minden megvan:
echo $hibauzenet;
}
5

nagyon rossz hozzaallas.

duplabe · 2010. Aug. 5. (Cs), 13.23
nagyon rossz hozzaallas. minek kuldjunk el egy formot (eroforrasokat es a user idejet pazarolva) amiben hibas adatok vannak?
9

Ebben igazad van, de minek is

nvyktor · 2010. Aug. 5. (Cs), 14.21
Ebben igazad van, de minek is dolgozzunk kétszer?
A szerver oldalira mindenképp szükség van az ellenőrzéshez, XSS kiszűrése stb. És amíg ezt megvalósítod igazán meg lehet nézni, hogy a mezők üresek-e? Szóval szerintem a js ebből a szempontból csak látvány... Persze ha dinamikusan változó formról van szó, akkor jöhet a js, pontosabban ajax.

De szerencsére nem vagyunk egyformák... :)

Üdv:
V.
7

Köhike:)

frostywarrior · 2010. Aug. 5. (Cs), 13.50
akkor úgy ezt regadat.phpba kell bele ágyaznom és végig kell ellenöriznem a kapott adatokat.
8

Email ell.

frostywarrior · 2010. Aug. 5. (Cs), 13.53
De hogyan tudom az emailt leellenőrizni php oldalon???
Hogynéz ez ki formailag ami jól is müködik mert már egyszer jól megszívtam vele egy weboldal heggesztésekor...
10

a preg_match függvény erre való...

nvyktor · 2010. Aug. 5. (Cs), 14.24
a preg_match függvény erre való...

elseif (!PREG_MATCH("/.+@.+\\..+/",$_POST['Email'])){
$hibauzenet = '...';
}
4

<td>Jelszó:*</td><td><input

kuka · 2010. Aug. 5. (Cs), 13.22
<td>Jelszó:*</td><td><input type="password" size="10" maxlength="10" name="Password"></td>
<?php echo $_POST["password"];?>
Password != password

Tégy magadnak egy szívességet és ne keverd a kis- és nagybetűs azonosítókat.
6

Köszi

frostywarrior · 2010. Aug. 5. (Cs), 13.47
Igazad van kuka:D



Majd figyelek egy kicsit jobban:D
11

<?php echo

kuka · 2010. Aug. 5. (Cs), 14.48
<?php echo $_POST["nev"];?>
<?php echo $_POST["Email"];?>
<?php echo $_POST["felh_nev"];?>
<?php echo $_POST["date_year"];?>
<?php echo $_POST["date_month"];?>
<?php echo $_POST["date_day"];?>
<?php echo $_POST["province"];?>
<?php echo $_POST["sex"];?>
<?php echo $_POST["password"];?>
<?php echo $_POST["password2"];?>
<?php echo $_POST["hallotal"];?>
Még egy tanács. A fenti helyett inkább írasd ki a teljes $_POST-ot, akkor könnyebb kiszúrni az ilyen mezőnév eltérés hibákat:
<?php print_r($_POST); ?>
(És a kiírás eredményét inkább a böngésző View Source-ában nézd, ott jobban olvasható.)
12

password

frostywarrior · 2010. Aug. 5. (Cs), 15.40
még egy fincsi kérdés a password miért nem megy át phpba
13

Nálam átmegy.

kuka · 2010. Aug. 5. (Cs), 16.36
Nálam átmegy.
14

meg van a pass

frostywarrior · 2010. Aug. 5. (Cs), 17.25
Aha tényleg:D


Köszi
15

Az miért van hogy....

frostywarrior · 2010. Aug. 5. (Cs), 17.30
Az miért van hogy amikor php oldalon futattom az ellenörzést ,de elötte a jst kikapcsolom, hogy akkor első elemként a legördülő menüböl is "válasz ki a nemedet" kiirást kapom...Talán mert azt tekinti első elemének, de hogy tudom az első elemet kivenni a lehetőségek közül mert igy akkor nem tudja le ellenörizni sem mivel soha nem lesz üres az az elem....hogy ellenörizem azt le hogy azt ne tekintse választási lehetőségnek...


Köszi
16

legyen nulla...

nvyktor · 2010. Aug. 5. (Cs), 18.05
a "válaszd ki a nemed"-nek legyen a value értéke 0. A férfi pl az 1, nő pl 2.
És nem azt vizsgálod, hogy üres-e, hanem hogy 0-e?

Ennyi... :)
17

És nem azt vizsgálod, hogy

kuka · 2010. Aug. 5. (Cs), 18.58
És nem azt vizsgálod, hogy üres-e, hanem hogy 0-e?
Azért ezt ne szó szerint így, mert akkor 'nvyktor' is érvényes értékként megy át az ellenőrzésen, lévén nem 0.

$helyes_nem=array('F','N');

if (!in_array($_POST['sex'],$helyes_nem))
  $hibauzenet='Hibás nem. Válassz ki egy valósat.';
(Megjegyzés, hogy én szívből utálom az egyenkénti hibaüzengetéseket, ezért alapból nem így csinálnám. De talán most elég lesz ennyire bonyolítani.)
18

Igazad van, így kell

nvyktor · 2010. Aug. 5. (Cs), 19.46
Igazad van, így kell csinálni...
Én csak azért azt írtam amit, mert a kérdés az volt, hogy hogyan vizsgálja azt, hogy kitöltötte-e? :)

Ez már a második lépcsőfok... :)

Az egyenkénti hibaüzenetnek is megvan az előnye, mert részletesebben tudod kiírni, hogy mi bajod... Persze macerásabb, ha a user egy 50 mezőből álló formban generál 150 hibát és erre egyesével jön rá, garantálom, hogy a 10.nél feladja... :D

Rövid űrlapokhoz jó, hosszúakhoz meg az a legjobb, ha a hosszú hibaüzeneteket egy tömbbe tárolod, és minden mező mellé vagy fölé kiírod, hogy mért gázos...

V.