Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Obsługa mysql w php.
robert-0627
post 8.05.2007, 12:53:57
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 1
Dołączył: 14.02.2007
Skąd: SZCZECINEK

Ostrzeżenie: (20%)
X----


Więc najpierw przepisałem skrypt z książki odnoście zapisu danych do bazy z formularza .Jednak wyskoczył błąd :

Parse error: parse error, unexpected $end in C:\Program Files\xampp\htdocs\Robert\shoutbox.php on line 113.Oto kod

  1. <form action="inde.php" method="post">
  2. <input type="text" name="nick">
  3. <input type="text" name="tresc">
  4. <input type="submit" name="zatwierdz">
  5.  
  6.  
  7. <?php
  8. if (!$db_lnk = @mysql_connect("localhost", "robert", "xxxxxxxx")){
  9. echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  10. }
  11.  
  12. if(!@mysql_select_db('rzodkiewka')){
  13. echo('Wystąpił błąd podczas wyboru bazy danych: Ksiegarnia<BR>');
  14. }
  15.  
  16. $query = 'SELECT * FROM shoutbox';
  17.  
  18. if(!$result = mysql_query($query, $db_lnk)){
  19. echo('Wystąpił błąd: nieprawidłowe zapytanie...<BR>');
  20. }
  21. ?>
  22.  
  23. <table border="5" width="100%"><tr><td>Nick</td>
  24. <td>TREŚĆ</td>
  25. </tr>
  26.  
  27.  
  28. <?php
  29. while($row = mysql_fetch_row($result)){
  30. echo("<tr>");
  31. echo("<td>$row[1]</td>");
  32. echo("<td>$row[2]</td>");
  33. echo("</tr>");
  34. }
  35.  
  36. ?>
  37. </table>
  38.  
  39. <?php
  40. if(!@mysql_close()){
  41. echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<BR>');
  42. }
  43.  
  44.  
  45. ?>
  46.  
  47.  
  48. <?php
  49.  
  50. function dodaj($nick, $tresc){
  51.  
  52. /*sprawdzenie poprawości przekazanych danych*/
  53.  
  54. if($tresc == ''){
  55. echo("Brak danych. Proszę wypełnić pole: Imię i nazwisko.");
  56. return;
  57. }
  58. if($nick == '') $nick = 'NULL';
  59.  
  60. /*Nawiązanie połączenia z bazą*/
  61.  
  62. if (!$db_lnk = @mysql_connect("localhost", "robert", "xxxxxxxxxxxxx")){
  63. echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  64. return;
  65. }
  66.  
  67. if(!@mysql_select_db('rzodkiewka')){
  68. echo('Wystąpił błąd podczas wyboru bazy danych: biblioteka<BR>');
  69. return;
  70. }
  71.  
  72. /*Utworzenie i wykonanie zapytania*/
  73.  
  74. $query = "INSERT INTO shoutbox VALUES(";
  75. $query .= "$nick, '$tresc'";
  76. $query .= ")";
  77.  
  78. if(!mysql_query($query, $db_lnk)){
  79. echo('Wystąpił błąd: zapytanie zostało odrzucone...<BR>');
  80. return;
  81. }
  82.  
  83. /*Pobranie informacji o liczbie wstawionych wierszy*/
  84.  
  85. $rowsNo = mysql_affected_rows($db_lnk);
  86.  
  87. echo("Zapytanie zostało wykonane.<br>");
  88. echo("Liczba dodanych rekordów: $rowsNo<br>");
  89.  
  90. /*Zamknięcie połączenia z bazą*/
  91.  
  92. if(!@mysql_close()){
  93. echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<br>');
  94. }
  95.  
  96.  
  97. if(isSet($_GET['tresc']) && isSet($_GET['nick'])){
  98. dodaj($_GET['nick'], $_GET['tresc']);
  99. }
  100. else{
  101. echo("Niepoprawne dane!");
  102. }
  103.  
  104.  
  105.  
  106. ?>



No i w tym problem ,że linia 113 ="?>" .

Najpierw przepisałem z książki był ten bład .Myślałem ,że gdzies znaku nie wstawłem lub czegoś no i cały skrypt skopiowałem z płyty i to samo .Wątpie żeby autorzy wypuszczali to z błędem .Ktoś mi może wytłumacyzć co robie źle ?Może dlatego ,że w jednym pliku 2 razy otworzyłem połączenie z mysql questionmark.gif

Ten post edytował robert-0627 8.05.2007, 12:55:54
Go to the top of the page
+Quote Post
nospor
post 8.05.2007, 13:09:02
Post #2





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




dopisz jeszcze } na koncu i bedzie git smile.gif
Nie domknales (lub tez autor) funkcji


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

"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
robert-0627
post 8.05.2007, 13:16:35
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 1
Dołączył: 14.02.2007
Skąd: SZCZECINEK

Ostrzeżenie: (20%)
X----


Racja skrypt działa .Thx .Tylko rekordy sie nie dodają ;/ można sprawdzić na http://85.219.216.212/robert/inde.php .Ktoś wie czemu rekordy się nie dodają ?

Racja skrypt działa .Thx .Tylko rekordy sie nie dodają ;/ można sprawdzić na http://85.219.216.212/robert/inde.php .Ktoś wie czemu rekordy się nie dodają ?
Go to the top of the page
+Quote Post
Darti
post 8.05.2007, 13:29:52
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Bo wysyłasz formularz postem a odbierasz GETem ... zrób tak:
  1. <?php
  2. if(isSet($_POST['tresc']) && isSet($_POST['nick'])){
  3. dodaj($_POST['nick'], $_POST['tresc']);
  4. }
  5. ?>

Poza tym radze Ci zdjąć i mocno poprawić ten kod ... jest dziurawy jak sito

Ten post edytował Darti 8.05.2007, 13:31:36


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
robert-0627
post 8.05.2007, 14:04:10
Post #5





Grupa: Zarejestrowani
Postów: 89
Pomógł: 1
Dołączył: 14.02.2007
Skąd: SZCZECINEK

Ostrzeżenie: (20%)
X----


  1. <?php
  2.  
  3. function dodaj($nick, $tresc){
  4.  
  5. /*sprawdzenie poprawości przekazanych danych*/
  6.  
  7. if($tresc == ''){
  8. echo("Brak danych. Proszę wypełnić pole: Imię i nazwisko.");
  9. return;
  10. }
  11. if($nick == '') $nick = 'NULL';
  12.  
  13. /*Nawiązanie połączenia z bazą*/
  14.  
  15. if (!$db_lnk = @mysql_connect("localhost", "robert", "kalarepa")){
  16. echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  17. return;
  18. }
  19.  
  20. if(!@mysql_select_db('rzodkiewka')){
  21. echo('Wystąpił błąd podczas wyboru bazy danych: biblioteka<BR>');
  22. return;
  23. }
  24.  
  25. /*Utworzenie i wykonanie zapytania*/
  26.  
  27. $query = "INSERT INTO shoutbox VALUES(";
  28. $query .= "$nick, '$tresc'";
  29. $query .= ")";
  30.  
  31. if(!mysql_query($query, $db_lnk)){
  32. echo('Wystąpił błąd: zapytanie zostało odrzucone...<BR>');
  33. return;
  34. }
  35.  
  36. /*Pobranie informacji o liczbie wstawionych wierszy*/
  37.  
  38. $rowsNo = mysql_affected_rows($db_lnk);
  39.  
  40. echo("Zapytanie zostało wykonane.<br>");
  41. echo("Liczba dodanych rekordów: $rowsNo<br>");
  42.  
  43. /*Zamknięcie połączenia z bazą*/
  44.  
  45. if(!@mysql_close()){
  46. echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<br>');
  47. }
  48.  
  49.  
  50. if(isSet($_GET['tresc']) && isSet($_GET['nick'])){
  51. dodaj($_GET['nick'], $_GET['tresc']);
  52. }
  53. else{
  54. echo("Niepoprawne dane!");
  55. }
  56.  
  57. }
  58.  
  59. ?>


Formularz
  1. <form action="inde.php" method="GET">
  2. <input type="text" name="nick">
  3. <input type="text" name="tresc">
  4. <input type="submit" name="zatwierdz">


Nadal nie dodaje rekordów ;/.W jakim sensie kod jest dziurawy jak sito bo niedawno zaczełem z php i tak sie nie orienuje jak pisać .
Go to the top of the page
+Quote Post
Darti
post 8.05.2007, 14:27:28
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Włącz error_reporting, zobaczymy jakie dodatkowo błędy wyrzuci i poczytaj o SQL injection/insertion


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
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: 7.07.2025 - 23:02