Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie
Forum PHP.pl > Forum > Przedszkole
Prezesik
Witam, to znów ja. Tymrazem chodzi mi o system logowania połączony z mysql (ale nie o mysql chodzi)

  1. <?
  2. ?>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
  6. <title>AKTA - panel administratora</title>
  7. </head>
  8. <body>
  9. <?php
  10. $uchwyt=mysql_connect('localhost','root','')
  11. or die('Nieudane połączenie z bazą danych...');
  12. or die('Nie udało się wybrać bazy danych...');
  13. if(isset($_POST['pass'],$_POST['login']))
  14. {
  15. $link=mysql_query('SELECT * FROM konto');
  16. while($wiersz=mysql_fetch_array($link))
  17. if($_POST['pass']==$wiersz['haslo']&&$_POST['login']==$wiersz['login'])
  18. {
  19. $_SESSION['admin']='ok';
  20. }
  21. }
  22. if((!isset($_SESSION['admin']) || $_SESSION['admin']!='ok') && $_GET['admin']!='wyloguj')
  23. {
  24. echo '<form method="POST" action="admin.php">
  25. <p align="center">
  26. Niestety nie jesteś zalogowany.<br> Proszę podać login:<br>
  27. <input type="text" name="login" size="20"><br>
  28. Proszę podać hasło:<br>
  29. <input type="password" name="pass" size="20"><br>
  30. <input type="submit" value="OK"></p>
  31. </form>';
  32. }
  33. if(isset($_GET['admin']) && $_GET['admin']=='wyloguj')
  34. {
  35. $_SESSION['admin']='';
  36. echo 'Nastąpiło wylogowanie<br> Przejdź do <a href="admin.php">strony głównej</a>...';
  37. mysql_close($uchwyt);
  38. }
  39. ?>
  40. </body>
  41. </html>


Chodzi mi o funkcję gdzie jeżeli pole pass lub login jest puste, wyskakuje błąd i nie loguje. Gdzie mam umieścić tego if(empty()), o to konkretnie mi chodzi. Z góry dzięki za pomoc
zordon
daj sobie if(empty($login) || empty($pass)) zaraz pod
  1. $login = $_POST['login'];
  2. $pass = $_POST['pass'];


, całą resztę kodu odpowiedzialnego za logowanie w else
Prezesik
Nadal wyskakuje notka że nei uzupełniłem wszystkich pól, a formularza nie ma nadal
Damonsson
A spróbuj:

  1. if(empty($pass) || empty($login))
  2. {
  3. echo 'Nie wypełniłeś wszystkich pól';
  4. } else {


Zamienić na:

  1. if((!$_POST['login']) || (!$_POST['pass']))
  2. {
  3. echo "BŁĄD";
  4. } else {


albo jeszcze na:

  1. if(isset($_POST['Submit']))
  2. {
  3. if((!$_POST['login']) || (!$_POST['pass']))
  4. {
  5. echo "BŁĄD";
  6. } else {


Jak będzie ok to sobie tam zmień później zmienne, tak jak na początku. A jak to nie zadziała, to znaczy, że coś nie tak masz z tym formularzem.
Prezesik
no cóż, dalej wyskakuje tym razem BŁĄD snitch.gif

  1. <?
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
  7. <title>AKTA - panel administratora</title>
  8. </head>
  9.  
  10. <body>
  11. <?
  12. include('log.php');
  13. if($_SESSION['admin']=='ok')
  14. {
  15.  
  16. $uchwyt=mysql_connect('localhost','root','')
  17. or die('Nieudane połączenie z bazą danych...');
  18. or die('Nie udało się wybrać bazy danych...');
  19. ?>
  20. <table border="1" width="1200" align="center">
  21. <tr>
  22. <td align="center"><b>PANEL ADMINISTRATORA - AKTA</b></td>
  23. </tr>
  24. <tr>
  25. <td align="center">
  26. <a href="admin.php">Strona Główna PA</a> |
  27. <a href="index.php">Strona Główna</a> |
  28. <a href="admin.php?akta=pokaz">Pokaż Akta</a> |
  29. <a href="admin.php?akta=dodaj">Dodaj Akta</a></td>
  30. <a href="admin.php?akta=newadmin">Dodaj nowego admina</a></td>
  31. </tr>
  32. <tr>
  33. <td align="center">
  34. <?
  35. if(isset($_GET['akta']) && $_GET['akta']=='pokaz')
  36. {
  37. echo '<b>Żołnierze w twoich aktach:</b><br>';
  38. $link=mysql_query('SELECT * FROM akta ORDER BY id desc');
  39. while($wiersz=mysql_fetch_array($link))
  40. {
  41. echo '<b>'.$wiersz['imienazwisko'].'</b>';
  42. echo ' - ';
  43. echo $wiersz['data'];
  44. echo ' - ';
  45. echo $wiersz['stopien'];
  46. echo ' - ';
  47. echo $wiersz['stan'];
  48. echo ' - ';
  49. echo $wiersz['data2'];
  50. echo ' - ';
  51. echo $wiersz['awanse'];
  52. echo ' - ';
  53. echo '<a href="admin.php?akta=edytuj&id='.$wiersz['id'].'">Edytuj</a>';
  54. echo ' - ';
  55. echo '<a href="admin.php?akta=usun&id='.$wiersz['id'].'">Usuń</a>';
  56. echo "<br>\n";
  57. }
  58.  
  59. }
  60. elseif(isset($_GET['akta']) && $_GET['akta']=='dodaj')
  61. {
  62. echo '<b>Dodaj nowego żołnierza do akt</b><br>';
  63. echo '<form method="POST" action="admin.php?akta=dopisz">
  64. <table border="0" width="100%">
  65. <tr>
  66. <td>Imie i Nazwisko:</td>
  67. <td><input type="text" name="imienazwisko" size="64"></td>
  68. </tr>
  69. <tr>
  70. <td>Data dołączenia: </td>
  71. <td><textarea rows="0" name="data" cols="42"></textarea>(Format: DD-MM-RRRR)</td>
  72. </tr>
  73. <tr>
  74. <td>Stopień: </td>
  75. <td><textarea rows="1" name="stopien" cols="42"></textarea></td>
  76. </tr>
  77. <tr>
  78. <td>Stan pracy: </td>
  79. <td><textarea rows="1" name="stan" cols="42"></textarea></td>
  80. </tr>
  81. <tr>
  82. <td>Data odejścia (jeżeli dotyczy): </td>
  83. <td><textarea rows="1" name="data2" cols="42"></textarea>(Format: DD-MM-RRRR)</td>
  84. </tr>
  85. <tr>
  86. <td>Historia Awansów: </td>
  87. <td><textarea rows="10" name="awanse" cols="60"></textarea></td>
  88. </tr>
  89. <tr>
  90. <td> </td>
  91. <td><input type="submit" value="DODAJ"></td>
  92. </tr>
  93. </table>
  94. </form>';
  95. }
  96. elseif(isset($_GET['akta']) && $_GET['akta']=='newadmin')
  97. {
  98. echo '<b>Dodaj nowego żołnierza do akt</b><br>';
  99. echo '<form method="POST" action="admin.php?akta=newadmina">
  100. <table border="0" width="100%">
  101. <tr>
  102. <td>Login:</td>
  103. <td><input type="text" name="login" size="64"></td>
  104. </tr>
  105. <tr>
  106. <td>Hasło: </td>
  107. <td><input type="text" name="pass" size="64"></td>
  108. </tr>
  109. <tr>
  110. <td> </td>
  111. <td><input type="submit" value="DODAJ"></td>
  112. </tr>
  113. </table>
  114. </form>';
  115. }
  116. elseif(isset($_GET['akta']) && $_GET['akta']=='edytuj' && isset($_GET['id']))
  117. {
  118. $id=$_GET['id'];
  119. $link=mysql_query("SELECT * FROM akta WHERE id='$id'");
  120. $wiersz=mysql_fetch_array($link);
  121.  
  122. echo '<b>Edytuj żołnierza</b><br>';
  123. echo '<form method="POST" action="admin.php?akta=wyedytuj&id='.$wiersz['id'].'">
  124. <table border="0" width="100%">
  125. <tr>
  126. <td>Imie i Nazwisko:</td>
  127. <td><input type="text" name="imienazwisko" size="64" value="'.$wiersz['imienazwisko'].'"></td>
  128. </tr>
  129. <tr>
  130. <td>Data dołączenia: </td>
  131. <td><textarea rows="5" name="data" cols="42">'.$wiersz['data'].'</textarea> (Format: DD-MM-RRRR)</td>
  132. </tr>
  133. <tr>
  134. <td>Stopień: </td>
  135. <td><textarea rows="1" name="stopien" cols="42">'.$wiersz['stopien'].'</textarea></td>
  136. </tr>
  137. <tr>
  138. <td>Stan pracy: </td>
  139. <td><textarea rows="1" name="stan" cols="42">'.$wiersz['stan'].'</textarea></td>
  140. </tr>
  141. <tr>
  142. <td>Data odejścia (jeżeli dotyczy): </td>
  143. <td><textarea rows="1" name="data2" cols="42">'.$wiersz['data2'].'</textarea>(Format: DD-MM-RRRR)</td>
  144. </tr>
  145. <tr>
  146. <td>Historia Awansów: </td>
  147. <td><textarea rows="10" name="awanse" cols="60">'.$wiersz['awanse'].'</textarea></td>
  148. </tr>
  149. <tr>
  150. <td> </td>
  151. <td><input type="submit" value="EDYTUJ"></td>
  152. </tr>
  153. </table>
  154. </form>';
  155. }
  156. elseif(isset($_GET['akta']) && $_GET['akta']=='dopisz')
  157. {
  158. $imienazwisko=$_POST['imienazwisko'];
  159. $data=$_POST['data'];
  160. $stopien=$_POST['stopien'];
  161. $stan=$_POST['stan'];
  162. $data2=$_POST['data2'];
  163. $awanse=$_POST['awanse'];
  164. $data3=date('d.m.Y, H:i');
  165.  
  166. mysql_query("INSERT INTO akta VALUES(0,'$imienazwisko','$data','$stopien','$stan','$data2','$awanse')");
  167. echo 'Pomyślnie dodałem żołnierza: <b>'.$imienazwisko.'</b>';
  168.  
  169. }
  170. elseif(isset($_GET['akta']) && $_GET['akta']=='newadmina')
  171. {
  172. $login=$_POST['login'];
  173. $pass=$_POST['pass'];
  174. $data3=date('d.m.Y, H:i');
  175.  
  176. mysql_query("INSERT INTO konto VALUES('$login', '$pass')");
  177. echo 'Pomyślnie dodałem admina '.$login.'';
  178.  
  179. }
  180. elseif(isset($_GET['akta']) && $_GET['akta']=='wyedytuj' && isset($_GET['id']))
  181. {
  182. $imienazwisko=$_POST['imienazwisko'];
  183. $data=$_POST['data'];
  184. $stopien=$_POST['stopien'];
  185. $stan=$_POST['stan'];
  186. $data2=$_POST['data2'];
  187. $awanse=$_POST['awanse'];
  188. $id=$_GET['id'];
  189.  
  190. mysql_query("UPDATE akta SET imienazwisko='$imienazwisko', data='$data', stopien='$stopien', stan='$stan', data2='$data2', awanse='$awanse' WHERE id='$id'");
  191. echo 'Pomyślnie wyedytowałem wojaka!';
  192.  
  193. }
  194. elseif(isset($_GET['akta']) && $_GET['akta']=='usun' && isset($_GET['id']))
  195. {
  196. $id=$_GET['id'];
  197.  
  198. mysql_query("DELETE FROM akta WHERE id='$id'");
  199. echo 'Pomyślnie usunąłem wojaka numer '.$id.'!';
  200.  
  201. }
  202. else echo 'Witaj w panelu administracyjnym akt<br>
  203. W górnej części znajduje się menu, które pozwoli ci zarządzać wojakami.<br>
  204. <ul>
  205. <li>Funkcja edytuj działa prawidłowo</li>
  206. <li>Może być nieskończona ilość haseł</li>
  207. <li>Wszystkie polskie znaki są polskie, a nie krzaczkowate</li>
  208. </ul>';
  209. ?></td>
  210. </tr>
  211. <tr>
  212. <td align="right"><a href="admin.php?admin=wyloguj">WYLOGUJ >></a></td>
  213. </tr>
  214. </table>
  215. <?
  216. mysql_close($uchwyt);
  217. }
  218.  
  219. ?>
  220. </body>
  221.  
  222. </html>


To jest plik panelu admina, a plik log.php jest całkiem u góry w pierwszym poście. Co tutaj mam źle, możesz powiedzieć? smile.gif
Damonsson
A spróbowałeś dodać jeszcze to:

if(isset($_POST['Submit']))
{

?

I daj to za połączeniem z bazą danych tak jak miałeś
Prezesik
nie, i przez ten mętlik nie mam pojęcia gdzie to dać...
Damonsson
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=windows-1250" />
  4. <title>AKTA - panel administratora</title>
  5. </head>
  6. <body>
  7. <?php
  8. $uchwyt=mysql_connect('localhost','root','')
  9. or die('Nieudane połączenie z bazą danych...');
  10. or die('Nie udało się wybrać bazy danych...');
  11.  
  12. if(isset($_POST['Submit']))
  13. {
  14. if((!$_POST['login']) || (!$_POST['pass']))
  15. {
  16. echo "BŁĄD";
  17. } else {
  18.  
  19. if(isset($_POST['pass'], $_POST['login']))
  20. {
  21. $link=mysql_query('SELECT * FROM konto');
  22. while($wiersz=mysql_fetch_array($link))
  23. if($_POST['pass']==$wiersz['haslo'] || $_POST['login']==$wiersz['login'])
  24. {
  25. $_SESSION['admin']='ok';
  26. }
  27. }
  28. if((!isset($_SESSION['admin']) || $_SESSION['admin']!='ok') && $_GET['admin']!='wyloguj')
  29. {
  30. echo '<form method="POST" action="admin.php">
  31. <p align="center">
  32. Niestety nie jesteś zalogowany.<br> Proszę podać login:<br>
  33. <input type="text" name="login" size="20"><br>
  34. Proszę podać hasło:<br>
  35. <input type="password" name="pass" size="20"><br>
  36. <input type="submit" value="OK"></p>
  37.  
  38. </form>';
  39. }
  40. }
  41. if(isset($_GET['admin']) && $_GET['admin']=='wyloguj')
  42. {
  43. $_SESSION['admin']='';
  44. echo 'Nastąpiło wylogowanie<br> Przejdź do <a href="admin.php">strony głównej</a>...';
  45. mysql_close($uchwyt);
  46. }
  47. ?>
  48. </body>
  49. </html>


Wklej to, musi działać.
Prezesik
I biały pusty ekran, chyba się z tym muszę przespać
Damonsson
No to znaczy, że masz gdzieś dalej błąd, a jak nie wypełnisz jakiegoś pola LOGIN albo PASS to powinien pojawić się komunikat "BŁĄD"

A skoro wypełniasz to skrypt przechodzi dalej.
!*!
Kod
if((!$_POST['login']) || (!$_POST['pass']))
    {
        echo "BŁĄD";
        exit;
    } else {


To jest zupełnie zbędne, skoro sprawdzasz przez isset. Może to Ci pomoże.
Prezesik
Nic mi nie pomogło biggrin.gif
Ale przespałem się z tym, i wiem że w linijce numer 19 czyli
  1. if($_POST['pass']==$wiersz['haslo'] || $_POST['login']==$wiersz['login'])

Wystarczyło zmienić na:
  1. if($_POST['pass']==$wiersz['haslo']&&$_POST['login']==$wiersz['login'])
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.