Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] Edycja rekordu, usuwanie
imatix
post 19.10.2008, 09:30:17
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 19.10.2008

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


Mam taki problem - po odpaleniu tego skryptu pojawia się błąd:
Parse error: parse error, expecting `T_VARIABLE' or `' ' in c:\usr\apache\httpd\html\edycja.php on line 16


  1. <HTML>
  2. <HEAD>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-h">
  4. <TITLE>Działająca książka telefoniczna</TITLE>
  5. </HEAD>
  6. <BODY>
  7. <? // Aplikacja daje nam możliwość odczytu, usuwania, dodawania
  8. // i poprawy danych w bazie.
  9. mysql_connect ("localhost", "root", "krasnal") or
  10. die ("Nie można połączyć się z MySQL");
  11. mysql_select_db ("cwphp") or
  12. die ("Nie można połączyć się bazą cwphp");
  13. if ($_POST['co'] == 'dodaj') { // dodawanie rekordu
  14. if ($_POST['imie'] && $_POST['nazwisko'] && $_POST['telefon']) {
  15. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, ";
  16. $query .= "telefon) VALUES ('".$ _POST['imie']."', '".$
  17.    _POST['nazwisko']."', '".$ _POST['telefon']."');";
  18. $wynik = mysql_query ($query);
  19. }
  20. } elseif ($_POST['co'] == 'popraw') { // poprawianie rekordu
  21. if ($_POST['imie'] && $_POST['nazwisko'] && $_POST['telefon']) {
  22. $query = "UPDATE ksiazkatelefoniczna SET imie='".$_POST
  23. ['imie']."',nazwisko=";
  24. $query .= "'".$_POST['nazwisko']."', telefon='".$_POST
  25. ['telefon']."' WHERE
  26. nr='".$_POST['id']."';";
  27. $wynik = mysql_query ($query);
  28. }
  29. } elseif ($_GET['co'] == 'edytuj') { // przygotowanie do poprawek
  30. $query = "SELECT * FROM ksiazkatelefoniczna where nr='".$_GET
  31. ['id']."';";
  32. $wynik = mysql_query ($query);
  33. $rekord = mysql_fetch_assoc ($wynik);
  34. $nr = $rekord['nr']; $imie = $rekord['imie']; $nazwisko =
  35. $rekord['nazwisko'];
  36. $telefon = $rekord['telefon'];
  37. print '<FORM METHOD="POST">Poprawa rekordu:';
  38. print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">';
  39. print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$nr.'"><TABLE>';
  40. print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  41. print 'NAME="imie" VALUE="'.$imie.'"></TD></TR><TR><TD>Nazwisko:';
  42. print '</TD><TD><INPUT TYPE="text" NAME="nazwisko"';
  43. print 'VALUE="'.$nazwisko;
  44. print '"></TD></TR><TR><TD>Telefon:</TD><TD><INPUT TYPE="text"';
  45. print 'NAME="telefon" VALUE="'.$telefon.'"></TD></TR>';
  46. print '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>';
  47. } elseif ($_GET['co'] == 'skasuj') { // usuwanie
  48. $wynik = mysql_query
  49. ("DELETE FROM ksiazkatelefoniczna WHERE nr = '".$_GET
  50. ['id']."';");
  51. }
  52. $wynik = mysql_query ("SELECT * FROM ksiazkatelefoniczna;");
  53. print "<TABLE CELLPADDING=5 BORDER=1>";
  54. print "<TR><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>";
  55. print "<TD><B>Telefon</B></TD><TD></TD><TD></TD></TR>\n";
  56. while ($rekord = mysql_fetch_assoc ($wynik)) {
  57. $nr = $rekord['nr'];
  58. $imie = $rekord['imie'];
  59. $nazwisko = $rekord['nazwisko'];
  60. $telefon = $rekord['telefon'];
  61. print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>";
  62. print "<A HREF=\"4-h9.php?co=skasuj&id=$nr\">skasuj</A></TD><TD>";
  63. print "<A HREF=\"4-h9.php?co=edytuj&id=$nr\">edytuj</A></TD>
  64. </TR>\n";
  65. }
  66. print "</TABLE>";
  67. print '<FORM METHOD="POST">Nowy rekord:';
  68. print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  69. print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  70. print 'NAME="imie"></TD></TR><TR><TD>Nazwisko:</TD><TD><INPUT ';
  71. print 'TYPE="text" NAME="nazwisko"></TD></TR><TR><TD>Telefon:</TD>';
  72. print '<TD><INPUT TYPE="text" NAME="telefon"></TD></TR>';
  73. print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';
  74. ?>
  75. </BODY>
  76. </HTML>


Proszę o rozwiązanie tego problemu.
Powód edycji: poprawiłem tytuł (ociu)
Go to the top of the page
+Quote Post
jareeny
post 19.10.2008, 09:40:14
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

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


Po co tak:

  1. <?php
  2. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, ";
  3. $query .= "telefon) VALUES ('".$ _POST['imie']."', '".$
  4.    _POST['nazwisko']."', '".$ _POST['telefon']."');";
  5. ?>


jak można tak:

  1. <?php
  2. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, telefon) VALUES ("$_POST['imie']", "$_POST['nazwisko']", "$_POST['telefon']");";
  3. ?>


Ten post edytował jareeny 19.10.2008, 09:40:39


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 09:59:02
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


Parser błąd znalazł tutaj:

18. | _POST // brakuje znaku $

Cytat(jareeny @ 19.10.2008, 09:40:14 ) *
jak można tak:

  1. <?php
  2. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, telefon) VALUES ("$_POST['imie']", "$_POST['nazwisko']", "$_POST['telefon']");";
  3. ?>



A W ŻYCIU NIE! Wykonywanie zapytań SQL na niefiltrowanych danych to zachęta do psucia strony.
Przed tym wszystko co dostajemy w GET i POST musimy filtrować i badać czy są tam wartości, które powinny być,
np.: liczby, teksty, zainteresuj się funkcjami mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual i addslashes" title="Zobacz w manualu PHP" target="_manual przynajmniej.

  1. <?php
  2. $a = $_POST['imie'];
  3. // tutaj: if / switch, regexp, sprawdź przekazywaną wartość
  4. // ...
  5. INSERT INTO ksiazkatelefoniczna (imie, nazwisko, telefon) VALUES ("$a" ... // filtrowane
  6. ?>


Ten post edytował HellRider 19.10.2008, 10:02:05
Go to the top of the page
+Quote Post
imatix
post 19.10.2008, 10:23:02
Post #4





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 19.10.2008

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


Cytat(HellRider @ 19.10.2008, 10:59:02 ) *
Parser błąd znalazł tutaj:

18. | _POST // brakuje znaku $

ten znak jest tylko ze w poprzedniej linijce. (to chyba nie wpływa na efekt koncowy?)

To jak mam to poprawic zeby dzialalo?
Go to the top of the page
+Quote Post
HellRider
post 19.10.2008, 10:24:50
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 7
Dołączył: 12.09.2008
Skąd: localhost

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


Wpływa bardzo, to nie jest string, żeby go tak łamać.
To tak jakbyś napisał:

functi
on (param
eter)


Nie zadziała za Chiny, nie łam zmiennych, funkcji, ani żadnych nie-stringowych elementów smile.gif

Ten post edytował HellRider 19.10.2008, 10:25:30
Go to the top of the page
+Quote Post
imatix
post 19.10.2008, 15:28:38
Post #6





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 19.10.2008

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


Teraz to wyglada tak, skrypt się wyświetla, ale edycja wpisow i usuwanie nie działa....

  1. <HTML>
  2. <HEAD>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-h">
  4. <TITLE>Działająca książka telefoniczna</TITLE>
  5. </HEAD>
  6. <BODY>
  7. <? // Aplikacja daje nam możliwość odczytu, usuwania, dodawania
  8. // i poprawy danych w bazie.
  9. mysql_connect ("localhost", "root", "krasnal") or
  10. die ("Nie można połączyć się z MySQL");
  11. mysql_select_db ("cwphp") or
  12. die ("Nie można połączyć się bazą cwphp");
  13. if ($_POST['co'] == 'dodaj') { // dodawanie rekordu
  14. if ($_POST['imie'] && $_POST['nazwisko'] && $_POST['telefon']) {
  15. $query = "INSERT INTO ksiazkatelefoniczna (imie, nazwisko, ";
  16. $query .= "telefon) VALUES ('".$_POST['imie']."','".
  17.    $_POST['nazwisko']."', '".$_POST['telefon']."');";
  18. $wynik = mysql_query ($query);
  19. }
  20. } elseif ($_POST['co'] == 'popraw') { // poprawianie rekordu
  21. if ($_POST['imie'] && $_POST['nazwisko'] && $_POST['telefon']) {
  22. $query = "UPDATE ksiazkatelefoniczna SET imie='".$_POST
  23. ['imie']."',nazwisko=";
  24. $query .= "'".$_POST['nazwisko']."', telefon='".$_POST
  25. ['telefon']."' WHERE
  26. nr='".$_POST['id']."';";
  27. $wynik = mysql_query ($query);
  28. }
  29. } elseif ($_GET['co'] == 'edytuj') { // przygotowanie do poprawek
  30. $query = "SELECT * FROM ksiazkatelefoniczna where nr='".$_GET
  31. ['id']."';";
  32. $wynik = mysql_query ($query);
  33. $rekord = mysql_fetch_assoc ($wynik);
  34. $nr = $rekord['nr']; $imie = $rekord['imie']; $nazwisko =
  35. $rekord['nazwisko'];
  36. $telefon = $rekord['telefon'];
  37. print '<FORM METHOD="POST">Poprawa rekordu:';
  38. print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">';
  39. print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$nr.'"><TABLE>';
  40. print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  41. print 'NAME="imie" VALUE="'.$imie.'"></TD></TR><TR><TD>Nazwisko:';
  42. print '</TD><TD><INPUT TYPE="text" NAME="nazwisko"';
  43. print 'VALUE="'.$nazwisko;
  44. print '"></TD></TR><TR><TD>Telefon:</TD><TD><INPUT TYPE="text"';
  45. print 'NAME="telefon" VALUE="'.$telefon.'"></TD></TR>';
  46. print '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>';
  47. } elseif ($_GET['co'] == 'skasuj') { // usuwanie
  48. $wynik = mysql_query
  49. ("DELETE FROM ksiazkatelefoniczna WHERE nr = '".$_GET
  50. ['id']."';");
  51. }
  52. $wynik = mysql_query ("SELECT * FROM ksiazkatelefoniczna;");
  53. print "<TABLE CELLPADDING=5 BORDER=1>";
  54. print "<TR><TD><B>Imię</B></TD><TD><B>Nazwisko</B></TD>";
  55. print "<TD><B>Telefon</B></TD><TD></TD><TD></TD></TR>\n";
  56. while ($rekord = mysql_fetch_assoc ($wynik)) {
  57. $nr = $rekord['nr'];
  58. $imie = $rekord['imie'];
  59. $nazwisko = $rekord['nazwisko'];
  60. $telefon = $rekord['telefon'];
  61. print "<TR><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD>";
  62. print "<A HREF=\"4-h9.php?co=skasuj&id=$nr\">skasuj</A></TD><TD>";
  63. print "<A HREF=\"4-h9.php?co=edytuj&id=$nr\">edytuj</A></TD>
  64. </TR>\n";
  65. }
  66. print "</TABLE>";
  67. print '<FORM METHOD="POST">Nowy rekord:';
  68. print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  69. print '<TR><TD>Imię:</TD><TD><INPUT TYPE="text" ';
  70. print 'NAME="imie"></TD></TR><TR><TD>Nazwisko:</TD><TD><INPUT ';
  71. print 'TYPE="text" NAME="nazwisko"></TD></TR><TR><TD>Telefon:</TD>';
  72. print '<TD><INPUT TYPE="text" NAME="telefon"></TD></TR>';
  73. print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';
  74. ?>
  75. </BODY>
  76. </HTML>


Ktoś wie czemu?

Dobra wiem juz czemu biggrin.gif Bo nazwa pliku była inna niz podana tutaj: (4-h9.php)
  1. <?php
  2. print "<A HREF=\"4-h9.php?co=skasuj&id=$nr\">skasuj</A></TD><TD>";
  3. print "<A HREF=\"4-h9.php?co=edytuj&id=$nr\">edytuj</A></TD>
  4. ?>
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: 16.07.2025 - 04:58