Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie :(, mały problem
podol
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 12.07.2005
Skąd: Starogard Gdański

Ostrzeżenie: (0%)
-----


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ć??
Go to the top of the page
+Quote Post
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
podol
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 12.07.2005
Skąd: Starogard Gdański

Ostrzeżenie: (0%)
-----


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">
Go to the top of the page
+Quote Post
hiraga
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
eS...
post
Post #5





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
podol
post
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 12.07.2005
Skąd: Starogard Gdański

Ostrzeżenie: (0%)
-----


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...


Ten post edytował podol 30.03.2006, 09:55:03
Go to the top of the page
+Quote Post
eS...
post
Post #7





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:13