Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie :(
Forum PHP.pl > Forum > PHP
podol
Mam taki plik logowanie.php:

  1. <?
  2.  
  3. if (isset($_POST['submit'])) {
  4. require_once ('mysql_connect.php');
  5. function escape_data ($data) {
  6. global $dbc;
  7. if (ini_get('magic_quotes_gpc')) {
  8. $data = stripslashes($data);
  9. }
  10. return mysql_real_escape_string($data, $dbc);
  11. }
  12. $message = NULL;
  13. if (empty($_POST['username'])) {
  14. $u = FALSE;
  15. $message .= '<p>Zapomniałeś wprowadzić nazwę użytkownika!</p>';
  16. } else {
  17. $u = escape_data($_POST['username']);
  18. }
  19.  
  20. if (empty($_POST['password'])) {
  21. $p = FALSE;
  22. $message .= '<p>Zapomniałeś wprowadzić hasło!</p>';
  23. } else {
  24.  $p = escape_data($_POST['password']);
  25. }
  26.  
  27. if ($u && $p) { // Jeżeli wszystko jest OK.
  28. $query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";
  29. $result = @mysql_query ($query);
  30. $row = mysql_fetch_array ($result, MYSQL_NUM); 
  31. if ($row) { 
  32.  
  33. // Rozpocznij sesję, zarejestruj wartości i przekieruj użytkownika.
  34. session_name ('IDTwojejSesji');
  35. ini_set ('session.use_cookies', 0);
  36. $_SESSION['first_name'] = $row[1];
  37. $_SESSION['user_id'] = $row[0];
  38. header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/
  39.  
  40.  
  41. zalogowany.php
  42.  
  43.  
  44. ?" . SID);
  45. exit();
  46.  
  47. } else {
  48. $message = '<p>Wprowadzona przez Ciebie nazwa użytkownika i hasło nie zgadzają się z naszymi
     danymi.</p>'
    ; 
  49. }
  50. } else {
  51. $message .= '<p>Spróbuj jeszcze raz.</p>';
  52. }
  53. }
  54. $page_title = 'Logowanie';
  55. include ('szablony/naglowek.inc');
  56. if (isset($message)) {
  57. echo '<font color="red">', $message, '</font>';
  58. }
  59. ?>
  60.  
  61. <center>
  62. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  63.  
  64. Login:<br>
  65. <input type="text" name="username" size="14" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /><br>
  66.  
  67. Hasło:<br>
  68. <input type="password" name="password" size="14" maxlength="20" /><br>
  69.  
  70.  
  71. <input type="submit" name="submit" value="Zaloguj się" /><br><br>
  72. <a href="rejestracja.php">Rejestracja</a>
  73. </center>
  74.  
  75.  
  76. </form>


Chcaiłbym żeby po zalogowaniu w formularz:

  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  2.  
  3. Login:<br>
  4. <input type="text" name="username" size="14" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /><br>
  5.  
  6. Hasło:<br>
  7. <input type="password" name="password" size="14" maxlength="20" /><br>
  8.  
  9.  
  10. <input type="submit" name="submit" value="Zaloguj się" /><br><br>
  11. <a href="rejestracja.php">Rejestracja</a>


Zmienił się na przyklad na:

  1. <a href="wyloguj.php">Wyloguj mnie</a><br>
  2. <a href="edytuj.php">Edytuj Dane</a><br>


itp, itd.

Jak to zrobić??
strife
Masz zarys:
  1. <?php
  2.  
  3. if ( isset ( $_SESSION['Login'] ) )
  4. {
  5. // wyloguj sie, edytuj dane etc.
  6. }
  7. else
  8. {
  9. // wyswietl formularz
  10. }
  11.  
  12. ?>

Gdzie $_SESSION['Login'] to zmienna sesyjna ustawiana, gdy poprawnie się zalogujemy.

Pozdrawiam!
podol
Zrobilem tak:

  1. <?php
  2. if (isset($_SESSION['user_id'])) {
  3. echo '<a href="wylogowanie.php">Wyloguj się</a>';
  4. } else {
  5. echo '
  6.  
  7. <center>
  8. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  9.  
  10. Login:<br>
  11. <input type="text" name="username" size="14" maxlength="20" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" /><br>
  12.  
  13. Hasło:<br>
  14. <input type="password" name="password" size="14" maxlength="20" /><br>
  15.  
  16.  
  17. <input type="submit" name="submit" value="Zaloguj się" /><br><br>
  18. <a href="rejestracja.php">Rejestracja</a>
  19. </center>
  20.  
  21.  
  22. ';
  23. }
  24. ?>


Ale wyskakuje mi blad:

Kod
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /usr/local/apache2/htdocs/sacenter/cms/logowanie.php on line 71


czyli wypada gdzies na ta linijke:

  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
hiraga
hej
Sprobuj cos z tego zrobic ;]

  1. <?php 
  2. $_SESSION['zalogowany']='tak';
  3.  
  4. $end="end";
  5. wyloguj($koniec);
  6.  
  7.  
  8. function wyloguj($koniec)
  9. {
  10. if($koniec=='end')
  11. {
  12. }
  13. }
  14.  
  15. if($_SESSION['zalogowany']=='tak')
  16. {
  17. echo "<a href=test.php?koniec=$end>wyloguj</a>";
  18. }
  19. else 
  20. echo "formularz do zalogowania";
  21.  
  22.  
  23. ?>
eS...
Cytat
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /usr/local/apache2/htdocs/sacenter/cms/logowanie.php on line 71

Jest dlatego że masz 2 razy <?php
Zrób tak
  1. <?php
  2. if (isset($_SESSION['user_id'])) {
  3. echo '<a href="wylogowanie.php">Wyloguj się</a>';
  4. } else {
  5. echo '
  6.  
  7. <center>
  8. <form action="'.$_SERVER['PHP_SELF'].'" method="post">
  9.  
  10. Login:<br>
  11. <input type="text" name="username" size="14" maxlength="20" value="'. if (isset($_POST['username'])) echo $_POST['username'].'" /><br>
  12.  
  13. Hasło:<br>
  14. <input type="password" name="password" size="14" maxlength="20" /><br>
  15.  
  16.  
  17. <input type="submit" name="submit" value="Zaloguj się" /><br><br>
  18. <a href="rejestracja.php">Rejestracja</a>
  19. </center>
  20.  
  21.  
  22. ';
  23. }
  24. ?>
podol
eS... zrobilem twoim sposobem, ale pojawia sie blad:

Kod
Parse error: parse error, unexpected T_IF in /usr/local/apache2/htdocs/sacenter/cms/logowanie.php on line 74


Czyli linijka:

  1. <?php
  2. <input type="text" name="username" size="14" maxlength="20" 
  3. value="'. if (isset($_POST['username'])) echo $_POST['username'].'" /><br>
  4. ?>


Po usunieciu wartosci z value pojawia sie formularz, ale nie mozna sie zalogowac... :/


UPDATE:

zrobilem tak:

  1. <?php
  2. if (isset($_SESSION['user_id']) AND (substr($_SERVER['PHP_SELF'], -15) != 'wylogowanie.php')) {
  3. echo '<a href="wylogowanie.php">Wyloguj się</a>';
  4. } else {
  5. echo '
  6.  
  7. <center>
  8. <form action="'.$_SERVER['PHP_SELF'].'" method="post">
  9.  
  10. Login:<br>
  11. <input type="text" name="username" size="14" maxlength="20" value="login" /><br>
  12.  
  13. Hasło:<br>
  14. <input type="password" name="password" size="14" maxlength="20" /><br>
  15.  
  16.  
  17. <input type="submit" name="submit" value="Zaloguj się" /><br><br>
  18. <a href="rejestracja.php">Rejestracja</a>
  19. </center>
  20.  
  21.  
  22. ';
  23. }
  24. ?>


Ale po zalogowaniu formularz dalej jest, pomimo że pojawia sie komuniakt:
Kod
Zostałes pomyslnie zalogowany...
eS...
Hmmm może tak
  1. <?php
  2.  
  3. if (isset($_SESSION['user_id']) AND (substr($_SERVER['PHP_SELF'], -15) != 'wylogowanie.php')) {
  4. echo '<a href="wylogowanie.php">Wyloguj się</a>';
  5. exit;//<------------------ 
  6. } else {
  7. echo '
  8.  
  9. <center>
  10. <form action="'.$_SERVER['PHP_SELF'].'" method="post">
  11.  
  12. Login:<br>
  13. <input type="text" name="username" size="14" maxlength="20" value="login" /><br>
  14.  
  15. Hasło:<br>
  16. <input type="password" name="password" size="14" maxlength="20" /><br>
  17.  
  18.  
  19. <input type="submit" name="submit" value="Zaloguj się" /><br><br>
  20. <a href="rejestracja.php">Rejestracja</a>
  21. </center>
  22.  
  23.  
  24. ';
  25. }
  26.  
  27. ?>

Chociaż jak dla mnie to i bez exit powinno chodzic
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.