Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie dotyczące znaczników, Pytanie dotyczące znaczników
danielntk
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.08.2010

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


Witam:) To chyba mój pierwszy post.

Czy dokument php jest poprawnie napisany ? , chodzi o zastosowanie znaczników php a w środku jest html. ?


  1. <?php
  2. include('mysql.php');
  3.  
  4. ?>
  5.  
  6. <html>
  7. <head>
  8. <body>
  9. <form action="zaloguj.php" method="POST">
  10. <table>
  11. <tr>
  12. <td><label for="1">Gracz:</label></td><td><input type="text" name="uzytkownik" id="1"></td>
  13. </tr>
  14.  
  15. <tr>
  16. <td><label for="2">Hasło:</label></td><td><input type="password" name="haslo"id="2"></td>
  17. <td><input type="submit" value="Zaloguj" </td>
  18. </tr>
  19. </table>
  20. </form>
  21. </body>
  22. </head>
  23. </html>
  24.  
  25. <?php
  26.  
  27. if(isset($_POST['uzytkownik']) && isset($_POST['haslo'])) {
  28.  
  29. $uzytkownik = $_POST['uzytkownik'];
  30. $haslo = $_POST['haslo'];
  31.  
  32.  
  33.  
  34. $haslo = sha1(md5($haslo));
  35.  
  36. $zaloguj = "SELECT * FROM `gracz` WHERE `uzytkownik`='$uzytkownik' AND `haslo`='$haslo'";
  37. $rezultat = mysql_query($zaloguj);
  38. $pokaz = mysql_fetch_assoc($rezultat);
  39.  
  40. }
  41.  
  42. if(isset($pokaz['uzytkownik']) && isset($pokaz['haslo'])) {
  43.  
  44. $_SESSION['uzytkownik'] = $uzytkownik;
  45. $_SESSION['haslo'] = $haslo;
  46.  
  47. echo header("Location: index.php");
  48.  
  49. }
  50. ?>
  51.  
  52.  


Ten post edytował danielntk 19.06.2011, 16:47:55
Go to the top of the page
+Quote Post
mat-bi
post
Post #2





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

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


nie ma to jak stare, dobre SQL Injection, jeszcze do tego najprosztsze, jakie może być (IMG:style_emoticons/default/wink.gif)

A tak serio:
1. wywal echo przed header
2. popraw skrypt n odpornośc przed SQL Injection
3. użyłbym mysql_num_rows zamiast mysql_fetch_assoc
4. może nawet w ogóle bym wywalić zwykłego selecta, zastępując go COUNT(), gdyż i tak zapisujesz do sesji tylko te dane, które dostajesz z formularza
Go to the top of the page
+Quote Post
danielntk
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.08.2010

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


ale co to znaczników ? , Bo są dwa razy użyte <?php ?> (IMG:style_emoticons/default/smile.gif) Jest dobrze zrobione
Go to the top of the page
+Quote Post
mat-bi
post
Post #4





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

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


Mozesz otworzyć tyle razy te znaczniki, ile chcesz (oczywiście, w granicach poprawności i normy (IMG:style_emoticons/default/wink.gif) )
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Przecież jest to totalnie niepoprawne.
header nigdy się nie wykona gdy coś prześlesz do przeglądarki, a cała strona jest przesyłana.
Jeśli umieszczasz kod PHP w pliku z HTMLem to staraj się go dawać na samym początku, a w samym kodzie PHP stosuj tylko funkcje typu echo.

Np. teraz warto by dać informacje o niepoprawnym loginie, a chyba nie wyświetlisz tego w stopce strony?
Poza tym po co zmienne $zaloguj i $rezultat gdy można wszystko zapisać tak:
  1. $row = mysql_fetch_assoc(mysql_query("SELECT * FROM `gracz` WHERE `uzytkownik`='$uzytkownik' AND `haslo`='$haslo'"));
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 01:55