Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie dotyczące znaczników
Forum PHP.pl > Forum > PHP
danielntk
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.  
mat-bi
nie ma to jak stare, dobre SQL Injection, jeszcze do tego najprosztsze, jakie może być 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
danielntk
ale co to znaczników ? , Bo są dwa razy użyte <?php ?> smile.gif Jest dobrze zrobione
mat-bi
Mozesz otworzyć tyle razy te znaczniki, ile chcesz (oczywiście, w granicach poprawności i normy wink.gif)
markonix
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'"));
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.