Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Łączenie HTML z PHP
Forum PHP.pl > Forum > Przedszkole
Panicz74
Witam ponownie smile.gif

Mam kolejne pytanie "początkującego od zera". Mam dany przykładowy skrypt logowania. Wszystko działa elegancko, ale chciałbym to jakoś wystylizować. Przygotowałem sobie szablon w html i nie mam pojęcia jak to połączyć.

Skrypt PHP:
  1. <?php
  2. include 'config.php';
  3. db_connect();
  4.  
  5. // sprawdzamy czy user nie jest przypadkiem zalogowany
  6. if(!$_SESSION['logged']) {
  7. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  8. if(isset($_POST['name'])) {
  9. // filtrujemy dane...
  10. $_POST['name'] = clear($_POST['name']);
  11. $_POST['password'] = clear($_POST['password']);
  12. // i kodujemy hasło
  13. $_POST['password'] = codepass($_POST['password']);
  14.  
  15. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  16. $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  17. if(mysql_num_rows($result) > 0) {
  18. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  19. $row = mysql_fetch_assoc($result);
  20. $_SESSION['logged'] = true;
  21. $_SESSION['user_id'] = $row['user_id'];
  22. echo '<p>Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php">stronę główną</a>.</p>';
  23. } else {
  24. echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>';
  25. }
  26. }
  27.  
  28. // wyświetlamy komunikat na zalogowanie się
  29. '<form method="post" action="login.php">
  30. <p>
  31. Login:<br>
  32. <input type="text" value="'.$_POST['name'].'" name="name">
  33. </p>
  34. <p>
  35. Hasło:<br>
  36. <input type="password" value="'.$_POST['password'].'" name="password">
  37. </p>
  38. <p>
  39. <input type="submit" value="Zaloguj">
  40. </p>
  41. </form>';
  42. } else {
  43. echo '<p>Jesteś już zalogowany, więc nie możesz się zalogować ponownie.</p>
  44. <p>[<a href="index.php">Powrót</a>]</p>';
  45. }
  46.  
  47. db_close();
  48. ?>


Plik HTML:
  1. <!DOCTYPE HTML>
  2. <html lang="pl">
  3. <meta charset="utf-8" />
  4. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  5. </head>
  6.  
  7. #container
  8. {
  9. width: 1000px;
  10. margin-left: auto;
  11. margin-right: auto;
  12. }
  13. #logo
  14. {
  15. background-color: black;
  16. color: white;
  17. text-align: center;
  18. padding: 15px;
  19. }
  20. #nav
  21. {
  22. float: left;
  23. background-color: lightgray;
  24. width: 120px;
  25. min-height: 500px;
  26. padding: 10px;
  27. }
  28. #tresc
  29. {
  30. float: left;
  31. text-align: center;
  32. padding: 20px;
  33. width: 600px;
  34. }
  35. #ad
  36. {
  37. float: right;
  38. width: 160px.
  39. min-height: 500px;
  40. padding: 10px;
  41. background-color: lightgray;
  42. }
  43. #footer
  44. {
  45. clear: both;
  46. background-color: black;
  47. color: white;
  48. text-align: center;
  49. padding: 20px;
  50. }
  51.  
  52.  
  53.  
  54.  
  55. <div id="container">
  56.  
  57. <div id="logo">
  58. <h1>Panel logowania</h1>
  59. </div>
  60.  
  61. <div id="nav">
  62. Lista możliwych operacji
  63. </div>
  64.  
  65. <div id="tresc">
  66. Tutaj będzie formularz logowania
  67. </div>
  68.  
  69. <div id="ad">
  70. Miejsce na Twoją reklamę
  71. </div>
  72.  
  73. <div id="footer">
  74. Copyright by RP 2015
  75. </div>
  76.  
  77. </div>
  78.  
  79.  
  80. </body>
  81. </html>


Przepraszam za takie pytania ale dopiero raczkuję. Takie problemy naprawdę są dla mnie na tym etapie problemami a jednocześnie wiem, że kto pyta nie błądzi. Czy ktoś może mi pomóc?
markonix
"Tutaj będzie formularz logowania" - no go tam wklej i to wszystko.
Panicz74
Wkleiłem tam cały skrypt:

  1. <!DOCTYPE HTML>
  2. <html lang="pl">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  6. <title></title>
  7. </head>
  8.  
  9. <style>
  10. #container
  11. {
  12. width: 1000px;
  13. margin-left: auto;
  14. margin-right: auto;
  15. }
  16. #logo
  17. {
  18. background-color: black;
  19. color: white;
  20. text-align: center;
  21. padding: 15px;
  22. }
  23. #nav
  24. {
  25. float: left;
  26. background-color: lightgray;
  27. width: 120px;
  28. min-height: 500px;
  29. padding: 10px;
  30. }
  31. #tresc
  32. {
  33. float: left;
  34. text-align: center;
  35. padding: 20px;
  36. width: 600px;
  37. }
  38. #ad
  39. {
  40. float: right;
  41. width: 160px.
  42. min-height: 500px;
  43. padding: 10px;
  44. background-color: lightgray;
  45. }
  46. #footer
  47. {
  48. clear: both;
  49. background-color: black;
  50. color: white;
  51. text-align: center;
  52. padding: 20px;
  53. }
  54.  
  55.  
  56. </style>
  57.  
  58. <body>
  59.  
  60. <div id="container">
  61.  
  62. <div id="logo">
  63. <h1>Panel logowania</h1>
  64. </div>
  65.  
  66. <div id="nav">
  67. Lista możliwych operacji
  68. </div>
  69.  
  70. <div id="tresc">
  71. <?php
  72. include 'config.php';
  73. db_connect();
  74.  
  75. // sprawdzamy czy user nie jest przypadkiem zalogowany
  76. if(!$_SESSION['logged']) {
  77. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  78. if(isset($_POST['name'])) {
  79. // filtrujemy dane...
  80. $_POST['name'] = clear($_POST['name']);
  81. $_POST['password'] = clear($_POST['password']);
  82. // i kodujemy hasło
  83. $_POST['password'] = codepass($_POST['password']);
  84.  
  85. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  86. $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  87. if(mysql_num_rows($result) > 0) {
  88. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  89. $row = mysql_fetch_assoc($result);
  90. $_SESSION['logged'] = true;
  91. $_SESSION['user_id'] = $row['user_id'];
  92. echo '<p>Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php">stronę główną</a>.</p>';
  93. } else {
  94. echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>';
  95. }
  96. }
  97.  
  98. // wyświetlamy komunikat na zalogowanie się
  99. '<form method="post" action="login.php">
  100. <p>
  101. Login:<br>
  102. <input type="text" value="'.$_POST['name'].'" name="name">
  103. </p>
  104. <p>
  105. Hasło:<br>
  106. <input type="password" value="'.$_POST['password'].'" name="password">
  107. </p>
  108. <p>
  109. <input type="submit" value="Zaloguj">
  110. </p>
  111. </form>';
  112. } else {
  113. echo '<p>Jesteś już zalogowany, więc nie możesz się zalogować ponownie.</p>
  114. <p>[<a href="index.php">Powrót</a>]</p>';
  115. }
  116.  
  117. db_close();
  118. ?>
  119. </div>
  120.  
  121. <div id="ad">
  122. Miejsce na Twoją reklamę
  123. </div>
  124.  
  125. <div id="footer">
  126. Copyright by RP 2015
  127. </div>
  128.  
  129. </div>
  130.  
  131.  
  132. </body>
  133. </html>


Działa, ale przeglądarka pokazuje komentarze kodu, niektóre instrukcje echo, itp. Chciałbym żeby widoczny był tylko formularz.
nospor
Plik, w ktory wstawiasz kod php, ma być parsowany jako plik php.... zazwyczaj oznacza to, ze plik ten ma miec rozszerzenie .php a nie .html...
Panicz74
Haha biggrin.gif Pięknie smile.gif

Jeszcze tylko jeden problem. Przeglądarka oprócz formularza pokazuje jeszcze takie błędy:

Notice: Undefined index: name in H:\PHP\xampp\htdocs\login\index1.php on line 104

Notice: Undefined index: password in H:\PHP\xampp\htdocs\login\index1.php on line 108


Jak się ich pozbyć?
markonix
Wystarczy je przeczytać, zrozumieć i wtedy naprawić.
Jeżeli z tym drugim masz problem to wystarczy się wspomóc ogólnodostępną pomocą, nawet chyba w przypiętym temacie.

http://forum.php.pl/index.php?showtopic=44...t=0&start=0 punkt 7.
Panicz74
Ustawienie serwera wygląda następująco:

; error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT


Jest napisane, że powinienem użyć pętli:

  1. <?php
  2.  
  3. if(isset($_GET['zmienna'])) $zmienna = $_GET['zmienna'];
  4.  
  5. ?>


Tylko jak ją wcisnąć do formularza? Wszystkie moje próby kończą się błędami...
KsaR
Cytat(Panicz74 @ 29.09.2015, 23:13:32 ) *
Ustawienie serwera wygląda następująco:

; error_reporting
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT


Jest napisane, że powinienem użyć pętli:

  1. <?php
  2.  
  3. if(isset($_GET['zmienna'])) $zmienna = $_GET['zmienna'];
  4.  
  5. ?>


Tylko jak ją wcisnąć do formularza? Wszystkie moje próby kończą się błędami...



Podmien:
  1. value="'.$_POST['name'].'" name="name">
  2. </p>
  3. <p>
  4. Hasło:<br>
  5. <input type="password" value="'.$_POST['password'].'"

Na:
  1. value="'.(isset($_POST['name'])?$_POST['name']:'').'" name="name">
  2. </p>
  3. <p>
  4. Hasło:<br>
  5. <input type="password" value="'.(isset($_POST['password'])?$_POST['password']:'').'"

A ten przyklad co podales i tak bledny bo moze rzucic undefined variable $zmienna

Lepiej zrob tak:
  1. $zmienna=isset($_GET['zmienna']) ? $_GET['zmienna'] : '';
Panicz74
Działa smile.gif Super elegancko. Dziękuję Wam koledzy.

A jeszcze możecie mi wytłumaczyć składnię tego zapisu? :

  1. value="'.(isset($_POST['name'])?$_POST['name']:'').'" name="name">
  2. value="'.(isset($_POST['password'])?$_POST['password']:'').'"


Bo rozumiem to tak:

(isset($_POST['name']) = Jeśli zmienna 'name' jest ustawiona,
?$_POST['name']:'').'" = i jeśli zmienna 'name' jest ustawiona (questionmark.gif?)

O co chodzi z tym drugim członem?
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.