Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem ze skryptem dodającym i wyświetlajacym dane do bazy
ShamY
post 27.01.2018, 20:04:55
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Witam,

znalazłem na internecie kod pozwalający dodawać dane do bazy MySQL i je wyświetlać, ale coś niestety nie działa, bo wyskakuje mi pusta, biała strona. Tabela jest utworzona w bazie. Sam jestem za słaby w PHP, by napisać coś "swojego".

  1. <?php
  2. $host = "---";
  3. $user = "---";
  4. $password = "---";
  5. $dbName = "---";
  6.  
  7. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  8. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  9.  
  10. if (isset($_POST[?jakies_pole?]) && trim($_POST[?jakies_pole?]) != ?) {
  11. $jakies_pole = $_POST[?jakies_pole?];
  12. $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES (?$jakies_pole?)";
  13. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  14. }
  15.  
  16. $sql = "SELECT nazwa_kolumny FROM tabela_testowa";
  17. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  18. while ($lista = mysql_fetch_array($rezultat)) {
  19. echo $lista[?nazwa_kolumny?]. "<br />";
  20. }
  21.  
  22. echo <<<FORMULARZ
  23. <br /> Dodaj wpis: <br />
  24. <form action = "prog.php" method = "post">
  25.   <input type = "text" name = "jakies_pole" maxlength="20" size = "10">
  26.   <input type = "submit" value = "Dodaj wpis">
  27. </form>
  28. FORMULARZ;
  29. ?>


Ten post edytował ShamY 27.01.2018, 20:18:47
Go to the top of the page
+Quote Post
Kshyhoo
post 27.01.2018, 20:15:07
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Dostosuj nazwę wątku do zasad (link w mojej sygnaturze).
Jakie błędy się wyświetlają (czy masz w ogóle włączone?)?
Generalny problem, to te ? zamiast '.


--------------------
Go to the top of the page
+Quote Post
ShamY
post 27.01.2018, 20:24:07
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Poprawiłem, tytuł wątku.
Nie mam w hostingu włączonych błędów niestety, stąd biała strona - a w opcjach serwera nie widziałem nigdzie możliwości włączenia - serwery OVH

Cytat(Kshyhoo @ 27.01.2018, 20:15:07 ) *
Generalny problem, to te ? zamiast '.


Poprawiłem też na ' ', ale bez skutku
  1. <?php
  2.  
  3. $host = '---';
  4. $user = '---';
  5. $password = '---';
  6. $dbName = '---';
  7.  
  8. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  9. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  10.  
  11. if (isset($_POST['jakies_pole']) && trim($_POST['jakies_pole']) != ?) {
  12. $jakies_pole = $_POST['jakies_pole'];
  13. $sql = "INSERT into tabela_testowa (nazwa_kolumny) VALUES ('$jakies_pole')";
  14. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  15. }
  16.  
  17. $sql = "SELECT nazwa_kolumny FROM tabela_testowa";
  18. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  19. while ($lista = mysql_fetch_array($rezultat)) {
  20. echo $lista['nazwa_kolumny']. "<br />";
  21. }
  22.  
  23. echo <<<FORMULARZ
  24. <br /> Dodaj wpis: <br />
  25. <form action = "prog.php" method = "post">
  26.   <input type = "text" name = "jakies_pole" maxlength="20" size = "10">
  27.   <input type = "submit" value = "Dodaj wpis">
  28. </form>
  29. FORMULARZ;
  30. ?>


Ten post edytował ShamY 27.01.2018, 20:24:39
Go to the top of the page
+Quote Post
Kshyhoo
post 27.01.2018, 20:33:26
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Cytat(ShamY @ 27.01.2018, 20:24:07 ) *
Poprawiłem, tytuł wątku.
Nie mam w hostingu włączonych błędów niestety, stąd biała strona - a w opcjach serwera nie widziałem nigdzie możliwości włączenia - serwery OVH



Poprawiłem też na ' ', ale bez skutku

Naprawdę?
  1. != ?) {

Dodaj na początku skryptu:
  1. ini_set( 'display_errors', 'on' );
  2. error_reporting( E_ALL );


--------------------
Go to the top of the page
+Quote Post
ShamY
post 27.01.2018, 23:42:13
Post #5





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Pokazuję się:
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/pogodakrkj/www/prog.php:12 Stack trace: #0 {main} thrown in /home/pogodakrkj/www/prog.php on line 12

12 i 13 linijka to:
  1. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  2. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
Go to the top of the page
+Quote Post
php11
post 28.01.2018, 00:33:32
Post #6





Grupa: Zarejestrowani
Postów: 210
Pomógł: 5
Dołączył: 11.02.2011

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


Jaką masz wersję PHP?
Jeśli 7 użyj mysqli
Go to the top of the page
+Quote Post
ShamY
post 28.01.2018, 01:21:37
Post #7





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Tak, wersja 7.2 - nie potrafię użyć mysqli
Go to the top of the page
+Quote Post
viking
post 28.01.2018, 09:53:46
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Nie potrafisz użyć bo? To użyj pdo. W stopce mam wytłumaczone. Poza tym twój kod w obecnej formie jest dziurawy. https://prophp.pl/advice/show/25/jak_zabezp...ql_injection%3F


--------------------
Go to the top of the page
+Quote Post
php11
post 28.01.2018, 11:40:00
Post #9





Grupa: Zarejestrowani
Postów: 210
Pomógł: 5
Dołączył: 11.02.2011

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


Zrobiłem, jak umiałem.
Zwróć uwagę, czy nie jest dziurawy, jak pisał Kolega wyżej...

  1. <?php
  2.  
  3. // plik formularz.php
  4. // zmieniłem POST na GET by było widać, co przesyłam
  5. // niestety nie czyści zmiennych po wysłaniu. F5 wysyła kolejne...
  6.  
  7.  
  8.  
  9. ini_set( 'display_errors', 'on' );
  10. error_reporting( E_ALL );
  11.  
  12. $host = 'localhost';
  13. $user = '--------------';
  14. $password = '--------------';
  15. $dbName = '--------------';
  16.  
  17.  
  18. $baza = mysqli_connect(
  19. $host,
  20. $user,
  21. $password,
  22. $dbName
  23. );
  24.  
  25. if (!$baza) {
  26. printf("Brak połączenia z serwerem MySQL. Kod błędu: %s\n", mysqli_connect_error());
  27. } else {
  28. echo 'baza ok <br><br>';
  29. }
  30.  
  31. if (isset($_GET['submit']) && trim($_GET['jakies_pole']) != '') {
  32. $toDodaje = $_GET['jakies_pole'];
  33. $dodaj = mysqli_query($baza,"
  34. INSERT INTO tabela_testowa
  35. SET jakies_pole = '$toDodaje'
  36. ");
  37. if($dodaj) {
  38. echo "Rekord został dodany poprawnie <br><br>";
  39. $_GET['jakies_pole'] = '';
  40. $_GET['submit'] = '';
  41.  
  42. } else {
  43. echo "Błąd nie udało się dodać nowego rekordu <br><br>";
  44. }
  45. }
  46.  
  47.  
  48. $rezultat = mysqli_query($baza,"
  49. SELECT *
  50. FROM tabela_testowa
  51. ");
  52.  
  53. while ($lista = mysqli_fetch_array($rezultat)) {
  54. // echo '<pre>';print_r($lista);echo '</pre>';
  55. echo $lista['id']. ' - ';
  56. echo $lista['jakies_pole']. '<br>';
  57.  
  58. }
  59.  
  60. ?>
  61. <br /> Dodaj wpis: <br />
  62. <form action = "formularz.php" method = "get">
  63. <input type = "text" name = "jakies_pole">
  64. <input type = "submit" name="submit" value = "Dodaj wpis">
  65. </form>
  66.  
  67.  


Ten post edytował php11 28.01.2018, 11:41:00
Go to the top of the page
+Quote Post
ShamY
post 28.01.2018, 13:47:40
Post #10





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 11.07.2013

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


Bardzo dziękuję :-) Spróbuje to jakoś zabezpieczyć.

Ten post edytował ShamY 28.01.2018, 13:50:55
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: 28.03.2024 - 11:35