Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]PHP Undefined index, skrypt nie odnajduje zmiennej 'same'
nowAnd22
post 20.05.2011, 22:12:33
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.05.2011

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


Witam,
wyskakuje mi poniższy błąd
Notice: Undefined index: same in C:\wamp\www\sklep_internetowy\checkout2.php on line 8

odnosi się do fragmentu kodu checkout2.php
7 mysql_select_db("ecommerce");
8 if ($_POST['same'] == 'on') {
9 $_POST['shipfirst'] = $_POST['firstname'];
10 $_POST['shiplast'] = $_POST['lastname'];
11 $_POST['shipadd1'] = $_POST['add1'];
12 $_POST['shipadd2'] = $_POST['add2'];
13 $_POST['shipcity'] = $_POST['city'];
14 $_POST['shipstate'] = $_POST['state'];
15 $_POST['shipzip'] = $_POST['zip'];
16 $_POST['shipphone'] = $_POST['phone'];
17 $_POST['shipemail'] = $_POST['email'];
18 }

w podrzedzającym skrypcie zdefiniowałem 'same' checkout.php

<form method="post" action="checkout2.php">
...
<tr>
<td width="50%">
<div align="right">Dane jak dla kupującego</div>
</td>
<td width="50%">
<input type="checkbox" name="same">
</td>
</tr>

nie mogę odnaleść błędu, proszę o pomoc
Go to the top of the page
+Quote Post
WebCM
post 20.05.2011, 22:17:16
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Jeżeli 'same' jest polem typu "checkbox", sprawdzasz go instrukcją isset(). Jeżeli go nie zaznaczysz w formularzu, nie zostanie wysłany do serwera, zatem PHP go nie zobaczy.


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
Rid
post 20.05.2011, 22:18:44
Post #3





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Niech Pan zajrzy do strony ,gdzie zassał Pan kod,może znajdzie Pan odpowiedź.
Go to the top of the page
+Quote Post
nowAnd22
post 21.05.2011, 17:41:00
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.05.2011

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


dokładnie przeglądałem książkę ale nic nie znalazłem.

czy można przekazać checkbox jak jest niezaznaczony (value=on) do serwera by następny skrypt go widział?
Go to the top of the page
+Quote Post
phpion
post 21.05.2011, 17:43:51
Post #5





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Tak. Wystarczy, że przed polem checkbox umieścisz ukryte pole (input type=hidden) o takiej samej nazwie jak nazwa pola checkbox. Temu polu możesz przypisać wartość, która będzie wartością domyślną w przypadku braku zaznaczenia pola checkbox.
Go to the top of the page
+Quote Post
WebCM
post 21.05.2011, 19:45:02
Post #6





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Pole typu checkbox jest zaznaczone (1) albo nie jest (0). Innej możliwości nie ma. Sprawdzasz to tak:
  1. if(isset($_POST['nazwa_pola']))
  2. {
  3. echo 'Pole jest zaznaczone';
  4. }
  5. else
  6. {
  7. echo 'Pole nie jest zaznaczone';
  8. }
  9.  
  10. //Czyli w twoim przypadku
  11. if (isset($_POST['same']))
  12. {
  13. /* dalszy kod */
  14. }

PS. Podręcznik PHP nie wspomina o polach typu checkbox. W ogóle mało o obsłudze formularzy. To powinno być podstawowe źródło wiedzy, dlatego takie luki są niedopuszczalne. Ktoś im przypomni?

Ten post edytował WebCM 21.05.2011, 19:46:03


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
nowAnd22
post 21.05.2011, 20:20:26
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.05.2011

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


wielkie dzięki, teraz śmiga
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 Wersja Lo-Fi Aktualny czas: 8.06.2024 - 07:03