Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z sesjami
lutador
post
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

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


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

Ten post edytował lutador 5.03.2007, 19:41:45
Go to the top of the page
+Quote Post
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


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

Ten post edytował kossa 5.03.2007, 20:20:49


--------------------
Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 06:49