Kezdőoldal » Számítástechnika » Programozás » PHP-adatbázis bajok?

PHP-adatbázis bajok?

Figyelt kérdés
Tehát van egy oldal ahol megadom a nevem,emailt,születési évet,jelszót,megerősítő jelszót,felhasználónevet.Leellenőrzöm most csak azt ,hogy megadott-e mindent és a két jelszó egyezik-e de az adatbázisba csak a jelszót rakja be és az 'id' nevű sorszámot meg a dátumot, mi lehet a baj

2015. júl. 14. 21:28
1 2
 1/19 anonim ***** válasza:
100%
Ennyiből nem lehet megmondani, kéne a forráskód is.
2015. júl. 14. 21:31
Hasznos számodra ez a válasz?
 2/19 A kérdező kommentje:

<?php

var_dump($_POST);

$submit=$_POST['submit'];

$username=strip_tags($_post['username']);

$password=strip_tags($_post['password']);

$repeatpassword=strip_tags($_POST['repeatpassword']);

$nev=strip_tags($_post['nev']);

$email=strip_tags($_post['email']);

$szuletesiev=strip_tags($_post['szuletesiev']);

$date = date("Y-m-d");

if($submit)

{

//db megnyitás

$connect=mysql_connect("localhost","root","");

mysql_select_db("tanulo");

$nevcheck=mysql_query("

SELECT username FROM users WHERE username='$username'");

if((isset($_POST['username'])&& !empty($_POST['username']) && strlen($_POST['username'])<=50&& strlen($_POST['username'])>=8))

{echo"felhasznév jó<br/>" ;}

else

{

echo"Elrontottad a felhasználónevet,maximum 50,minimum 8 karakter legyen<br/>";

}

if(isset($_POST['password'])&& !empty($_POST['password']) && strlen($_POST['password'])<=50 && strlen($_POST['password'])>=8)

{echo"jelszó jó<br/>";}

else

{echo"A jelszó minimum 8 ,de maximum 50 karakter lehet<br/>";}

if(isset($_POST['nev'])&& !empty($_POST['nev']) && strlen($_POST['nev'])<100)

{echo"név jó<br/>";}

else

{echo"A neved legfeljebb 100 karakterből állhat<br/>";}

if

(isset($_POST['email'])&& !empty($_POST['email']))

{echo"email jó<br/>";}

else

{echo"Nem adtál meg email címet<br/>";}

if(isset($_POST['szuletesiev'])&& !empty ($_POST['szuletesiev']))

{echo"születési jó<br/>";}

else

{echo"Nem adtál meg születési évet<br/>";}

if(isset($_POST['repeatpassword'])&& !empty($_POST['repeatpassword']))

{echo"Az ismétlő jeszót megadtad!<br/>";}

else

{echo"Nem adtad meg vagy elirtad az ismétlő jelszavat!<br/>";}

if($password=$repeatpassword)

{

echo"ok<br/>";

$queryreg= mysql_query("

INSERT INTO users VALUES('','$username','$password','$nev','$email','$szuletesiev','$date')");


}

else{echo"Nem egyezik a két jelszó <br/>";}


}

?>

<html>

<head>

</head>

<body>

</body>

<form action='regi.php' method='POST'>

<table>

<tr>

<td>Felhasználónév:</td>

<td><input type="text" name="username"/> *</td>

</tr>

<tr>

<td>Jelszó:</td>

<td><input type="password" name="password" /> *</td>

</tr>

<tr>

<td>Ismétlő jelszó:</td>

<td><input type="text" name="repeatpassword" /> *</td>

</tr>

<tr>

<td>Név:</td>

<td><input type="text" name="nev" /> *</td>

</tr>

<tr>

<td>Email:</td>

<td><input type="email" name="email" /> *</td>

</tr>

<tr>

<td>Születési év:</td>

<td><input type="number" name="szuletesiev" /> *</td>

</tr>

<tr><td><input type="submit" name="submit" value="Elküldés!"></td></tr>


</table>

</form>

</html>

2015. júl. 14. 21:37
 3/19 anonim ***** válasza:
100%
Az insert into-nál, a változók köré nem kellenek a ''-k. Ez potenciális hiba lehet, mivel ""-között figyeli, h változó van-é, de a ''-nál nem.
2015. júl. 14. 22:07
Hasznos számodra ez a válasz?
 4/19 anonim ***** válasza:
100%

$username=strip_tags($_post['username']);

$password=strip_tags($_post['password']);

$repeatpassword=strip_tags($_POST['repeatpassword']);

$nev=strip_tags($_post['nev']);

$email=strip_tags($_post['email']);

$szuletesiev=strip_tags($_post['szuletesiev']);


A strip_tags nem véd meg az SQL injection alapú támadásoktól. Használj mysql_real_escape_string-et helyette.


if($password=$repeatpassword)

Ha össze akarsz hasonlítani valamit, akkor == operátort használj, ne az értékadás operátorát.


INSERT INTO users VALUES('','$username','$password','$nev','$email','$szuletes

iev','$date')");

Az azonosító gondolom auto_increment. Inkább használd ezt az INSERT INTO szintaxist:

INSERT INTO táblanév (`mező1`, `mező2`, ...) VALUES (érték1, érték2, ...)

Pl.

INSERT INTO users (`username`, `password`, `nev`, `email`, `szuletesiev`, `date`) VALUES ('$username','$password','$nev','$email','$szuletesiev','$date')


Na meg nem ártana megbarátkozni a mysqli-vel. Így hirtelen ennyi.

2015. júl. 14. 22:49
Hasznos számodra ez a válasz?
 5/19 anonim ***** válasza:
Basszus, már 2012-ben egy egyszerű okj-s tanfolyamon is a szánkba rágták hogy minimum mysqli-t használjunk mysql helyett, erre itt még mindig ezt kell szajkózni. Hát megőrülök komolyan.
2015. júl. 14. 23:50
Hasznos számodra ez a válasz?
 6/19 anonim ***** válasza:

Nem csak 2012 óta, hanem 2009 óta legalább, plusz jobb helyeken azt is, hogy a prepared statementek nem csak viccből vannak.


Ezt a mostani kódot pár pillanat alatt ki lehet játszani és le lehet nyúlni a teljes adatbázist akár.

Plusz mi az már így 2015-ben, hogy nincs hashelve a jelszó???

2015. júl. 15. 00:06
Hasznos számodra ez a válasz?
 7/19 anonim ***** válasza:
NA jó,de én 2012 előtt nem programoztam soha php-t, meg semmilyen adatbázist. De a hashelés is csak akkor érdekes ha mások adatait tárolod, a saját jelszavát szerintem mindenki úgy teszi "közkinccsé" ahogy akarja (ott azért már régen gond van ha már az adatbázisban turkálnak) :)
2015. júl. 15. 00:10
Hasznos számodra ez a válasz?
 8/19 anonim ***** válasza:

Már miért is lenne csak akkor érdekes, meg mire gondoltál itt?

"Mások adatait" fogja valószínűleg a "users" táblában tárolni, ahol pedig igencsak gáz, ha bárki simán olvashatja a jelszavakat.

2015. júl. 15. 01:00
Hasznos számodra ez a válasz?
 9/19 anonim ***** válasza:
Jaaa.. annyira nem olvastam bele a hozzászólásba... :) Egyébként mostanában jutott az eszembe hogy az egy dolog hogy védjük a userek jelszavát az illetéktelenektől, de tőlünk ki védi meg? Honnan tudhatom userként hogy a szolgáltató használ hasítást a jelszó tárolásakor?
2015. júl. 15. 02:44
Hasznos számodra ez a válasz?
 10/19 anonim ***** válasza:
Onnan, hogy mrgbizhato helyekre regisztralsz. Van erre valami jogszabaly vagy hasonlo eloiras.
2015. júl. 15. 07:08
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!