Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [PHP]CO jest nie tak?, skrypt logowania
litwin
post 19.06.2011, 17:36:07
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.06.2011

Ostrzeżenie: (0%)
-----


Witam
od bardzo niedawna interesuje się PHP. Chciałem napisać sobie skrypt do logowania i znalazłem videokurs PHP ACADEMy odnośnie tworzenia skryptu logowania. Zrobiłem wszystko tak jak wygląda w filmiku. Sam sobie nie wierząc zaczynałem pisać 3 razy od początku a efekt zawsze jest ten sam prosiłbym o pmoc w wylapaniu blędów bo nie ogarniam.

PLIK INDEX- TUTAJ RACZEJ WSZYSTKO JEST OK
<html>
<body bgcolor=black>
<body><img src="banner.jpg" height=20% width=100%><br><br><br><br><br><br><br><br><br><br>
<form action='login.php' method='POST'>


<center><font color= white>Username:</font><input type='text'name='username'> </center><br>


<center><font color= white>Password:</font><input type='password'name='password'> </center><br>


<center><input type='submit' value='login'></center>
</form>




</html>



PLIK LOGIN.PHP
<?PHP
$username=$_POST("username");
$password=$_POST("password");


if ($username&&$password)

{


$connect=mysql_connect("localhost","root","krasnal") or die ("couldnl't connect!");
mysql_select_db("phplogin") or die("Couldn't find db");

$query=mysql_query("SELECT * FROM users WHERE username='$username'");

$numrows=mysql_num_rows($query);
if ($numrows!=0)
{
while($row=mysql_fetch_assoc($query))
{
$dbusername=$row('username');
$dbpassword=$row('password');

}

//check to see if they match!
if($username==$dbusername&&$password==$dbpasssword);
{

echo"you're in!";


}
else
{
echo "incorrect password!";






}
else

die("that user doesn't exist!");



}
else
die("Please enter and username and a password!");
?>



Początkowo pokazywał się błąd w 2 lini pliku login.php a potem pokazał się w lini 34. nie bardzo wiem w czym tkwi błąd więc prosiłbym o pomoc.


Pozdrawiam
Powód edycji: [Daiquiri]: Brak reakcji, odpowiedzi, czegokolwiek. Zamykam.
Go to the top of the page
+Quote Post
Pawel_W
post 19.06.2011, 17:38:44
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


wstaw to w bbcode!

  1. $username=$_POST("username");
  2. $password=$_POST("password");

zamiast $_POST("username") daj $_POST['username'], to samo zastosuj do reszty tablic wink.gif
Go to the top of the page
+Quote Post
mat-bi
post 19.06.2011, 17:43:23
Post #3





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


  1. <center><font color= white>


Auuu puke.gif

1. Popraw skypt przed SQL Injection
2. co do query - zwykle jednocześnie sprawdza sie, czy takie hasło i user do hasła są w bazie
3. while($row=mysql_fetch_assoc($query)) - co to do *** jest?
4. to tablic odołujemy się przez nawiasy takie: [], nie takie: () (takie są dla funkcji)
Go to the top of the page
+Quote Post
litwin
post 19.06.2011, 17:51:27
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.06.2011

Ostrzeżenie: (0%)
-----


a linia 34?
Go to the top of the page
+Quote Post
mat-bi
post 19.06.2011, 17:53:06
Post #5





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


Najpierw popraw BBCODE, tego czytać się nie da
Go to the top of the page
+Quote Post
Daiquiri
post 19.06.2011, 18:28:59
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Proszę poprawić BBCode i nadać jakiś rozsądny tytuł dla wątku, w innym przypadku będę zmuszona zamknąć temat.
Go to the top of the page
+Quote Post
litwin
post 19.06.2011, 19:05:29
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.06.2011

Ostrzeżenie: (0%)
-----


<?php

$username=$_POST('username');
$password=$_POST('password');
if($username&&$password)
{

$connect=mysql_connect("localhost","root","krasnal") or die("couldnt connect!");
mysql_select_db("phplogin") or die("couldnt load database");
$query=mysql-query("SELECT * FROM users WHERE username='$username'");
$numrows=mysql_num_rows($query);

if ($numrows!=0)
{
while($row=mysql_fetch_assoc($query))
{
$dbusername= $row['username'];
$dbpassword= $row['password'];
}
// code to login

}
// check to see if they match!
if($username==$dbusername&&$password==$dbpassword)
{

echo" you are in!";
}
else
echo"incorect password!";
else
die("that user odesnt exist");

}
else
die("please enter username and password");
?>


poprawione i tak dalej nie dziala:(
Go to the top of the page
+Quote Post
drozdii07
post 19.06.2011, 19:15:46
Post #8





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


BBcode to jest [*php] i [/*php] Bez * oczywiście wink.gif


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
aachi
post 19.06.2011, 19:21:42
Post #9





Grupa: Zarejestrowani
Postów: 54
Pomógł: 12
Dołączył: 4.08.2007

Ostrzeżenie: (0%)
-----


Litwin... jak inni mówili Ci byś poprawił bbcode, to chodziło im abyś umieścił kod pomiędzy [php][/php]. Przy dodawaniu nowego posta, masz takie przyciski z napisami PHP, Manual, SQL, HTML i XML... Jak na tego z PHP klikniesz to automatycznie postawi Ci te znaczniki, a ty między nimi umieść swój kod.

Dwie pierwsze linijki:
$username=$_POST('username');
$password=$_POST('password');

Powinny też mieć nawiasy kwadratowe.

Jeśli to jest przykład jakiegoś PHP Academy, to odpuść sobie naukę przy jego pomocy. Jak wyżej wspomniano kod jest podatny na sql injection, czyli każdy mądrzejszy dzieciak może się włamać na Twoją stronkę. Poza tym ten skrypt pisał ktoś kto nie bardzo się zna na programowaniu w PHP, albo by być dokładniejszym... NIE ZNA SIĘ NA PROGRAMOWANIU.

Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 21:40