ďťż
Podstrony
|
telcocafeWitamStaram sie napisac skrypt ktory dodaje jakies dane do bazydanych, narazie takie cos sklecilem plik dodawanie.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php mysql_connect('localhost', 'user', 'haslo') or die('blad'); mysql_select_db('user') or die('blad'); if (isset($_POST['dodaj'])) { $jakistekst = $_POST['jakistekst']; $zapytanie = "INSERT INTO test ('tresc') VALUES ('$jakistekst')"; mysql_query($zapytanie); } ?> <body> <form action="dodawanie.php" method="post"> <input type="text" name="jakistekst" /> <input type="submit" name="dodaj" value="dodaj" /> </form> </body> </html> http://iv.pl/images/96947946749415491333.png i nie wiem co moze byc zle, zaden blad nie wyskakuje jednak dane sie nie dodaja... Ten skrypt jest niebezpieczny. Filtruj dane z zewnątrz albo użyj mechanizm podpinania w MySQLi lub PDO. Zamiast mysql_query($zapytanie) wstaw:mysql_query($zapytanie) or die('Query failed: ' . mysql_error()); To tylko prosty przykład. W przypadku błędu w zapytaniu lepiej poinformować o tym użytkownika w przyjazny sposób i zwrócić mu formularz z danymi (żeby ich nie utracił). Jeśli występuje błąd, wklej go na forum. Na pierwszy rzut oka wszystko powinno działać. Sprawdź, czy w ogóle dochodzą dane z formularza:var_dump($_POST); narazie sie nie skupiam nad zabezpieczaniem itp to zrobie pozniej jak cos i tak samo wyswietlanie bledu tez narazie nie potrzebuje :) A co do sprawdzenia to wlasnie w tym sek ze chce dane z formularza dodac do rekordu bazy danych, skrypt php jak i formularz jest w jednym pliku i tak wlasnie chce zrobic a nie w dwoch np(formularz.html, dodaj.php) tylko poprostu w jednym chce wszystko i mam problem, bo jak robie w jednym to nie dziala mi, pisze ten kod co podalem wczesniej wyswietla sie formularz i przycisk dodaj, zero bledy ale gdy klikam zeby dodac dane z formularza nic sie nie dzieje, sprawdzam baze a rekord sie nie dodal i wlasnie jak to zrobic ? tak wyglada formularz dodawania danych http://iv.pl/images/60756967238842233635.jpg Użytkownik fearseba edytował ten post 21 luty 2010, 17:12 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?php error_reporting(E_ALL); mysql_connect('localhost', 'user', 'haslo') or die('blad'); mysql_select_db('user') or die('blad'); if (isset($_POST['dodaj'])) { echo '<div>Dane z formularza dotarły</div>'; var_dump($_POST); //Wyświetlamy całą zawartość $jakistekst = $_POST['jakistekst']; $zapytanie = 'INSERT INTO test (tresc) VALUES ('.$jakistekst.')'; if(!mysql_query($zapytanie)) { echo '<pre>'.mysql_error().'</pre>'; //Na wypadek błędu } } ?> <body> <form action="dodawanie.php" method="post"> <input type="text" name="jakistekst" /> <input type="submit" name="dodaj" value="dodaj" /> </form> </body> </html>Spróbuj teraz wysłać formularz. Napisz, co się wyświetla. Użytkownik Ferrari edytował ten post 21 luty 2010, 17:31 taki blad wyskakuje :) Dane z formularza dotarły array(2) { ["jakistekst"]=> string(19) "jakis tekst asadasd" ["dodaj"]=> string(5) "dodaj" } You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tekst asadasd)' at line 1 cos zle w skrypcie jest, ogolnie jak bys mogl to poprosilbym o najprostrzy skrypt zeby dodac dowolny tekst do bazy bez zbednych [ciach!] :P :) Popraw linijkę na następującą:$zapytanie = 'INSERT INTO test (tresc) VALUES ("'.$jakistekst.'")';Mój błąd - przeoczyłem fakt, że wstawiasz ciąg tekstowy. dzieki dziala :)) |
|||
Sitedesign by AltusUmbrae. |