Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Logowanie unexpected $end
konradkw
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


Przy poniższym kodzie otrzymuję błąd:
  1. Parse error: syntax error, unexpected $end IN (xxxxxxxxxxxxxxxxxxxx)/zaloguj.php ON line 40


Czy widzicie czego brakuje? szukałem w kodzie ale wygląda na to że wszystko jest zamknieęte i nazwy się zgadzają (IMG:style_emoticons/default/sad.gif) pewnie gdzieś średnika niema ale nie widzę gdzie..

  1. <?php
  2.  
  3. require ('polaczenie.php');
  4.  
  5. if(isset($_SESSION['zalogowany'])) {
  6. echo "Witam, ".$_SESSION['pseudonim'];
  7. }else{
  8.  
  9. if(isset($_POST['wyslij'])) {
  10.  
  11.  
  12. if(mysql_num_rows(mysql_query("SELECT pseudonim, haslo
  13. FROM rejestracja WHERE pseudonim = '".$_POST['pseudonim']."'
  14. && haslo = '".$_POST['haslo']."' ")) > 0) {
  15.  
  16.  
  17. if(mysql_num_rows(mysql_query("SELECT pseudonim FROM rejestracja
  18. WHERE pseudonim = '".$_POST['pseudonim']."'
  19. && haslo = '".$_POST['haslo']."' ")) > 0 ) {
  20.  
  21.  
  22. $_SESSION['zalogowany'] = true;
  23. $_SESSION['pseudonim'] = $_POST['pseudonim'];
  24. $_SESSION['haslo'] = $_POST['haslo'];
  25. echo "Jesteś zalogowany.";
  26.  
  27.  
  28. } else {
  29.  
  30. echo "Wpisałeś złe hasło, proszę spróbuj ponownie";
  31. }
  32. } else {
  33. echo "Wpisałeś złą nazwę użytkownika";
  34. }
  35. } else {
  36. require ('logowanie.php');
  37. }
  38.  
  39. ?>


.
Go to the top of the page
+Quote Post
red.orel
post
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 9
Dołączył: 3.02.2012

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


Klamry na końcu.

  1. <?php
  2.  
  3. require ('polaczenie.php');
  4.  
  5. if(isset($_SESSION['zalogowany'])) {
  6. echo "Witam, ".$_SESSION['pseudonim'];
  7. }else{
  8.  
  9. if(isset($_POST['wyslij'])) {
  10.  
  11.  
  12. if(mysql_num_rows(mysql_query("SELECT pseudonim, haslo
  13. FROM rejestracja WHERE pseudonim = '".$_POST['pseudonim']."'
  14. && haslo = '".$_POST['haslo']."' ")) > 0) {
  15.  
  16.  
  17. if(mysql_num_rows(mysql_query("SELECT pseudonim FROM rejestracja
  18. WHERE pseudonim = '".$_POST['pseudonim']."'
  19. && haslo = '".$_POST['haslo']."' ")) > 0 ) {
  20.  
  21.  
  22. $_SESSION['zalogowany'] = true;
  23. $_SESSION['pseudonim'] = $_POST['pseudonim'];
  24. $_SESSION['haslo'] = $_POST['haslo'];
  25. echo "Jesteś zalogowany.";
  26.  
  27.  
  28. } else {
  29.  
  30. echo "Wpisałeś złe hasło, proszę spróbuj ponownie";
  31. }
  32. } else {
  33. echo "Wpisałeś złą nazwę użytkownika";
  34. }
  35. } else {
  36. require ('logowanie.php');
  37. }
  38. }
  39.  
  40. ?>


Ten post edytował red.orel 15.02.2012, 10:08:55
Go to the top of the page
+Quote Post
konradkw
post
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


wszystko pięknie działa ale mam jeszcze pytanko.. Jak przesłać informację o sesji dalej - żeby na cokolwiek się kliknie żeby najpierw było sprawdzane czy zalogowany == true jako pierwsza instrukcja? czy muszę to w bazie umieszczać jako wartość czy coś?
jakos globalnie bym to musial uzyc .. ze zalozmy po zalogowaniu $zalogowany = 1 i potem kaśdy skrypt za początku sprawdza:

  1. if $zalogowany == 1 {zawartość strony;}
  2. else {
  3. echo "Musisz byc zalogowany aby oglądać tę stronę";
  4. require ('logowanie.php)
  5. }


Tylko problem w tym - jak zrobić z $zalogowany zmienną super globalną - żeby była dostępna dla każdego skryptu?



a może poprostu wystarczy na końcu skryptu z sesją wpisać:
  1. require ('index.php');


I wtedy wszystko sie bedzie dzialo na tej samej stronie?

Ten post edytował konradkw 15.02.2012, 11:48:57
Go to the top of the page
+Quote Post
bww
post
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 14.02.2012

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


W skrypcie masz $_SESSION['zalogowany'] = true, a więc do momentu wygaśnięcia sesji możesz się do niej odwoływać np. if($_SESSION['zalogowany']) {}.
Go to the top of the page
+Quote Post
konradkw
post
Post #5





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


ale gdzie jest ta informacja przechowywana? to ze sei sesja zaczeła? czy mogę określić jej długość? czy też musi być aktywna aż do wylogowania?

aha mam jeszcze niewielki problem z wylogowaniem się:

  1. <?php
  2. if(isset($_POST['wyloguj'])) {
  3. echo "Zostałeś wylogowany?";
  4. require ('logowanie.php');
  5. }
  6. ?>


zwraca mi:

Warning: Wrong parameter count for session_destroy() on line 3

ale mimo to wykonuje skrypt a przynajmniej czesc z niego bo się pokazuje "Zostałeś wylogowany"



Zapomniałem dodać że pomimo poprawnego działania skryptu - nie wyświetla błędów przy logowaniu to i tak zawsze kontynuuuje sesję pierwszego zalogowanego użytkownika - zakładam że to przez to że nigdy się poprawnie nie wylogował zgadza się (przez ten błąd wyżej) ?




to się też czasem pokazuje przy wylogowywaniu:


Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session

Ten post edytował konradkw 15.02.2012, 12:25:12
Go to the top of the page
+Quote Post
basstone
post
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

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


Po pierwsze Twój błąd wskazuje na to, że odwołujesz się do niezainicjowanej sesji.

A jeśli już chcesz usunąć to możesz to zrobić w inny sposób:

  1. $_SESSION = array();


Ten post edytował basstone 15.02.2012, 12:54:30
Go to the top of the page
+Quote Post
konradkw
post
Post #7





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


sesja równa się tablica? ale jaka tablica?



jeszcze jedno:

jak mam
  1. if(isset($_POST['wyloguj'])) {....}

to jak użyć submit w kodzie php nie zamykając ?> GUZIK SUBMIT "wyloguj się" <?php tylko jakoś go w php zagnieździć, próbowałem z echo i print i mam błąd ciągle ..
Go to the top of the page
+Quote Post
basstone
post
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

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


1. Tak, wrzucasz $_SESSION w array() i cała sesje się likwiduje (IMG:style_emoticons/default/smile.gif)

2. Nie działa Ci ponieważ pewnie nie używasz backslashy, formularz włączony w kod php powinien wyglądać tak:
  1. echo "<form action=\"jakasstrona.php\" method=\"post\">";
  2. echo "<input type=\"submit\" value=\"Wyślij\">";
  3. echo "</form>";


Musisz pamiętać, że jeśli wciskasz kod html do kodu php to przed każdym cudzysłowiem musisz użyć znaku backslash \

Ten post edytował basstone 15.02.2012, 13:05:56
Go to the top of the page
+Quote Post
konradkw
post
Post #9





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


no przecież - takie proste rozwiązanie ..
  1. <?php
  2. if(isset($_POST['wyloguj'])) {
  3. $_SESSION = array();
  4. echo "Zostałeś wylogowany?";
  5. require ('logowanie.php');
  6. }
  7. ?>


tytaj mam coś jeszcze źle bo nie wyświetla tego:

  1. echo "Zostałeś wylogowany?";
  2. require ('logowanie.php');





Ten post edytował konradkw 15.02.2012, 13:16:07
Go to the top of the page
+Quote Post
basstone
post
Post #10





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

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


A jesteś pewny, że spełniasz warunek funkcji? Pokaż mi jak wygląda formularz, którego używasz do wylogowania to będę mógł Ci coś więcej powiedzieć.
Go to the top of the page
+Quote Post
konradkw
post
Post #11





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


no tak:
  1. echo "<form action=\"wyloguj.php\" method=\"post\"\>";
  2. echo "<input type=\"submit\" value\=\"Wyślij\>";
  3. echo "\<\/form\>";


Tylko żeby było śmieszniej to na przycisku pisze Prześlij zamiast Wyślij a ja Prześlij w ŻADNYM ze skryptów nie użyłem - jak to możliwe wogóle?

Juz widze błąd - nie było name

ale przycisk dalej jest dziwny ..

I nadaj wylogowanie nie kontynuuje tylko pustą stronę zwraca..

Ten post edytował konradkw 15.02.2012, 13:25:17
Go to the top of the page
+Quote Post
basstone
post
Post #12





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

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


Tak, na przycisku pisze prześlij bo troszkę nagrzebałeś w tym kodzie (IMG:style_emoticons/default/smile.gif)

Zrób tak, to jest kod formularza wciśnięty w kod php

  1. echo "<form action=\"wyloguj.php\" method=\"post\">";
  2. echo "<input type=\"hidden\" name=\"wyloguj\" value=\"1\">";
  3. echo "<input type=\"submit\" value=\"Wyloguj mnie\">";
  4. echo "</form>";


A to jest kod pliku wyloguj.php, który odbiera dane z formularza

  1. if($_POST['wyloguj'] == 1) {
  2. $_SESSION = array();
  3. echo "Zostałeś wylogowany!";
  4. require("logowanie.php");
  5. }
Go to the top of the page
+Quote Post
konradkw
post
Post #13





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 31.05.2010

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


NO NARESZCIE!! (IMG:style_emoticons/default/smile.gif) już kilka godzin siedze nad całością i staram się sam wszystko napisać ale się dopiero uczę php więc zaczynam od w miarę prostych skryptów tylko że nie wszystkie błędy swoje jeszcze widzę (IMG:style_emoticons/default/smile.gif) Bardzo dziękuję za pomoc.

Dlaczego się mi Prześlij pokazało zamiast tego co ja chciałem wcześniej?

Da się przejść do strony głównej zamiast zostawać na wyloguj.php? jest coś co automatycznie przeniesie mnie po wylogowaniu do index.php?

Ten post edytował konradkw 15.02.2012, 13:30:43
Go to the top of the page
+Quote Post
basstone
post
Post #14





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

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


Twój kod:
  1. <input type=\"submit\" value\=\"Wyślij\>";


Za słowem Wyślij owszem wstawiłeś backslash, ale nie dałeś już cudzysłowia, dlatego pokazało Ci się domyślne Prześlij (IMG:style_emoticons/default/smile.gif) Taka sama wartość pokazałaby Ci się gdybyś w ogóle nie ustawił value (IMG:style_emoticons/default/smile.gif)


Co do drugiego pytania, takie przeniesienie najprościej będzie strzelić w js. Kod pliku wyloguj.php podmień na:

  1. if($_POST['wyloguj'] == 1) {
  2. $_SESSION = array();
  3. echo "<script> window.location = \"index.php\" </script>";
  4. }


Ten post edytował basstone 15.02.2012, 13:34:31
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: 29.08.2025 - 23:57