Kezdőoldal » Számítástechnika » Weblapkészítés » Elkészítettem a regisztráció...

Elkészítettem a regisztráció és a bejelentkező részét, most már tökéletesítve, csak még mindig az adatbázissal van bajom. Mi lehet a baj?

Figyelt kérdés

$result = mysql_query (INSERT INTO regisztracio SET nev='$nev', jelszo='$jelszo', email='$email') ; ez miért nem jó? Ezzel kiegészítve a kódsort törli a 3 létrehozott mezőt és kettő névtelent hoz létre.


regisztracio.php


<?php

include ("config/config.php");

?>


<html>

<table border ="2">

<td>

<form action = "regisztracio.php" method = "POST">

Felhasználónév: <font color = "red">*</font><input type = "text" name = "felhasznalo">

<br>

Jelszó: <font color = "red">*</font><input type = "password" name = "jelszo">

<br>

Jelszó megerősítése: <font color = "red">*</font><input type = "password" name = "jelszo2">

<br>

Email: <font color = "red">*</font><input type = "text" name = "email">

<br>

<br>

<input type = "submit" name = "regisztralas" value = "Regisztráció">

</form>


<?php

$felhasznalo = mysql_real_escape_string($_POST['felhasznalo']);

$jelszo = mysql_real_escape_string($_POST['jelszo']);

$jelszo2 = mysql_real_escape_string($_POST['jelszo2']);

$email = mysql_real_escape_string($_POST['email']);


if ($felhasznalo == "")

{

echo "<b><center>Nem töltötted ki a felhasználónév mezőt!</b></center>";

die;

}

if ($jelszo == "")

{

echo "<b><center>Nem töltötted ki a jelszó mezőt!</b></center>";

die;

}

if ($jelszo2 == "")

{

echo "<b><center>Nem töltötted ki a jelszó megerősítése mezőt!</b></center>";

die;

}

if ($email == "")

{

echo "<b><center>Nem töltötted ki a email mezőt!</b></center>";

die;

}

if ( $jelszo == "$jelszo" )

{

echo "<b><center>A két jelszó nem egyezik!</b></center>";

}

?>


</td>

</table>

</html>


belep.php


<?php

include ("config/config.php");

?>


<html>

<table border = "2">

<td>

<form action = "belep.php" method = "POST">

Felhasználónév: <input type = "text" name = "felhasznalo">

<br>

Jelszó: <input type = "password" name = "jelszo">

<br>

<br>

<input type = "submit" name = "belepes" value = "Belépés">


</form>


<?php

$felhasznalo = mysql_real_escape_string($_POST['felhasznalo']);

$jelszo = mysql_real_escape_string($_POST['jelszo']);


if ($felhasznalo == "")

{

echo "<b><center>Nem töltötted ki a felhasználónév mezőt!</b></center>";

die;

}

if ($jelszo == "")

{

echo "<b><center>Nem töltötted ki a jelszó mezőt!</b></center>";

die;

}

?>


</td>

</table>

</html>


2010. okt. 23. 13:40
1 2
 1/19 anonim ***** válasza:

Nem biztos, hogy az a baj, de innen lemaradt az idézőjel:

$result = mysql_query ("INSERT INTO regisztracio SET nev='$nev', jelszo='$jelszo', email='$email'") ;

Ezt nem egészen értem: "Ezzel kiegészítve a kódsort törli a 3 létrehozott mezőt és kettő névtelent hoz létre."

Van regisztracio táblád, és azon belül nev, jelszo, email meződ? Ha valami hiba van, akkor annak a megállapításának egyik módja:

mysql_query ("INSERT INTO regisztracio SET nev='$nev', jelszo='$jelszo', email='$email'") or die(mysql_error()); Ezt tedd oda, hátha kapsz hibaüzenetet.

2010. okt. 23. 13:55
Hasznos számodra ez a válasz?
 2/19 A kérdező kommentje:

Ezzel a beszúrt kóddal: mysql_query ("INSERT INTO regisztracio SET nev='$nev', jelszo='$jelszo', email='$email'") or die(mysql_error());


Ezt írja a táblán belül alul: Unknown column 'nev' in 'field list'


[link]

2010. okt. 23. 14:07
 3/19 anonim ***** válasza:

"Ezt írja a táblán belül alul: Unknown column 'nev' in 'field list'"

Akkor így nyilvánvaló, nincs nev meződ (nem lehet, hogy felhasznalo-nak nevezted el?), illetve neked nincs $nev változód, csak $felhasznalo, írd át.

És mégegy apróság, a form-ot és a php feldolgózót vagy külön fájlba kéne tenned, vagy pedig egy if-el elválasztani a kettőt (akkor is kiírja a hibaüzenetet, mielőtt még bármit beírnál, tehát a php is lefut, amíg nem kéne)

2010. okt. 23. 14:17
Hasznos számodra ez a válasz?
 4/19 A kérdező kommentje:

Jah igen $felhasznalo van most :)

Tegnap még a régi regrésznél $nev változó volt :)


Most pedig olyan gondok vannak, hogy amikor regisztrálok az adatbázisban kétszer hozza létre a reget így:

[link]

Eredetileg így nézett ki:

[link]

2010. okt. 23. 15:05
 5/19 A kérdező kommentje:
Jah és a felhasználónevet nem menti el se az emailt csak jelszót :S
2010. okt. 23. 15:06
 6/19 A kérdező kommentje:

Á most már jó :)

Csak most már annyi a baj, ha nem egyezik meg a 2 jelszó akkor is beküldi az adatbázisba :)


A felhasználó nevet azért nem mentette el meg az emailt, mert betűre volt állítva az érték adója most text-en van :) de viszont akkor a jelszót mire állítsam? Mert gondolom betűt nem fog tárolni jelen esetben csak számot :)

2010. okt. 23. 15:14
 7/19 anonim ***** válasza:

1. Már látom mi a gond, egyrészt, amit mondtam, neked nincs nev oszlopod, csak felhasznalo

$result = mysql_query ("INSERT INTO regisztracio SET felhasznalo='$felhasznalo', jelszo='$jelszo', email='$email'") ;

2. A felhasználónevet, email-t és jelszót nem egész számként kéne tárolni (az int az az egész szám), ezért tudta csak a jelszót tárolni, ahol szám volt megadva (ha az email-nél, és felhasználónévnél is számot adnál meg, azt is letárolná). A típusnál char-t, text-et vagy varchar-t adj meg (ha jól emlékszek, ezek a szöveges adat tárolására alkalmasak). (ha a jelszót md5-ben akarod eltárolni, akkor 32 hosszúságú kéne)

3. Mint ár mondtam, a form-ot és a php feldolgozó el kell választanod, vagy úgy, hogy külön fájlba teszed, vagy pedig egy if-el elválasztod a kettőt (tehát a form rész akkor fusson le, ha még nem nyomtak a submit gombra, különben a php feldolgozó fusson le), ezért írja be kétszer.

2010. okt. 23. 15:18
Hasznos számodra ez a válasz?
 8/19 A kérdező kommentje:

Nah most már tökéletes :)

A másik része pedig a reg1-ben maradt :)

Meg hogyan lehetne azt, hogy ha minden tökéletes akkor kiírja azt, hogy sikeres regisztráció?


És hogyan lehetne ezt az adatbázist login részként alkalmazni?


Meg a kiíratása tudom, hogy ez tagnap volt de mivel nem működött helyesen az adatbázis nem tudtam vele foglalkozni :)


regisztracio2.php


<?php

include ("config/config.php");


$felhasznalo = mysql_real_escape_string($_POST['felhasznalo']);

$jelszo = mysql_real_escape_string($_POST['jelszo']);

$jelszo2 = mysql_real_escape_string($_POST['jelszo2']);

$email = mysql_real_escape_string($_POST['email']);

mysql_query ("INSERT INTO regisztracio SET felhasznalo='$felhasznalo', jelszo='$jelszo', email='$email'") or die(mysql_error());


if ($felhasznalo == "")

{

echo "<b><center>Nem töltötted ki a felhasználónév mezőt!</b></center>";

die;

}

if ($jelszo == "")

{

echo "<b><center>Nem töltötted ki a jelszó mezőt!</b></center>";

die;

}

if ($jelszo2 == "")

{

echo "<b><center>Nem töltötted ki a jelszó megerősítése mezőt!</b></center>";

die;

}

if ($email == "")

{

echo "<b><center>Nem töltötted ki a email mezőt!</b></center>";

die;

}

if ( $jelszo == $jelszo2 )

{

echo "";

}

else

{

echo "<b><center>A két jelszó nem egyezik!</b></center>";

}

?>

2010. okt. 23. 15:35
 9/19 A kérdező kommentje:

Jaj :S

Olyan baj is felmerült, hogy ha valaki a regisztracio2.php részt csak frissítené akkor nem csak kiírná azt, hogy nem töltötte ki a felhasználó mezőt ez nem baj, mert ez a dolga de az már baj, hogy ha frissítik akkor üres mezőket hoz létre S.O.S

2010. okt. 23. 15:44
 10/19 anonim ***** válasza:

Örülök, hogy már jó.

A sikeres regisztrációt én úgy iratnám ki, hogy mikor már kettéválasztottad egy if-el a form és a php feldolgozó részt, csak egy példa, így:

<?php if(isset($_POST['button']){>

<form ...>

<input type="submit" value="elküld" name="button">

</form>

<?php }else{

//php feldolgozó

>

Így ha a felhasználó nem nyomott rá a submit-ra, akkor csak a form rész hajtódik végre, egyébként pedig a php feldolgozó.

A bejelentkezés-t és a kiíratást már leírtam tegnap (itt a link):

http://www.gyakorikerdesek.hu/szamitastechnika__weblapkeszit..

(esetleg a változóneveket, lekérdezéseket kell kicserélni benne).

Arra, hogy miért írja be üresen is az adatokat, elég egyszerű a válasz, először beíratod az adatokat a táblába, és csak utána ellenőrzöd, hogy nem e üresek (bár kiírod, hogy üres volt, ennek ellenére már bent van a táblába) a megadott adatok (a logika is azt diktálná, hogy először ellenőrizd, aztán, ha minden jó írasd bele), tehát a mysql_query ("INSERT INTO regisztracio SET felhasznalo='$felhasznalo', jelszo='$jelszo', email='$email'") or die(mysql_error()); -t a legutolsó if után tedd be ( ez alá: {

echo "<b><center>A két jelszó nem egyezik!</b></center>";

} -> //ide).

2010. okt. 23. 15:55
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!