Kezdőoldal » Számítástechnika » Programozás » PHP login scriptnem mi a hibám?

PHP login scriptnem mi a hibám?

Figyelt kérdés

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<?php

include('php/login.php');

?>


<HTML>

<HEAD>

<title>AIRSOFT</title>

<link rel="stylesheet" href="css/style.css">

<script src="js/jqueryBox.js"></script>

<script src="js/scriptBox.js"></script>

<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript" src="js/carousel.js"></script>

<script type="text/javascript">

$(document).ready(function() {

carousel();

});

</script>

</HEAD>

<BODY>

<?php if(!isset($user)){ ?>

<section>

<article class="box">

<header>Login Section:</header>

<ul>

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

<li><label>Username: </label><input type="text" id="x" name="username"></li>

<li><label>Password: </label><input type="password" id="y" name="password"></li>


<ul class="gomb">

<li class="RegisterGomb"><a href="#">Register Here!</a></li>

<li class="LoginGomb"><input type="submit" name="submit" value="Login"></li>

</ul>

</form>

</ul>

</article>

</section>

<?php }

if(isset($user)){ ?>

<div class="test">

asfasfasfas

</div>


<?php

}

?>



</BODY>

</HTML>


Az abajom, amikor beirom a jelszot meg a Passwordot, ugyan ezt az ablakot hozza visssza.


PHP CODE:


<?php

if(isset($_POST['submit'])){

$host="localhost"; // Host name

$username="root"; // Mysql username

$password=""; // Mysql password

$db_name="user"; // Database name

$tbl_name="user"; // Table name


// Connect to server and select databse.

mysql_connect("$host", "$username", "$password")or die("cannot connect");

mysql_select_db("$db_name")or die("cannot select DB");



$myusername = $_POST['username'];

$mypassword = $_POST['password'];


$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

$result=mysql_query($sql);


// Mysql_num_row is counting table row

$count=mysql_num_rows($result);


if($count==1){

$user;

}

else {

echo "Wrong Username or Password";

}

}

?>



UI: PHP Különórát vásárolnék



2014. okt. 6. 20:08
 1/10 anonim ***** válasza:

1. mi a baj azzal, ha ugyanazt az ablakot hozza vissza? ez a lényege


2. mysql-t már nagyon régen nem használunk, mert nem biztonságos..helyette mysqli (egyszerűbb is)

2014. okt. 6. 20:13
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Amúgy én értek a php-hez, de nem egyszerű ezt távoktatni.
2014. okt. 6. 20:16
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:

Az hogy amikor a $user nincs beállítva azt a sectiont kell megjeleníteni amiben a Inputok vannak.

Amikor a count=1 akkor kellene megkapni a $user változót és akkor kellene megjeleníteni a bejelentkeztél echo-t.

2014. okt. 6. 20:30
 4/10 anonim ***** válasza:

formnál az action-be vagy #-t szoktunk használni, vagy (többek közt) $_SERVER['PHP_SELF'], esetleg bizonyos esetekben $_SERVER['REQUEST_URI']


Egyébként ez most azt csinálja, hogy ha létezik adatbázisban az adott felhasználó, akkor nem történik semmi ($user; önmagában értelmezhetetlen cselekvés), egyéb esetben pedig kiírja, hogy "Wrong Username[...]"

2014. okt. 6. 20:39
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
100%

Folytassuk ott, hogy maga a HTML-kód sem jó (tessék ellenőriztetni a [link] oldalon!):

- <section>, <article>, <header> tagek HTML5-ben vannak, de te HTML 4.01-et használsz.

- ha kijavítjuk HTML5-re, akkor az <article> illetve a <section>ben a címsorok hiányát taglalja


Szóval, ha csak az űrlapot nézzük, én ezt a leegyszerűsítést javasolnám:

[link]

a script.js-be belekerülhet a

$(document).ready(function() {

carousel();

});


Lássuk a PHP-t. Mint előttem is javasolták: MySQL helyett MySQLi vagy PDO. És a felhasználótól érkező adatokat tessék ellenőriztetni mysqli_real_escape_string-gel vagy prepared statement használatával - egy SQL injection-támadásnak te sem örülnél.


Sikeres bejelentkezés esetén pedig hozz létre egy munkamenetet (például: $_SESSION["logined"] = 1), és annak meglétét ellenőrizd (if ($_SESSION["logined"] == 1) {} ). Az egész login.php tetejére kelleni fog egy );

session_start();.

[link]

2014. okt. 6. 20:56
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
akkora sebezhetőségek vannak ebben a kódban mint a HÁÁÁÁZ
2014. okt. 6. 21:12
Hasznos számodra ez a válasz?
 7/10 uno20001 ***** válasza:

"if($count==1){

$user;

}"

Ez mi?! Ettől még nem lesz beállítva a $user változó.

2014. okt. 6. 22:10
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:

Kedves kérdező írtál nekem egy "nem privát"- jellegű "karakterhalmazt" privát-jellegű üzenetként:


"Szija. Olvastam amit írtál, próbáltam úgy megoldani, hogy

deklaráltam egy $logedin =false-t. amikor teljesül a feltétel, tehát user létezik akkor adtam neki egy $logedin= true-t. az indexben pedig : if($logedin = false){

itt vannak az article-k és ha true akkor meg egy szoveg. Nah én szerintem ennek mennie kellene , de még sem jó. De amikor elinditom , a login képernyo helyett egy ures lap fogad. nem értem. ezek szerint még sem állítja be magának a FAlse értéket, de nem értem miért.

}"


No szóval: ha a sikeres bejelentkezéskor adsz a $logedin változónak egy TRUE értéket, az csak addig lesz TRUE, amíg az index.php fut. Amint újratöltöd az oldalt a $logedin változó értékét elveszti. Ezért mondtam, hogy használj munkamenet-kezelést.


Itt egy példa rá:

[link]

2014. okt. 8. 15:27
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:
Igen tudom, pont az volt a lényeg elsőre. De az a bajom vele, hogy amikor "false" értéke van akkor jeleniti meg a bejeltkezett szöveget és a Logot.php -s "href"-et. Amikor "true" akkor teszi ki a login panelt. Szal telejsen fordítva. Utána amikor "False" értéke van állítólag, mivel akkor raktaj ki a bejelentkezett fület , ott ki akarom iratni a "$myusername" -t , nem találja. És amikor beirom az id pw-t akkor sem ragál semmire sem vissza adja a login formot.
2014. okt. 9. 07:22
 10/10 anonim ***** válasza:

Elég sokan leírták már, hogy hibás az egész...ez pl mit takarna? <?php

include('php/login.php');

?>

2014. okt. 9. 07:38
Hasznos számodra ez a válasz?

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!