Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z formularzem logowania.
Forum PHP.pl > Forum > Przedszkole
renault12
Witam!

Mam pewien problem opierający się na tym iż mam pewną stronę i w niej includowany plik logowania, logowanie przebiega pomyslnie i kiedy następuje przekierowanie spowrotem na stronę formularz logowania dalej jest widoczny, a chciałbym naprzykład by pisało "jesteś zalogowany jako "xxxx""

Tutaj przedstawiam kawałek kodu logowania który jest z includowany do strony głownej:

  1. <?php
  2. include 'dbc.php';
  3. if ($_POST['doLogin']=='Login')
  4. {
  5. $user_email = mysql_real_escape_string($_POST['usr_email']);
  6. $md5pass = md5(mysql_real_escape_string($_POST['pwd']));
  7. if (strpos($user_email,'@') === false) {
  8. $user_cond = "user_name='$user_email'";
  9. } else {
  10. $user_cond = "user_email='$user_email'";
  11. }
  12. $sql = "SELECT `id`,`user_name`,`approved` FROM users WHERE
  13. $user_cond
  14. AND `pwd` = '$md5pass' AND `banned` = '0'
  15. ";
  16. $result = mysql_query($sql) or die (mysql_error());
  17. $num = mysql_num_rows($result);
  18. if ( $num > 0 ) {
  19.  
  20. list($id,$user_name,$approved) = mysql_fetch_row($result);
  21.  
  22. if(!$approved) {
  23. $msg = "Konto jest nie aktywowane, sprawdz skrzynke pocztowa";
  24. header("Location: login.php?msg=$msg");
  25. exit();
  26. }
  27. $_SESSION['user_id']= $id;
  28. $_SESSION['user_name'] = $user_name;
  29. if(isset($_POST['remember'])){
  30. setcookie("user_id", $_SESSION['user_id'], time()+60*60*24*60, "/");
  31. setcookie("user_name", $_SESSION['user_name'], time()+60*60*24*60, "/");
  32. }
  33. header("Location: index.php");
  34. }
  35. else
  36. {
  37. $msg = urlencode("Bledny login. Wprowadz jeszcze raz poprawny login i haslo. ");
  38. header("Location: login.php?msg=$msg");
  39. }
  40. }
  41. ?>
  42. <html>
  43. <head>
  44. <title>Members Login</title>
  45. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  46. <script language="JavaScript" type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
  47. <script language="JavaScript" type="text/javascript" src="js/jquery.validate.js"></script>
  48. <script>
  49. $(document).ready(function(){
  50. $("#logForm").validate();
  51. });
  52. </script>
  53. </head>
  54. <body>
  55. <table width="19%" border="0" cellspacing="0" cellpadding="5" class="main">
  56. <td width="111" valign="top">
  57. <?
  58. if (isset($_GET['msg'])) {
  59. $msg = mysql_real_escape_string($_GET['msg']);
  60. echo "<div class=\"msg\">$msg</div>";
  61. }
  62. ?>
  63. <form action="login.php" method="post" name="logForm" id="logForm" >
  64. <table width="104%" border="0" cellpadding="1" cellspacing="1" class="loginform">
  65. <tr>
  66. <td width="100%"><center>Login</center></td>
  67. <td width="78%"><input name="usr_email" type="text" class="required" id="txtbox" size="10"></td>
  68. </tr>
  69. <tr>
  70. <td>Haslo</td>
  71. <td><input name="pwd" type="password" class="required password" id="txtbox" size="10"></td>
  72. </tr>
  73. <tr>
  74. <td colspan="2"><div align="center">
  75. <input name="remember" type="checkbox" id="remember" value="1">
  76. Zapamietaj</div></td>
  77. </tr>
  78. <tr>
  79. <td height="32" colspan="2"> <div align="center">
  80. <center><input name="doLogin" type="submit" id="doLogin3" value="Login"></center>
  81. </div></td>
  82. </tr>
  83. </table>
  84. </form>
  85. </table>
  86. </body>
  87. </html>


Będę wdzięczny za każde wskazówki i porady.
lukaszgolder
Musisz dodać warunek (if else), która sprawdza czy user jest zalogowany (sprawdza zmienną $_SESSION['user_id']) i wyświetla odpowiedni kod.
renault12
No napisałem coś takiego ale nie działa, to znaczy ze nic się nie wyświetla. Dętka ze mnie : / . Podziękowałbym gdyby ktoś pomógłby mi to przerobic .

  1. <?
  2. if ($_SESSION['user_id']) {
  3. include ('login.php');
  4. else if (isset($_SESSION['user_id'])) {
  5. echo "Jesteś zalogowany jako $user_name";
  6. }
  7.  
  8. }
  9. ?>
athei
session_start() daj na samym początku pliku a nie gdzieś w połowie. Czyli <?php session_start();
renault12
No i dobrze działa ale teraz jeszcze chodzi mi o to, gdy jestem zalogowany znikł formularz logowania. Bo raczej ten kod co napisałem wyżej nie przejdzie tego, a formularz wlasnie mam zincludowany na stronie glownej i glupio to wyglada kiedy uzytkownik jest zalogowany a jest wyswietlone dalej pola do logowania.
Jakbyś jeszcze mógł mi pomóc z tym kodem, byłbym wdzięczny.

Okej już sobie poradziłem, jakby ktoś potrzebował tego spontanicznego kodu to zapodam.
  1. <?
  2. if (!isset($_SESSION['user_id'])) {
  3. include ('login.php');
  4. }
  5. else if (isset($_SESSION['user_id'])) {
  6. echo "Jesteś zalogowany jako $user_name";
  7. }
  8.  
  9. ?>




Mam jeszcze jeden problem dotyczący powyższego kodu, otóż kiedy wpisuje login i hasło (są one poprawne) nic się nie dzieje, tzn. po kliknieciu "login" przekierowuje mnie na login.php czyli na ta sama strone a jeśli logowanie przebieglo by pomyslnie powinno przekierowac na index.php

Proszę o pomoc.
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.