Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wypełnienie formularza ze zmiennej
Forum PHP.pl > Forum > Przedszkole
Terrorizer
Zastanawiam się czy jest możliwość wypełnienia formularza ze zmiennej sesji za pomocą php??
Chodzi mi o wypełnienie w sposób fizyczny, tzn, żeby ktoś nie musiał wpisywać swojego nicku dwa razy.
Czy to już wiąże się z nauką java scriptu?

Stworzyłem coś takiego, jednak to tworzy, nowy formularz, a ja myślałem ,że wypełnię stary o takiej samej nazwie biggrin.gif
  1. if(isset($_SESSION['nick'])){
  2. echo '<input type="text" name="twoje_imie" value= '.$_SESSION['nick'].'>';

Proszę wybaczyć mi ogromną ilość zadawanych pytań, jednak nie odszedłem od komputera od chyba 20 godzin, a mimo to nie umiem wielu rzeczy osobiście rozwiązać nawet z pomocą internetu
Turson
Rozwiąż to w inny sposób
  1. if(!isset($_SESSION['nick'])) $_SESSION['nick']='';

Potem już możesz wrzucić do inputa i albo będzie nick widoczny dla zalogowanego, albo puste.
com
Cytat
Stworzyłem coś takiego, jednak to tworzy, nowy formularz, a ja myślałem ,że wypełnię stary o takiej samej nazwie

tzn nie bardzo rozumiem przecież jak wrzucasz do pola input to doda Ci nowe pole z ta wartością po przeładowaniu?

jak nie chcesz pola to czemu nie echo $_SESSION['nick'] ?
Terrorizer
Mam już formularz, jednak chciałbym, żeby sesja zapamiętywała nick, aby osoba pisząca więcej postów nie musiała podawać go za każdym razem od nowa. Czyli tak jakby, input nicku powinien przez jakiś czas sam automatycznie zostawać wypełniony, w taki sposób żebym po odświeżeniu strony nadal go tam widział
Dziękuję za odpowiedź Turson, jednak nie do końca jestem w stanie obiąć Twojego pomysłu moim skromnym rozumiem :X


Poniżej wstawiłem mój cały index, czy to tak powinno wyglądać czy ja czegoś aż tak bardzo nie rozumiem biggrin.gif?
Ostatni paragraf dotyczy tego o czym mówimy
  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 + NICK SESSION//
  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. header("Location: index.php");
  41. }
  42. if(isset($_SESSION['nick'])) $_SESSION['nick']='';
  43.  
  44. ?>
  45.  
  46. </body>
  47.  
  48. </html>
nospor
Poprostu wypelnij tego inputa nickiem z sesji......


<input type="text" name="twoje_imie" value="<?php if (isset($_SESSION['nick'])) echo $_SESSION['nick']; ?>" required ><br>
I juz...

NO i koniecznie wywal to:
if(isset($_SESSION['nick'])) $_SESSION['nick']='';
przeciez to bezsensu :/ Jesli jest ustawiony nick,to go czyscisz.
Terrorizer
Nie chce to zadziałać w zaden sposób sad.gif
Macie może jakiś pomysł?
Turson
Musi działać
  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" value="<?php if (isset($_SESSION['nick'])) echo $_SESSION['nick']; ?>" 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 + NICK SESSION//
  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. header("Location: index.php");
  41. }
  42.  
  43. ?>
  44.  
  45. </body>
  46.  
  47. </html>
abjk
Jeszcze trzeba zmienić kolejność i zadziała.

  1. <?php // SENDING FORM TO DATABASE + NICK SESSION//
  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: testy5.php");
  7. }
  8.  
  9. ?>
  10.  
  11. <form action="" method="POST">
  12. <label>Twoje imie:</label><input type="text" name="twoje_imie" value="<?php if (isset($_SESSION['nick'])) echo $_SESSION['nick']; ?>" required ><br>
  13. <label>Komentarz:<br></label><textarea rows="4" cols="50" name='komentarz' autofocus required> </textarea><br>
  14. <input type='submit' name='submit' value='wyslij'>
  15. </form>
Terrorizer
Skopiowałem całość z postu Tursona, potem zmieniłem też kolejność, jednak nicku jak nie było tak nie ma sad.gif
Ja sie chyba nie nadaje do programowania :X:X:X
A jeszcze takie pytanie, czytam coś o funkcji ob_start, czy ona nie jest tutaj wymagana?
Turson
Zacznijmy od tego, czy w ogóle masz coś w sesji.
Daj na samym końcu
  1. print_r($_SESSION);

następnie wyślij formularz z jakimś nickiem i zobacz czy w tablicy coś siedzi
Terrorizer
W sesji zawarty jest nick z tego co widzę
  1. Array ( [nick] => asdad )
Turson
Zastanawia mnie więc czemu to nie działałoby prawidłowo
  1. <input type="text" name="twoje_imie" value="<?php if (isset($_SESSION['nick'])) echo $_SESSION['nick']; ?>" required >

na pewno masz tak?
Terrorizer
Idiota ze mnie... odkrywam to po raz kolejny biggrin.gif
  1. <input type="text" name="twoje_imie" value='<?php if(isset($_SESSION['nick'])) $_SESSION['nick']; ?>' required >

Miałem tak... bez "echo"
Bardzo dziękuję za pomoc 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.