Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z sesjami
Forum PHP.pl > Forum > PHP
lutador
witam

Moj skrypt dodaje dane z formularza do bazy. w oparciu o sesje chcialem zrobic zeby po nie wypelnieniu wszystkich pol zwracany byl blad i wyskakiwal odpowiedni komentarz kolo pol. Niestety popelnilem jakis blad i za kazdym razem nie zaleznie czy pola sa wypelnione czy nie zwracana jest literka A.

o to plik skrypt ktory ma sprawdzac czy pola sa wypelnione

  1. <?php
  2.  
  3.  
  4. if (!session_is_registered("blad"))
  5.  
  6. $blad = array();
  7.  
  8.  
  9. if (!session_is_registered("form_wart"))
  10. session_register("form_wart");
  11.  
  12.  
  13. if (empty($form_wart["nazwa"]))
  14. $blad["nazwa"] = "Prosze wpisac nazwe leku";
  15.  
  16. if (empty($form_wart["opis"]))
  17. $blad["opis"] = "Prosze wpisac opis leku";
  18.  
  19. if (count($blad))
  20. {
  21.  
  22. header("Location: form_leki_dodaj.php");
  23. }
  24.  
  25.  
  26. //dane poprawne.. zapisanie do bazy..
  27.  
  28. include 'zmienne.php'; //tutaj przechowywane sa tylkozmienne do logowania do bazy
  29.  
  30. if(!($db_link = mysql_connect($mysql_host, $mysql_user, $mysql_pass))) {
  31.  die("Could not connect with the database");
  32. }
  33.  
  34. if(!mysql_select_db($db, $db_link))
  35. {
  36. die("nie mogl wybrac bazy");
  37. }
  38.  
  39.  
  40. $wstaw = mysql_query("INSERT INTO leki 
  41.  set
  42.  nazwa_leku = '$form_wart[nazwa]',
  43.  opis = '$form_wart[opis]'");
  44.  
  45.  
  46. ?>


a o to formularz html
funkcja php w formularzy sluzy do wywolywania bledow

  1. <?php
  2.  
  3. session_start();
  4.  
  5. function blad_pola($nazwa_pola, $blad)
  6. {
  7. if (isset($blad[$nazwa_pola]))
  8. echo "<font color = RED>$blad[$nazwa_pola]</font><br>";
  9. }
  10.  
  11.  
  12. ?>
  13.  
  14.  
  15. <title>form1</title>
  16. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  17. </head>
  18.  
  19.  
  20. <form method="post" action="poprawnosc_leki.php">
  21.  
  22.  
  23. Nazwa leku: <input type="text" name="nazwa" value="<?
  24. echo $form_wart["nazwa"];
  25. ?>"
  26. size=50>
  27.  
  28. <font color="red"> <? echo blad_pola("nazwa", "$blad"); ?></font>
  29.  
  30. <br><br>
  31. Opis: <input type="text" name="opis" value="<?
  32. echo $form_wart["opis"];
  33. ?>"
  34. size=50>
  35.  
  36. <font color="red"> <? echo blad_pola("opis", "$blad"); ?></font>
  37.  
  38. <input type="submit" value="Dodaj lek">
  39.  
  40. </form>
  41.  
  42. </body>
  43. </html>



z gory dziekuje za znalezienie bledu i pomoc
pozdrawiam
Jacek
kossa
Tak na szybko, skoro coś zapisujesz do sesji to po co na końcu to usuwasz...?

Cytat
session_destroy();


używaj zmiennych globalnych $_SESSION zamiast session_register

to popraw
Cytat
echo "<font color = RED>$blad[$nazwa_pola]</font><br>";


na

  1. <?php
  2. echo "<font color = RED>".$blad[$nazwa_pola]."</font><br>";
  3. ?>


włącz sobie raportowanie błędów

zobacz co masz w sesji np print_r($_SESSION);

powodzenia!
Łukasz

edit
a poza tym font color - wartości atrybutów piszemy w cudzysłowiu, znacznik font jest przestarzały, stosuj css
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.