Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja + Logowanie [PHP+MSQL]
Forum PHP.pl > Forum > Przedszkole
Rysiol
Będę bardzo wdzięczny za pomoc w znalezieniu błędu w kodzie PHP.

Plik index.php (ma za zadanie sprawdzić czy użytkownik jest zalogowany)

<?php
session_start();
if ((isset($_SESSION['user_logged']) &&
$_SESSION['user_logged'] != "" ||
(isset($_SESSION['user_password']) &&
$_SESSION['user_password'] != "")) {
include "logged_user.php";
} else {
include "unlogged_user.php";}
?>

Plik unlogged_user.php

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<title>Strona logowania</title>
</head>
<body>
<h1>Witaj na stronie !</h1>
<p>
Aktualnie nie jesteś zalogowany !<br> Zaloguj się lub zarejestruj<br>
<a href="user_login.php">Logowanie</a>
Jeżeli nie masz konta:
<a href="register.php">Rejestracja</a>
</p>
</body>
</html>

plik logged_user.php

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<title>Witaj na stronie !</title>
</head>
<body>
<h1>Witaj na stronie !</h1>
<p>
Zalogowałeś się !
<b>
<?php
echo $_SESSION['user_logged'];
?>
</b>.<br>
Możesz <a href="user_personal.php">klikając tutaj</a> przejść do swojego profilu.
</p>
</body>
</html>

Po odpaleniu index.php otrzymuję:
Parse error: parse error in c:\usr\apache\httpd\html\index.php on line 6

Wszelka pomoc mile widziana, proszę o wyrozumiałość, z góry dziękuję !
Wieviór
Popraw:

index.php
  1. <?php
  2. if (isset($_SESSION['user_logged']) AND !empty($_SESSION['user_logged']) AND isset($_SESSION['user_password']) AND !empty($_SESSION['user_password']))
  3. {
  4. include 'logged_user.php';
  5. } else {
  6. include 'unlogged_user.php';
  7. }
  8. ?>


Nie polecam jednak takiego sposobu. Po prost na początku każdej strony rób session_start(); i wstawiaj coś takiego. Zamiast "include 'logged_user.php';" daj wtedy zawartość strony. Zamiast "include 'unlogged_user.php';" daj wtedy komunikat o braku zalogowaniu i odeślij do formularza logowania lub rejestracji.
Rysiol
Szybki jest.. aarambo.gif

Działa.. o kurde co za ludzie... trzeba mieć łeb...

A ja się od 16.00 z tym męczę...

Viewiór masz u mnie EXTRA konto na przyszłej stronce.. happy.gif

i następny... HECTIC poprawia książkę z HELIONa za 150 zł... biggrin.gif

Tak na marginesie.. zarejestrowałem się tu chyba 5-6 min. temu... i otrzymałem pomoc po tym czasie... poważnie... niesamowite.. DZIĘKI !
Hectic
a nie łatwiej tak smile.gif

  1. <?php
  2. if(!empty($_SESSION['user_logged']) AND !empty($_SESSION['user_password'])) {
  3. include "logged_user.php";
  4. } else {
  5. include "unlogged_user.php";}
  6. ?>
Wieviór
Wieviór konta super nie potrzebuje ;]

Co do tego co pisze Hectic, rzeczywiście !empty($zmienna) zwróci FALSE gdy nie będzie ustawiona, więc isset() jest zbędne w sumie.
Rysiol
Wszelkie uwagi wziąłem pod uwagę, wszystko EXTRA rozwiązane.

Co do konta - aktualne.. za jakiś czas.. rolleyes.gif

Dokończyłem plik register.php (związany z w/w kodami)

  1. <?php
  2. include "conn.inc.php";
  3. ?>
  4. <html>
  5. <head>
  6. <title>Witaj w Stronie</title>
  7. </head>
  8. <body>
  9. <?php
  10. if (isset($_POST['submit']) && $_POST['submit'] == "Zarejestruj") {
  11. if ($_POST['username'] !="" &&
  12.  $_POST['password'] !="" &&
  13.  $_POST['first_name'] !="" &&
  14.  $_POST['last_name'] !="" &&
  15.  $_POST['email' !="") {
  16. $query = "SELECT username FROM user_info".
  17.  "WHERE username='" . $_POST['username']. "';";
  18. $result = mysql_query($query)
  19. or die(mysql_error());
  20. if (mysql_num_rows($result) != 0) {
  21. ?>
  22. <p>
  23. <font color="#FF0000">
  24. <b>Nazwa użytkownika <?php echo $_POST['username']; ?> jest już używana. Wybierz inną !
  25. </b>
  26. </font>
  27. <form action="register.php" method="post">
  28. Login:  <input type="text" name="username"><br>
  29. Hasło:  <input type="password" name="password">
  30. Adres E-mail: <input type="text" name="email"
  31. value="<?php echo $_POST['email']; ?>"><br>
  32. Imię: <input type="text" name="first_name"
  33. value="<?php echo $_POST['first_name']; ?>"><br>
  34. Nazwisko: <input type="test" name="last_name"
  35. value="<?php echo $_POST['last_name']; ?>"><br>
  36. <input type="submit" name="submit" value="Zarejestruj"> &nbsp;
  37. <input type="reset" value="Wyczyść">
  38. </form>
  39. </p>
  40. <?php
  41. } else {
  42.  $query = "INSRT INTO user_info (username, password, email, " .
  43. "first_name, last_name) " .
  44. "VALUES ('" . $_POST['username'] . "', " .
  45. "(PASSWORD('" . $_POST['password'] . "')), '" .
  46. "', '" . $_POST['email'] . "', '" . $_POST['first_name'] .
  47. "', '" . $_POST['last_name]);";
  48.  $result = mysql_query($query)
  49.  or die(mysql_error());
  50.  $_SESSION['user_logged'] = $_POST['username'];
  51.  $_SESSION['user_password'] = $_POST['password'];
  52. ?>
  53. <p>
  54. Dziękujemy, <?php>echo $_POST['first_name'] . " " .
  55. $_POST['last_name']; ?>, za zarejestrowanie się!<br>
  56. <?php
  57. header("Refresh: 5; URL=index.php");
  58. echo "Zakończono proces rejestracji ! " .
  59. "Zostaniesz przeniesiony do Strony Głównej.<br>";
  60. echo "(Jeżeli Twoja przeglądarka nie obsługuje przekierowań, " .
  61. <a href=\"index.php\">kliknij tutaj</a>)";
  62. die();
  63. }
  64.  } else {
  65. ?>
  66. <p>
  67. <font color="#FF000"><b>Pola wymagane: Login, hasło, e-mail, Imię i Nazwisko</b></font>
  68. <form action="register.php" method="post>
  69. Login:  <input type="text" name="username"><br>
  70. Hasło:  <input type="password" name="password">
  71. Adres E-mail: <input type="text" name="email"
  72. value="<?php echo $_POST['email']; ?>"><br>
  73. Imię: <input type="text" name="first_name"
  74. value="<?php echo $_POST['first_name']; ?>"><br>
  75. Nazwisko: <input type="test" name="last_name"
  76. value="<?php echo $_POST['last_name]; ?>"><br>
  77. <input type="submit" name="submit" value="Zarejestruj"> &nbsp;
  78. <input type="reset" value="Wyczyść">
  79. </form>
  80. </p>
  81. <?php
  82. }
  83. } else {
  84. ?>
  85. <p>
  86. Witamy na stronie rejestracji!<br>
  87. Pola wymagazne: Login, hasło, e-mail, Imię i Nazwisko
  88. <form action="register.php" method="post>
  89. Login:  <input type="text" name="username"><br>
  90. Hasło:  <input type="password" name="password">
  91. Adres E-mail: <input type="text" name="email"<br>
  92. Imię: <input type="text" name="first_name"<br>
  93. Nazwisko: <input type="test" name="last_name"<br>
  94. <input type="submit" name="submit" value="Zarejestruj"> &nbsp;
  95. <input type="reset" value="Wyczyść">
  96. </form>
  97. </p>
  98. <?php
  99. }
  100. ?>
  101. </body>
  102. </html>


Błąd:

Parse error: parse error, expecting `']'' in c:\usr\apache\httpd\html\register.php on line 17
Parse error: parse error, expecting `']'' in c:\usr\apache\httpd\html\register.php on line 52
Z góry wielkie dzięki za POMOC.
lukaas
Parse error: parse error, expecting `']'' in c:\usr\apache\httpd\html\register.php on line 17

  1. <?php
  2. $_POST['email'[color="#FF0000"]][/color] !="") {
  3. ?>
brak ] za 'email'

Parse error: parse error, expecting `']'' in c:\usr\apache\httpd\html\register.php on line 52
a to chyba brak ' w lini 49 za 'last_name'
  1. <?php
  2. "', '" . $_POST['last_name[color="#FF0000"]'[/color]]);";
  3. ?>
b4x
  1. <?php
  2. include "conn.inc.php";
  3. ?>
  4. <html>
  5. <head>
  6. <title>Witaj w Stronie</title>
  7. </head>
  8. <body>
  9. <?php
  10.  
  11. if (isset($_POST['submit']) && $_POST['submit'] == "Zarejestruj") {
  12. if(!empty($_POST['username']) && !empty($_POST['password']) && !empty($_POST['first_name']) && !empty($_POST['last_name']) && !empty($_POST['email'])
  13. {
  14. $query = 'select username from user_info where username="'.$_POST['username'].'"';
  15. $result = mysql_query($query) or die(mysql_error());
  16. if (mysql_num_rows($result) != 0) {
  17. ?>
  18. <p>
  19. <font color="#FF0000">
  20. <b>Nazwa użytkownika <?php echo $_POST['username']; ?> jest już używana. Wybierz inną !
  21. </b>
  22. </font>
  23. <form action="register.php" method="post">
  24. Login:  <input type="text" name="username"><br>
  25. Hasło:  <input type="password" name="password">
  26. Adres E-mail: <input type="text" name="email" value="<?php echo $_POST['email']; ?>"><br>
  27. Imię: <input type="text" name="first_name" value="<?php echo $_POST['first_name']; ?>"><br>
  28. Nazwisko: <input type="test" name="last_name" value="<?php echo $_POST['last_name']; ?>"><br>
  29. <input type="submit" name="submit" value="Zarejestruj"> &nbsp;
  30. <input type="reset" value="Wyczyść">
  31. </form>
  32. </p>
  33. <?php
  34. } else {
  35.  $query = "INSRT INTO user_info (username, password, email, " .
  36. "first_name, last_name) " .
  37. "VALUES ('" . $_POST['username'] . "', " .
  38. "(PASSWORD('" . $_POST['password'] . "')), '" .
  39. "', '" . $_POST['email'] . "', '" . $_POST['first_name'] .
  40. "', '" . $_POST['last_name]);";
  41.  $result = mysql_query($query) or die(mysql_error());
  42.  $_SESSION['user_logged'] = $_POST['username'];
  43.  $_SESSION['user_password'] = $_POST['password'];
  44. ?>
  45. <p>
  46. Dziękujemy, <?php>echo $_POST['first_name'] . " " .
  47. $_POST['last_name']; ?>, za zarejestrowanie się!<br>
  48. <?php
  49. header("Refresh: 5; URL=index.php");
  50. echo "Zakończono proces rejestracji ! " .
  51. "Zostaniesz przeniesiony do Strony Głównej.<br>";
  52. echo "(Jeżeli Twoja przeglądarka nie obsługuje przekierowań, " .
  53. <a href=\"index.php\">kliknij tutaj</a>)";
  54. die();
  55. }
  56.  } else {
  57. ?>
  58. <p>
  59. <font color="#FF000"><b>Pola wymagane: Login, hasło, e-mail, Imię i Nazwisko</b></font>
  60. <form action="register.php" method="post>
  61. Login:  <input type="text" name="username"><br>
  62. Hasło:  <input type="password" name="password">
  63. Adres E-mail: <input type="text" name="email"
  64. value="<?php echo $_POST['email']; ?>"><br>
  65. Imię: <input type="text" name="first_name"
  66. value="<?php echo $_POST['first_name]; ?>"><br>
  67. Nazwisko: <input type="test" name="last_name"
  68. value="<?php echo $_POST[last_name]; ?>"><br>
  69. <input type="submit" name="submit" value="Zarejestruj"> &nbsp;
  70. <input type="reset" value="Wyczyść">
  71. </form>
  72. </p>
  73. <?php
  74. }
  75. } else {
  76. ?>
  77. <p>
  78. Witamy na stronie rejestracji!<br>
  79. Pola wymagazne: Login, hasło, e-mail, Imię i Nazwisko
  80. <form action="register.php" method="post>
  81. Login:  <input type="text" name="username"><br>
  82. Hasło:  <input type="password" name="password">
  83. Adres E-mail: <input type="text" name="email"<br>
  84. Imię: <input type="text" name="first_name"<br>
  85. Nazwisko: <input type="test" name="last_name"<br>
  86. <input type="submit" name="submit" value="Zarejestruj"> &nbsp;
  87. <input type="reset" value="Wyczyść">
  88. </form>
  89. </p>
  90. <?php
  91. }
  92. ?>
  93. </body>
  94. </html>


nie lepiej tego typu kody :
  1. <?php
  2. $_POST['username'] !=""
  3. ?>

Zastąpić
  1. <?php
  2. !empty($_POST['username'])
  3. ?>
?
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.