Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlenie nicku zalogowanej osoby
Turson
post 23.03.2011, 17:28:33
Post #1





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jestem w trakcie pisania prostej strony z funkcją logowania, rejestracji, dodawania wpisów do księgi gości, po zalogowaniu.

Index.php : http://wklej.org/id/498680/
Rejestracja.php : http://wklej.org/id/498681/

News.php
  1. <?php
  2. $nick = $_SESSION['login'];
  3. $_SESSION['login'] = $row['login'];
  4.  
  5. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  6. if($_SESSION["zalogowany"]!=1){
  7. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  8. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  9. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  10. echo '<hr size=1 width=100%><br><br>Witaj, nick - <b>' .$_POST["login"]. '</b>';
  11. $_SESSION["zalogowany"]=1;
  12.  
  13. }
  14. else echo ShowLogin("Podano złe dane!!!");
  15. }
  16. else ShowLogin();
  17. }
  18. else{
  19. Jestes zalogowany! / <a href=index.php?wyloguj=tak>Wyloguj się</a><br>
  20. Twój nick to <h1>'.$_SESSION['login'].'</h1>'?>
  21. <?php
  22. }
  23. ?>

Właśnie tutaj miałby się wyświetlić nick.

I dodanie wpisu do ksiegi gosci:
  1. <?PHP
  2. mysql_connect("localhost", "root", "")or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
  3. mysql_select_db("login")or die("Wystąpił błąd podczas wybierania bazy danych");
  4. $wpis = ($_POST["wpis"]);
  5. $nick = $_SESSION['login'];
  6.  
  7.  
  8.  
  9. // dodajemy rekord do bazy
  10. $ins = @mysql_query("INSERT INTO ksiega SET wpis='$wpis', autor='$nick'");
  11.  
  12.  
  13. if($ins) echo "Komentarz zostal poprawnie dodany do ksiegi gosci.";
  14. else echo "Blad! Nie udalo sie :c";
  15. ?>
  16. <br><a href="index.php?id=ksiega">Powrot</a>

Dodatkowo jak widać starałem sie rowniez aby nick byl dodawany do bazy przy wpisie..
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
marius94
post 23.03.2011, 17:29:43
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.03.2011

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


  1. echo $_SESSION['login']
?
albo jak juz przypisales do zmiennej $ nick to
  1. echo $nick


Ten post edytował marius94 23.03.2011, 17:30:18
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 17:39:20
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Nie daje to nic
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 17:43:06
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Po co Ci dwa razy session_start() w index.php? Gdzie masz przypisanie danych do $_SESSION['login'];?

W news masz chyba odwrotną kolejność:
$nick = $_SESSION['login'];
$_SESSION['login'] = $row['login'];
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 17:49:08
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


w index mam przypisanie $nick = $_SESSION['login'];
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 17:53:01
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Ok masz $nick = $_SESSION['login'], ale gdzie masz zdefiniowaną wartość $_SESSION['login']?
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 17:56:41
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Dałem do news
$_SESSION['login'] = $row['login'];
$nick = $_SESSION['login'];

ale nie wiem czy o to chodzi ;/
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 18:04:21
Post #8





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Ok, w takim układzie sprawdź czy echo $row['login']; wyświetli Ci cokolwiek.
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 18:09:37
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


W news.php? Jeśli tak, to nie wywala nic.
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 18:17:27
Post #10





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Bo albo ja czegoś nie rozumiem albo Ty robisz tak:
  1. $_SESSION['login'] = $row['login']; // przypisujesz do $_SESSION['login'] wartość $row['login'] ale skoro $row['login'] jest pusty to masz również pusto w $_SESSION['login'];
  2. $nick = $_SESSION['login']; // teraz przypisujesz wartość pustego $_SESSION['login'] do $nick

Innymi słowy nigdzie nie masz wartości z loginem, czegoś co po echo $zmienna wyświetli Ci jakąś wartość.
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 18:19:03
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Myślisz o przypisaniu POST z formularza pierw do zmiennej $nick a potem ze zmiennej SESSION?
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 18:23:08
Post #12





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Tak, chociaż szczerze powiedziawszy zbyt dokładnie w Twój kod nie zerkałam. Jednak widzę, że wszystkie dotychczas omawiane zmienne masz puste, więc możesz przypisać odpowiednią wartość do $_SESSION['login'] zaraz po tym jak użytkownik zostanie poprawnie zalogowany czy zarejestrowany smile.gif.
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 18:25:15
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Wyszedł mi kod
  1. <?php
  2. $nick = $_POST['login'];
  3. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  4. if($_SESSION["zalogowany"]!=1){
  5. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  6. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  7. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  8. echo '<hr size=1 width=100%><br><br>Witaj, nick - <b>' .$_POST["login"]. '</b>';
  9. $_SESSION["zalogowany"]=1;
  10. $nick = $_SESSION['login'];
  11.  
  12. }
  13. else echo ShowLogin("Podano złe dane!!!");
  14. }
  15. else ShowLogin();
  16. }
  17. else{
  18.  
  19. Jestes zalogowany! / <a href=index.php?wyloguj=tak>Wyloguj się</a><br>
  20. Twój nick to<h1>'; echo $_SESSION['login'] ?>
  21. <?php
  22. }
  23. ?>
  24.  

I dalej pusto niestety
Go to the top of the page
+Quote Post
emajl22
post 23.03.2011, 18:28:10
Post #14





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


A zobacz co masz w $_POST['login']


--------------------
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 18:36:17
Post #15





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Ale zrób najpierw echo przed przypisaniem, żeby wiedzieć że w zmiennych coś się akurat znajduje.

$nick = $_SESSION['login']; teraz przypisujesz wartość $_SESSION['login'] do $nick...
Powód edycji: [Daiquiri]:
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 18:47:28
Post #16





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Dokładnie nie czaje
  1. $nick = $_SESSION['login'];
  2.  
  3. }
  4. else echo ShowLogin("Podano złe dane!!!");
  5. }
  6. else ShowLogin();
  7. }
  8. else{
  9.  
  10. Jestes zalogowany! / <a href=index.php?wyloguj=tak>Wyloguj się</a><br>
  11. Twój nick to<h1>'; echo $_SESSION['login']
  12. $_SESSION['login'] = $nick

jesli tak to nie dziala
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in D:\Xampp\xampp\htdocs\php\news.php on line 23
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 18:50:25
Post #17





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Forum to nie parser. Przecież nie masz średnika po echo $_SESSION['login'] i $_SESSION['login'] = $nick!

Mam wrażenie, że mylą Ci się strony przy przypisywaniu. Jeżeli $zmienna1 = "Ala" a $zmienna2 = "kot", to w przypadku gdy zrobimy : $zmienna1 = $zmienna2, po wyświetleniu echo $zmienna1 zobaczymy "kot".

To, co Ty musisz zrobić to znaleźć zmienną w której masz zapisany login, np. zaraz po wysłaniu formularza masz ją w $_POST['login'], jednak na innej stronie $_POST['login'] nie będzie miało tej wartości. Możesz rozpocząć sesję również w rejestracja.php i tam przypisać wartość $_POST do $_SESSION ($_SESSION['login'] == $_POST['login']).
Powód edycji: [Daiquiri]:
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 18:51:46
Post #18





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Średnik i tak nie daje nic, bo nie wyświetla nicku w tej kompozycji
Go to the top of the page
+Quote Post
Daiquiri
post 23.03.2011, 19:04:51
Post #19





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Brak średnika powodował parse error, a za problemy z parserem zamykamy zwykle tematy.

Powtórzę się raz jeszcze jeżeli chcesz przypisać cokolwiek do $_SESSION['login'] korzystając z innej zmiennej np. $_SESSION['login'] = $zmienna, to musisz się upewnić, że $zmienna nie jest pusta.
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 19:55:33
Post #20





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Więc co $nick przypisuję $_POST['login'] // wtedy już $nick nie jest pusty bo jest przypisany nazwą loginu z formularza
następnie wg. zaleceń daję echo i na koniec do niepustego $nick przypisuję $_SESSION['login']
wychodzi
  1. $nick = $_POST['login'];
  2. echo 'bla bla, twoj nick to ' .$nick. '';
  3. $_SESSION['login'] = $nick

Jeśli dobrze rozumiem i robię to nic z tego nie wynika
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:37