Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Edycja rekordu, usuwanie
Forum PHP.pl > Forum > Przedszkole
imatix
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.
jareeny
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. ?>
HellRider
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. ?>
imatix
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?
HellRider
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
imatix
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. ?>
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.