Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Poprawa błędów w schemacie logowania
Forum PHP.pl > Forum > Przedszkole
Asmani
Na wstępie powiem że to kolega poprosił mnie o pomoc, a że nie chcę go zawieść to zwracam się z tym do Was, jako że nie znam się tak dobrze na PHP.

Czy ktoś może poprawić mi błędy w poniższym kodzie:

Z GÓRY DZIĘKUJĘ w imieniu moim i kolegi!


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Login</title>
  6. </head>
  7. <?php
  8. if(!empty($_SESSION["MM_Username"])){
  9. echo "<p>You are logged in";
  10. echo("1 second to return to home page...</p>\n");
  11. exit('<meta http-equiv="refresh" content="1;URL=index.php" />');
  12. }else{
  13. ?>
  14. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  15. <html xmlns="http://www.w3.org/1999/xhtml">
  16. <head>
  17. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  18. <title>User Login</title>
  19. <link href="style.css" rel="stylesheet" type="text/css" />
  20. <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
  21. <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
  22. </head>
  23. <body>
  24. <?php
  25. if(isset($_POST["btnLogin"])){
  26. $username=$_POST['txtUsername'];
  27. $password=$_POST['txtPassword'];
  28. $sql=mysql_query("select * from members where username=$username and password=$password");
  29. $row=mysql_num_rows($sql);
  30. if(!$row){
  31. echo "<p>Loggin Error;
  32. echo("1to back to login page...</p>\n");
  33. exit('<meta http-equiv="refresh" content="1;URL=login.php" />');
  34. }else{
  35. $_SESSION["MM_Username"]=$_POST["txtUsername"];
  36. echo "<p>Login Successful";
  37. echo("1 second to return to home page...</p>\n");
  38. exit('<meta http-equiv="refresh" content="1;URL=index.php" />');
  39. }
  40. }else{ ?>
  41. <form id="form1" name="form1" method="post" action="">
  42. <div align="center">
  43. <table width="345" border="0">
  44. <tr>
  45. <td width="339">User Login</td>
  46. </tr>
  47. <tr>
  48. <td><span id="sprytextfield1">
  49. <label>
  50. <input type="text" name="txtUsername" id="txtUsername" />
  51. </label>
  52. <span class="textfieldRequiredMsg">Please enter your user name</span></span></td>
  53. </tr>
  54. <tr>
  55. <td><span id="sprytextfield2">
  56. <label>
  57. <input type="password" name="txtPassword" id="txtPassword" />
  58. </label>
  59. <span class="textfieldRequiredMsg">Please enter your password</span></span></td>
  60. </tr>
  61. <tr>
  62. <td><label>
  63. <input type="submit" name="btnLogin" id="btnLogin" value="Login" />
  64. <input type="reset" name="btnReset" id="btnReset" value="Reset" />
  65. </label></td>
  66. </tr>
  67. </table>
  68. </div>
  69. </form>
  70. <script type="text/javascript">
  71. <!--
  72. var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
  73. var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
  74. //-->
  75. </script>
  76. <?php
  77. }
  78. }
  79. ?>
  80.  
  81. </body>
  82. </html>
tehaha
mało tutoriali i artykułów na temat rejestracji/logowania? Wystarczy przeczytać kilka artykułów i będziesz wszystko wiedział, ale oczywiście łatwiej jest wyręczyć się kimś innym niż zadać sobie trochę trudu....pozdrawiam Ciebie i Kolegę
amii
Yyy ale o co chodzi? Nie wiem czy o to ale w linii 31 nie domyka się cudzysłów
Asmani
No czy błędów w składni nie ma nigdzie?
Oraz czy przypadkiem nie są pomylone nigdzie znaczniki?
tehaha
Cytat(Asmani @ 25.12.2010, 19:28:26 ) *
No czy błędów w składni nie ma nigdzie?
Oraz czy przypadkiem nie są pomylone nigdzie znaczniki?


a testowałeś to w ogóle?

1. poczytaj o SQL Injection
2. aby używać zmienne sesyjne trzeba najpierw użyć session_start()
3. nie używa się align="center" oraz nie używa się tabel do tworzenia struktury strony
4. Tak jak Ci napisał amii, w 31 linijce nie domknąłeś cudzysłowu, najlepiej taki kod pisz w edytorze bo to wygląda jakbyś go w notatniku pisał
Asmani
Cytat(tehaha @ 25.12.2010, 19:35:55 ) *
a testowałeś to w ogóle?

1. poczytaj o SQL Injection
2. aby używać zmienne sesyjne trzeba najpierw użyć session_start()
3. nie używa się align="center" oraz nie używa się tabel do tworzenia struktury strony
4. Tak jak Ci napisał amii, w 31 linijce nie domknąłeś cudzysłowu, najlepiej taki kod pisz w edytorze bo to wygląda jakbyś go w notatniku pisał



1. Ok.
2. Czyli w jakiej linii musiał bym to wstawić?
3. Co innego można użyć?
4. Ten błąd już poprawiłem.
tehaha
Cytat
2. Czyli w jakiej linii musiał bym to wstawić?
3. Co innego można użyć?


2. http://php.net/manual/en/function.session-start.php
3. http://www.gethifi.com/blog/html-forms-the-right-ways
Asmani
Dzieki za linki!

A czy ktos inny moze mi poprawic te bledy? Bo jak juz napisalem to jest do kolegi, a ja raczej PHP sie nie zajmuje wiec bym musial wszystko od zera sie uczyc aby mu pomoc.
Z gory dzieki!
Kwpolska
Problemów jest pięć - trzy w PHP i trzy w HTML-u.
PHP:
  1. Nigdzie nie inicujesz sesji - session_start(); powinno byc gdzies na górze.
  2. System sesji woła o pomstę do nieba - Wikibooks ma świetny.
  3. Używasz mysql_*, a nie PDO.

HTML:
  1. Masz podwojony nagłówek HTML.
  2. Używasz XHTML.

Do tego (wiem, że się czepiam):
  1. <p>Loggin Error;
  2. 1to back to login page...</p>

Powinno być: Login error, 1 second to return to login page...
tehaha
Cytat(Asmani @ 25.12.2010, 21:18:45 ) *
A czy ktos inny moze mi poprawic te bledy? Bo jak juz napisalem to jest do kolegi, a ja raczej PHP sie nie zajmuje wiec bym musial wszystko od zera sie uczyc aby mu pomoc.


aha czyli po prostu oczekujesz, że ktoś to za Ciebie zrobi tak? Jeśli nie masz ochoty sam się tym zajmować to wystaw to jako zlecenie, a nie szukasz frajerów do darmowej pracy, szanuj czas innych ludzi...
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.