Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> prosty formularz i mysql
artko
post 18.07.2005, 13:43:11
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


witam
potrzebuje prosty skrypt, który odczyta, doda, zmodyfikuje i usunie dane z tabeli, ważną rzeczą jest dla mnie aby jedno z pól rekordu zawierało datę i godzinę ostatniej modyfikacji, jeśli ktoś miałby podobny programik to byłbym wdzięczny
pozdrawiam i z góry dziękuję
Go to the top of the page
+Quote Post
SongoQ
post 18.07.2005, 13:47:11
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Nie szukaj gotowcow, postaraj sam sobie go napisac.


--------------------
Go to the top of the page
+Quote Post
artko
post 18.07.2005, 14:14:03
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


próbowałem zrobić to na przykładzie kodu z jednaj ze znanych pozycji literatury : )

  1. <html>
  2. <head>
  3. <title>Ceny warzyw</title>
  4. </head>
  5.  
  6. <body>
  7. <?
  8.  
  9. mysql_connect (&#092;"localhost\", \"root\", \"******\") or
  10. die (&#092;"nie można połączyć się z MySql\");
  11. mysql_select_db (&#092;"warzywa\") or
  12. die (&#092;"nie można połączyć się z bazą warzywa\");
  13.  
  14. if ($co == 'dodaj')  { //dodawanie rekordu
  15. if ($nazwa && $cena && $data)  {
  16. $query = &#092;"INSERT INTO ceny (nr, nazwa, cena, data) VALUES ('', '$nazwa', '$cena', '$data')\";
  17. $wynik = mysql_query ($query);
  18.  
  19. }
  20. } elseif ($co == 'skasuj')  {  //kasowanie
  21.  
  22. $wynik = mysql_query
  23. (&#092;"DELETE FROM ceny WHERE nr = '$id';\");
  24. }
  25.  
  26. $wynik = mysql_query (&#092;"SELECT * FROM ceny;\") or
  27. die (&#092;"błąd w pytaniu\");
  28.  
  29. print &#092;"<TABLE CELLPADDING=5 BORDER=1\";
  30. print &#092;"<TR><TD><B>Nazwa</B></TD><TD><B>Cena</B></TD>\";
  31. print &#092;"<TD><B>Data</B></TD><TD></TD></TR>n\";
  32.  
  33. while ($rekord = mysql_fetch_array ($wynik))  {
  34. $id = $rekord[0];
  35. $nazwa = $rekord[1];
  36. $cena = $rekord[2];
  37. $data = $rekord[3];
  38.  
  39. print &#092;"<TR><TD>$nazwa</TD><TD>$cena</TD><TD>$data</TD><TD>\";
  40. print &#092;"<A HREF=\"ceny.php?co=skasuj&id=$id\">skasuj</A></TD></TR>n\";
  41. }
  42.  
  43. print &#092;"<TABLE>\";
  44. print '<FORM METHOD=\"POST\">Nowy rekord:';
  45. print '<INPUT TYPE=\"hidden\" NAME=\"co\" VALUE=\"dodaj\"<TABLE>';
  46. print '<TR><TD>Nazwa:</TD<TD><INPUT TYPE=\"text\" ';
  47. print 'NAME=\"nazwa\"</TD></TR><TR><TD>Cena:</TD><TD><INPUT ';
  48. print 'TYPE=\"text\" NAME=\"cena\"></TD></TR><TR><TD>Data:</TD>';
  49. print '<TD><INPUT TYPE=\"text\" NAME=\"data\"></TD></TR>';
  50. print '</TABLE><INPUT TYPE=\"submit\" VALUE=\"dodaj\"></FORM>';
  51. ?>
  52.  
  53. </BODY>
  54. </HTML>



ale jest jakiś problem z przekazywaniem danych, nie mogę nic dodać ani usunąć

tu jest ten przykład

Ten post edytował artko 18.07.2005, 14:54:57
Go to the top of the page
+Quote Post
SongoQ
post 18.07.2005, 14:18:12
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Zamiast $co daj $_GET['co']


--------------------
Go to the top of the page
+Quote Post
nospor
post 18.07.2005, 14:19:24
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zapewne masz wyłączone register_globals

Na początku skryptu przed pierwszym użyciem $co, daj:
  1. <?php
  2.  
  3. $co = $_GET['co'];
  4.  
  5. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artko
post 18.07.2005, 14:33:03
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


zgadza się, register_globals była wyłączona, już jest on, jednak nbie było żadnej reakcji po modyfikacji poza zniknięciem jednego notica, może diabeł tkwi gdzie indziej?
Go to the top of the page
+Quote Post
nospor
post 18.07.2005, 14:41:05
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Podmien se ten kawalek i powiedz co wyswietla
  1. <?php
  2.  
  3. if ($co == 'dodaj')  { //dodawanie rekordu
  4.  if ($imie && $nazwisko && $telefon)  {
  5.  $query = &#092;"INSERT INTO ceny (nr, nazwa, cena, data) VALUES ('', '$nazwa', '$cena', '$data')\";
  6. $wynik = mysql_query ($query) or die(mysql_error());
  7.  
  8.  }
  9. } elseif ($co == 'skasuj')  {  //kasowanie
  10.  
  11. $wynik = mysql_query
  12.  (&#092;"DELETE FROM ceny WHERE nr = '$id'\") or die(mysql_error());
  13. }
  14.  
  15. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artko
post 18.07.2005, 14:52:55
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


kompletnie nic , dziwne
http://212.244.84.44/ceny.php
Go to the top of the page
+Quote Post
nospor
post 18.07.2005, 14:58:17
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale te register_globals ustawiles?

  1. <?php
  2.  
  3. if ($co == 'dodaj')   {  //dodawanie rekordu
  4. if ($imie && $nazwisko && $telefon)   {
  5. $query = &#092;"INSERT INTO ceny (nr, nazwa, cena, data) VALUES ('', '$nazwa', '$cena', '$data')\";
  6.   $wynik = mysql_query ($query) or die(mysql_error());
  7. echo &#092;"dodawanka\";
  8. }
  9. } elseif ($co == 'skasuj')   {   //kasowanie
  10.  
  11. $wynik = mysql_query
  12. (&#092;"DELETE FROM ceny WHERE nr = '$id'\") or die(mysql_error());
  13. echo &#092;"kasowanko\";
  14. }
  15.  
  16. ?>

Jak dalej sie nic nie wyswietli to znaczy ze ni ustawiles smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artko
post 18.07.2005, 15:10:24
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


sory, mea coulpa, nie włączyłem, już jest dobrze, tylko przy starcie te nieszczęsne noticy się pojawiają, w każdym razie wielkie dzięki
Go to the top of the page
+Quote Post
nospor
post 18.07.2005, 15:11:52
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Daj tak to nie będą się pojawiaŁy
  1. <?php
  2.  
  3. if (isset($co) && $co == 'dodaj')  { //dodawanie rekordu
  4. if ($imie && $nazwisko && $telefon)  {
  5. $query = &#092;"INSERT INTO ceny (nr, nazwa, cena, data) VALUES ('', '$nazwa', '$cena', '$data')\";
  6. $wynik = mysql_query ($query) or die(mysql_error());
  7. echo &#092;"dodawanka\";
  8. }
  9. } elseif (isset($co) && $co == 'skasuj')  {  //kasowanie
  10.  
  11. $wynik = mysql_query
  12. (&#092;"DELETE FROM ceny WHERE nr = '$id'\") or die(mysql_error());
  13. echo &#092;"kasowanko\";
  14. }
  15.  
  16. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artko
post 19.07.2005, 14:23:20
Post #12





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


bardzo ładnie, a dlaczego tak się dzieje?
Go to the top of the page
+Quote Post
SongoQ
post 19.07.2005, 14:25:00
Post #13





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Bo wtedy sprawdzasz czy sa zmienne ustawione, jesli tak to odwolujesz sie do niech.


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.07.2005, 14:27:02
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




gdyż przy starcie skryptu zmienna $co nie jest zainicjalizowana a ty siędo niej próbujesz odwołać. warunek isset($co) sprawdza czy jest zainicjalizowana.
zmienna $co pojawi się dopiero po wysłaniu formularza, czyli gdy w tablicy superglobalnej $_POST pojawi się index co.
Bardziej bezpieczne by było jabyś się odwoływał tak :$_POST['co'] anie $co, ale to już Twoja sprawa


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artko
post 19.07.2005, 15:19:23
Post #15





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


dziwi mnie tylko to że program działa tak czy siak i jest ok. Robię stronę na php-fusion ( www.ms.prv.pl ) i też są miejsca, w których pojawiają się noticy wszelakie, zaznaczam że wszystko chodzi ok. Może w php.ini jest coś co odpowiada za to, coś co można wyłączyć lub włączyć i zapomnieć. Czy trzeba we wszystkich tych miejscach wstawiać takie warunki. Troche to ryzykowne w moim przypadku przerabiać taki portal gdyż znam tylko podstawy php.
Go to the top of the page
+Quote Post
SongoQ
post 19.07.2005, 15:23:21
Post #16





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


No to wylacz sobie jesli nie chesz przerabiac ale z 2 strony jak cos piszesz od podstaw to warto miec wlaczone.


--------------------
Go to the top of the page
+Quote Post
artko
post 25.07.2005, 09:25:40
Post #17





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


witam
wzbogaciłem skrypt o poprawianie rekordu

  1. <html>
  2. <head>
  3. <title>Ceny warzyw</title>
  4. </head>
  5.  
  6. <body>
  7. <?
  8. $today = date(&#092;"j-n-Y\");
  9. $godzina = date(&#092;"H:i:s\");
  10.  
  11.  
  12.  
  13. mysql_connect (&#092;"localhost\", \"root\", \"****\") or
  14. die (&#092;"nie można połączyć się z MySql\");
  15. mysql_select_db (&#092;"warzywa\") or
  16. die (&#092;"nie można połączyć się z bazą warzywa\");
  17.  
  18. if (isset($co) && $co == 'dodaj')  { //dodawanie rekordu
  19. if ($nazwa && $cena && $today && $godzina)  {
  20. $query = &#092;"INSERT INTO ceny (nr, nazwa, cena, data) VALUES ('', '$nazwa', '$cena', '$today, $godzina')\";
  21. $wynik = mysql_query ($query) or die(mysql_error());
  22.  
  23. }
  24. }  elseif (isset($co) && $co == 'popraw') { //poprawianie
  25. if ($nazwa && $cena && $today && $godzina)  {
  26. $query = &#092;"UPDATE ceny SET nazwa='$nazwa', cena='$cena', data='$today, $godzina';\";
  27. $wynik = mysql_query ($query);
  28. }
  29.  
  30. } elseif (isset($co) && $co == 'edytuj') { //przygotowanie poprawek
  31.  
  32. $query = &#092;"SELECT * FROM ceny where nr='$id' ORDER BY nazwa;\"; 
  33. $wynik = mysql_query ($query);
  34. $rekord = mysql_feth_array ($wynik);
  35. $id = $rekord[0]; $nazwa = $rekord[1]; $cena = $rekord[2]; $data = $rekord[3];
  36. print '<FORM METHOD=\"POST\">Poprawa rekordu:';
  37. print '<INPUT TYPE=\"hidden\" NAME=\"co\" VALUE=\"popraw\">';
  38. print '<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"'.$id.'\"><TABLE>';
  39. print '<TR><TD>Nazwa:</TD><TD>INPUT TYPE=\"text\" ';
  40. print 'NAME=\"nazwa\" VALUE=\"'.$nazwa.'\"></TD></TR><TR><TD>Cena:';
  41. print '</TD><TD><INPUT TYPE=\"text\" NAME=\"cena\"';
  42. print 'VALUE=\"'.$cena;
  43. print '\"></TD></TR><TR><TD>Data: </TD><TD><INPUT TYPE=\"text\"';
  44. print 'NAME=\"data\" VALUE=\"'.$data.'\"></TD></TR>';
  45. print '</TABLE><INPUT TYPE=\"submit\" VALUE=\"Popraw\"></FORM>';
  46. } 
  47.  
  48.  
  49.  
  50.  
  51.  elseif (isset($co) && $co == 'skasuj')  {  //kasowanie
  52.  
  53. $wynik = mysql_query
  54. (&#092;"DELETE FROM ceny WHERE nr = '$id'\") or die(mysql_error());
  55.  
  56. }
  57.  
  58. $wynik = mysql_query (&#092;"SELECT * FROM ceny ORDER BY nazwa;\") or
  59. die (&#092;"błąd w pytaniu\");
  60.  
  61. print &#092;"<TABLE CELLPADDING=5 BORDER=1\";
  62. print &#092;"<TR><TD><B>Nazwa</B></TD><TD><B>Cena</B></TD>\";
  63. print &#092;"<TD><B>Data</B></TD><TD></TD></TR>n\";
  64.  
  65. while ($rekord = mysql_fetch_array ($wynik))  {
  66. $id = $rekord[0];
  67. $nazwa = $rekord[1];
  68. $cena = $rekord[2];
  69. $data = $rekord[3];
  70.  
  71. print &#092;"<TR><TD>$nazwa</TD><TD>$cena</TD><TD>$data</TD><TD>\";
  72. print &#092;"<A HREF=\"ceny.php?co=skasuj&id=$id\">skasuj</A></TD><td>\";
  73. print &#092;"<A HREF=\"ceny.php?co=popraw&id=$id\">popraw</A></TD></TR>n\";
  74. }
  75.  
  76. print &#092;"<TABLE>\";
  77. print '<FORM METHOD=\"POST\">Nowy rekord:';
  78. print '<INPUT TYPE=\"hidden\" NAME=\"co\" VALUE=\"dodaj\"<TABLE>';
  79. print '<TR><TD>Nazwa:</TD<TD><INPUT TYPE=\"text\" ';
  80. print 'NAME=\"nazwa\"</TD></TR><TR><TD>Cena:</TD><TD><INPUT ';
  81. print 'TYPE=\"text\" NAME=\"cena\"></TD></TR>';
  82. print '</TABLE><INPUT TYPE=\"submit\" VALUE=\"dodaj\"></FORM><br>';
  83.  
  84.  
  85. ?>
  86.  
  87. </BODY>
  88. </HTML>



no i znów problem ze zmiennymi, dlaczego przy dodawaniu rekordu jest ok a przy poprawianiu tych zmiennych nie może rozpoznać?

ps, tak wiem, nie jest to w żaden sposób zabezpieczone i można program rozwalić
pozdrawiam
Go to the top of the page
+Quote Post
nospor
post 25.07.2005, 09:31:09
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przy popraw sprawdzasz, czy jest $nazwa, $cena a w linku tego nie ma. przecież do popraw wchodzisz pprzez link.
pozatym w zapytaniu popraw poprawiasz wszystko jak leci, bez warunku


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
artko
post 25.07.2005, 10:25:16
Post #19





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 18.07.2005

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


więc trzeba to zupełnie inaczej zrobić? może wystarczy jakaś lekka modyfikacja?
Go to the top of the page
+Quote Post
nospor
post 25.07.2005, 10:30:56
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jak checesz tylko lekką modyfikację to dodaj nazwę i cenę do linku.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.07.2025 - 00:09