Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyciąganie nicku z sesji
Forum PHP.pl > Forum > Przedszkole
Terrorizer
Cześć,
Niestety kolejny raz jestem zmuszony prosić o pomoc. Cały dzień siedze i myśle nad prostymi linijkami kodu, a każdy kolejny pomysł okazuje się coraz gorszy...
Mam prostą stronę na której wpisuje się komentarze.
Mój tok rozumowania jest taki...
Wypełniam formularz, przesyłany nick i komentarz za pomocą post zapisywane są w bazie. W tym czasie przechwytywany jest nick z POST i przekazywany do sesji, która sprawia ,że nie trzeba go ponownie wpisywać.
Na razie nie umiem wstawić takiej informacji do formularza, ale chciałem chociaż aby echo wypisało mi dany nick, jednak coś z tą moją sesją jest nie tak.
Co ja tutaj robię źle? Linijki: 9,13,14 odpowiedzialne są za sesję

  1. <form action="" method="POST">
  2. <label>Twoje imie:</label><input type="text" name='twoje_imie' required ><br>
  3. <label>Komentarz:<br></label><textarea rows="4" cols="50" name='komentarz' autofocus required> </textarea><br>
  4. <input type='submit' name='submit' value='wyslij'>
  5. </form>
  6.  
  7.  
  8. <?php // SENDING FORM TO DATABASE + SESSION NICK //
  9. if (isset($_POST['submit'])){
  10. mysql_query('insert into komentarze (imie, komentarz) values ("'.$_POST["twoje_imie"].'" , "'.$_POST["komentarz"].'")')
  11. or die('nie mozna zapisac komentarza'.mysql_error());
  12. $_SESSION['nick'] = $_POST['twoje_imie'];
  13. echo("$_SESSION['nick']");
  14. header("Location: index.php");
  15. }
  16. ?>
Turson
daj
  1. print_r($_SESSION);
Terrorizer
W ogóle wywala mi "Parse error: syntax error, unexpected 'nick' (T_STRING) " sad.gif
webmaniak
Chyba:
  1. echo($_SESSION['nick']);
Terrorizer
Uff te apostrofy mnie wykończą...
Linijka print_r niczego mi nie wyświetla sad.gif
webmaniak
A to co podalem?
Terrorizer
Niestety też nic sad.gif
Chociaż teraz nie ma błędu, bo apostrofy poprawiłem biggrin.gif
webmaniak
To:
  1. var_dump($_SESSION);

Wklej wynik.
Terrorizer
To też niczego nie wyświetla sad.gif
Mój błąd leży gdzieś w podstawach, jak się domyślam. Coś musiałem źle sformułować, zwyczajnie te sesje mi nie działają
Turson
Pokaż cały kod łącznie z tym var_dump
Terrorizer
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <html lang="en">
  5. <title> Pisz co chcesz </title>
  6. <meta charset="UTF-8">
  7. <link rel="stylesheet" href="css/index style.css">
  8. </head>
  9.  
  10.  
  11. <?php // DATABASE CONNECTION //
  12. mysql_connect('localhost','root','')
  13. or die('brak polaczenia z serwerem<br>blad'.mysql_error());
  14.  
  15. mysql_select_db('komentarze')
  16. or die('Nie mogę połączyć się z bazą danych<br>Błąd: '.mysql_error());
  17. ?>
  18.  
  19. <div id="comments">
  20. <?php // WRITING COMMENTS FROM DATABASE //
  21. $komenty = mysql_query('select * from komentarze');
  22. while ($txt = mysql_fetch_assoc($komenty)){
  23. echo($txt['imie'].' : '. $txt['komentarz'] .' '. "<br>");
  24. }
  25. ?></div>
  26.  
  27.  
  28. <form action="" method="POST">
  29. <label>Twoje imie:</label><input type="text" name='twoje_imie' required ><br>
  30. <label>Komentarz:<br></label><textarea rows="4" cols="50" name='komentarz' autofocus required> </textarea><br>
  31. <input type='submit' name='submit' value='wyslij'>
  32. </form>
  33.  
  34.  
  35. <?php // SENDING FORM TO DATABASE //
  36. if (isset($_POST['submit'])){
  37. mysql_query('insert into komentarze (imie, komentarz) values ("'.$_POST["twoje_imie"].'" , "'.$_POST["komentarz"].'")')
  38. or die('nie mozna zapisac komentarza'.mysql_error());
  39. $_SESSION['nick'] = $_POST['twoje_imie'];
  40. echo($_SESSION['nick']);
  41. var_dump($_SESSION);
  42. header("Location: index.php");
  43. }
  44. ?>
  45.  
  46. </body>
  47.  
  48. </html>
Turson
I po wysłaniu formularzu nie wyświetla czy $_SESSION jest null/array?
redeemer
Włącz sobie wyświetlanie warningów, bo powinieneś widzieć to:
Kod
PHP Warning:  session_start(): Cannot send session cookie - headers already sent by ...

http://phpedia.pl/wiki/Cannot_add_header_i...rs_already_sent
Terrorizer
Nic mi się nie wyświetla .. sad.gif
Dzięki za info o warningach, myślałem ,że wszystkie mi się wyświetlają. Chociaż i tak nic z tego nie rozumiem haha.gif

Będę wdzięczny za każdą informację... siedzę od wczoraj gapiąc się w kod i nie jestem w stanie zrobić kroku dalej sad.gif
abjk
A czy po przekierowaniu na index.php ustawiłeś w nim sesję?

  1. header("Location: index.php");
Terrorizer
To co zamieściłem kilka postów wyżej, to mój index.php
Jest to cały kod jaki napisałem, z wyłączeniem CSS.
abjk
Wyjmij var_dumpa z warunku if. Po przekierowaniu nie wchodzisz już do pętli if, bo $_POST['submit'] już nie ma. Dlatego var_dump nic nie pokazuje.

  1. <?php // SENDING FORM TO DATABASE //
  2. if (isset($_POST['submit'])){
  3. mysql_query('insert into komentarze (imie, komentarz) values ("'.$_POST["twoje_imie"].'" , "'.$_POST["komentarz"].'")')
  4. or die('nie mozna zapisac komentarza'.mysql_error());
  5. $_SESSION['nick'] = $_POST['twoje_imie'];
  6. header("Location: index.php");
  7. }
  8.  
  9. echo($_SESSION['nick']);
  10. var_dump($_SESSION);
  11. ?>
Terrorizer
Zajebiście!! działa biggrin.gif
Dziękuję wszystkim exclamation.gif
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.