Valaki ki tudná javítani ezt a PHP -kódot is?
Ez az error: Parse error: syntax error, unexpected '}' in /home/freedownloadsoft/public_html/bejelentkezes.php on line 32
<?php
session_start();
$felhasznalonev = $_POST['felhasznalonev'];
$jelszo = $_POST['jelszo'];
if($felhasznalonev&&$jelszo)
{
$kapcsolodas = mysql_connect("sql1.nulll.eu","freedownloadsoft","lollol");
$adatbazis = mysql_select_db('user',$kapcsolodas);
$query = mysql_query("SELECT * FROM info WHERE username='$felhasznalonev'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)
{
while($rows = mysql_fetch_assoc($query))
{
$dbfelhasznalonev = $rows['username'];
$dbjelszo = $rows['password'];
}
if ($felhasznalonev==$dbfelhasznalonev&&$jelszo==$dbjelszo)
{
$_SESSION['felhasznalonev'] = $felhasznalonev;
echo "Bejelentkeztél! A felhasználó oldal <a href='felhasznalo.php'>itt!</a>";
}
else
die("A jelszó nem megfelelő!")
}
else
die("Nem létezik ez a felhasználó");
}
else
die (Kérlek add meg a Felhasználóneved és jeszavad!);
?>
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
$felhasznalonev = $_POST['felhasznalonev'];
$jelszo = $_POST['jelszo'];
...
$query = mysql_query("SELECT * FROM info WHERE username='$felhasznalonev'");
felejtsd el gyorsan, hogy escapeles nélkül adsz adatot a mysql-nek. sőt ha itt járunk akkor a mysql_query parancsot is felejtsd el és helyette használj pdo -t, az sql query -kben pedig paraméterként add át a dolgokat.
gugli a barátod, de ez így nem csak h elavult, de baromi nagy biztonsági rés is.
Akk letudod írni hogan is csináljam ???
Lécike nagyon kéne és nem értek nagyon hozzá :(
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
A 11:26-kor közölt forráskóddal több probléma is van:
- Mint már említették, a legutolsó die függvényben hiányzik az idézőjel:
die ("Kérlek add meg a Felhasználóneved és Jelszavad!");
- Az SQL lekérdezésben nincs védelem SQL-injection ellen:
$query = mysql_query("SELECT * FROM info WHERE username='".mysql_real_escape_string($felhasznalonev)."';");
- Jelszót adatbázisban kódolatlanul nem tárolunk - egy SQL-támadás esetén hozzáférhetnek a felhasználók adataihoz. Minimum így:
$dbjelszo = sha1(md5("Tit-kos2345".$rows['password']));
ezt persze regisztrációnál is módosítani kell.
- Biztonsági szempontból javasolt "elhallgatni", hogy a felhasználónév vagy a jelszó közül PONTOSAN MELYIK a hibás. Tehát a hibaüzenetnek inkább "Hibás jelszó vagy felhasználónév!"-nek érdemesebb lennie.
- Nincs védelem a szkript közvetlen elérése ellen, tehát nem figyeli semmi, hogy a szkriptnek küldött adatok egy űrlaptól származnak-e vagy robot küldi őket. Ez lehetőséget ad brute-force támadások könnyebb kivitelezéséhez.
Az űrlapba helyezz el egy rejtett mezőt például így:
<input type="hidden" name="formalitas" value="<?php echo sha1(date("Y-m-d H:i")); ?>" />
majd ellenőrizd ennek meglétét:
if ($_POST["formalitas"] == sha1(date("Y-m-d H:i"))) {
//Ide jön a többi része az ellenőrzési procedúrának
} else {
die ("Hiba az űrlap elküldésekor");
}
De használhatsz Captcha-t is - ezzel ellenőrizheted, hogy valóban ember tölti-e ki az űrlapot.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Hát, mert ezek mik?
}
else
{
echo "Ez az e-mail foglalt!";
}
else
{
echo "Foglalt felhasznalonev!";
}
else
{
A PHP-ban a szelekció if - else ágakból áll.
if(FELTÉTEL) { AKKOR } else { KÜLÖNBEN }
Nem lehet csak else ág. Kell egy feltétel is, aminek a nem beteljesülése [FALSE] esetén lefut az else ága.
if(x == y)
{
ha x = y akkor ez fut le
}
else
{
ha x != [nem egyenlő] y akkor ez fut le
}
Mint látod nincs if ágad így else sem lehet csak úgy magába, csak if ág lehet magába.
Másik lehetőséged az if - else if ágak
if(x == 1)
{
lefut ha x = 1
}
else if (x == 2)
{
lefut ha x = 2
}
else if (x == 3)
{
lefut ha x = 3
}
else
{
minden más esetben ez fut le, azaz ha x nem 1, nem 2, és nem 3, hanem bármi más
}
(a fenti példa csak a else if ágak bemutatására írtam, a fenti konkrét esetben érdemesebb lenne switch szerkezetet használni)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!