Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz z metodą POST wysyłający kilka danych do bazy danych
nygus9928
post 24.06.2016, 06:24:13
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.10.2012

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


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Serwis ABC</title>
  5. <meta http-equiv=content-type content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="Content-Language" content="pl">
  7. </head>
  8.  
  9. <body>
  10.  
  11.  
  12. <?php
  13. require("inc/conn.php");
  14. if(isset($_POST['submit'])){
  15. $imie = $_POST['imie'];
  16. $nr_ew = $_POST['nr_ew'];
  17. $imie = $_POST['imie'];
  18. $nazwisko = $_POST['nazwisko'];
  19. $data_ur = $_POST['data_ur'];
  20. $data_za = $_POST['data_za'];
  21. $stanowisko_id = $_POST['stanowisko_id'];
  22. $wydzial_id = $_POST['wydzial_id'];
  23.  
  24.  
  25. if($nr_ew and $imie and $nazwisko and $data_ur and $data_za and $stanowisko_id and $wydzial_id ) {
  26.  
  27. connection();
  28.  
  29.  
  30. $ins = @mysql_query("INSERT INTO form SET nr_ew='$nr_ew' imie='$imie', nazwisko='$nazwisko', data_ur='$data_ur', data_za='$data_za', stanowisko_id='$stanowisko_id' wydzial_id='$wydzial_id'");
  31.  
  32. if($ins) echo "Rekord został dodany poprawnie";
  33. else echo "Błąd nie udało się dodać nowego rekordu";
  34.  
  35. mysql_close($connection);
  36.  
  37.  
  38. }
  39. }
  40. ?>
  41.  
  42.  
  43. <form action="" method="post" >
  44. nr_ew:<br />
  45. <input type="text" name="nr_ew" /><br />
  46. imie:<br />
  47. <input type="text" name="imie" /><br />
  48. nazwisko:<br />
  49. <input type="text" name="nazwisko" /><br />
  50. data_ur:<br />
  51. <input type="date" name="data_ur" /><br />
  52. stanowisko_id:<br />
  53. <input type="text" name="stanowisko_id" /><br />
  54. data_za:<br />
  55. <input type="date" name="data_za" /><br />
  56. wydzial_id:<br />
  57. <input type="text" name="wydzial_id" /><br />
  58. <input type="submit" value="dodaj" />
  59. </form>
  60.  
  61.  
  62.  
  63.  
  64.  
  65. </body>
  66. </html>
  67.  


Mam skrypt wysyłający dane do DB, a przynajmniej tak powinien działać. Czy w skladni/ kodzie jest coś nie tak co może sprawiać, że skrypt nie będzie działał prawidłowo? Próbowałem na różne sposoby i nic z tego nie wychodzi.

Inc/conn.php
Go to the top of the page
+Quote Post
viking
post 24.06.2016, 06:51:24
Post #2





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

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


Może być wszystko. Wywal @ to się dowiesz. Zaczynając od sql injection przez niewspierane w php7 rozszerzenie mysql po traktowanie int jako string.


--------------------
Go to the top of the page
+Quote Post
olszam
post 24.06.2016, 08:45:09
Post #3





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


58 linijka, dopisz name="submit"
Go to the top of the page
+Quote Post
nygus9928
post 24.06.2016, 14:31:03
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.10.2012

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


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Serwis ABC</title>
  5. <meta http-equiv=content-type content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="Content-Language" content="pl">
  7. </head>
  8.  
  9. <body>
  10.  
  11.  
  12. <?php
  13.  
  14. if(isset($_POST['submit'])){
  15.  
  16. $nr_ew = $_POST['nr_ew'];
  17. $imie = $_POST['imie'];
  18. $nazwisko = $_POST['nazwisko'];
  19. $data_ur = $_POST['data_ur'];
  20. $data_za = $_POST['data_za'];
  21. $stanowisko_id = $_POST['stanowisko_id'];
  22. $wydzial_id = $_POST['wydzial_id'];
  23.  
  24.  
  25. function connection() {
  26. // serwer
  27. $mysql_server = "localhost";
  28. // admin
  29. $mysql_admin = "root";
  30. // hasło
  31. $mysql_pass = "";
  32. // nazwa baza
  33. $mysql_db = "form";
  34. // nawiązujemy połączenie z serwerem MySQL
  35. mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  36. or die('Brak połączenia z serwerem MySQL.');
  37. // łączymy się z bazą danych
  38. mysql_select_db($mysql_db)
  39. or die('Nie mogę połączyć się z bazą danych');
  40. }
  41.  
  42. connection();
  43.  
  44. // dodajemy rekord do bazy
  45. $ins = "INSERT INTO pracownicy SET nr_ew='$nr_ew', imie='$imie', nazwisko='$nazwisko', data_ur='$data_ur', data_za='$data_za', stanowisko_id='$stanowisko_id', wydzial_id='$wydzial_id'";
  46. $go = mysql_query($ins) or die('Error nr 2'. mysql_error());
  47.  
  48.  
  49.  
  50.  
  51. }
  52. else
  53. {
  54.  
  55. }
  56. ?>
  57.  
  58.  
  59. <form action="" method="post" >
  60. nr_ew:<br />
  61. <input type="text" name="nr_ew" /><br />
  62. imie:<br />
  63. <input type="text" name="imie" /><br />
  64. nazwisko:<br />
  65. <input type="text" name="nazwisko" /><br />
  66. data_ur:<br />
  67. <input type="date" name="data_ur" /><br />
  68. stanowisko_id:<br />
  69. <input type="text" name="stanowisko_id" /><br />
  70. data_za:<br />
  71. <input type="date" name="data_za" /><br />
  72. wydzial_id:<br />
  73. <input type="text" name="wydzial_id" /><br />
  74. <input type="submit" name="submit" value="dodaj" />
  75. </form>
  76.  
  77.  
  78.  
  79.  
  80.  
  81. </body>
  82. </html>


Działa, ale nie wysyla daty, bądź baza jej nie przyjmuje i wstawia 0000-00-00. Format ten sam.

@olszam
możesz mnie nakierować o co chodzi z intem?

@edit
data juz działa.
Co powinienem zmienić w kodzie aby to było poprawnie napisane?
Jak ustawić polskie znaki w bazie danych? //zrobione

Ten post edytował nygus9928 24.06.2016, 15:03:34
Go to the top of the page
+Quote Post
olszam
post 24.06.2016, 17:45:55
Post #5





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


Ja używam pdo, mysqli nie testowałem pod tym kątem tyle co aby się połączyć i dodać coś do bazy jak zaczynałem.
Go to the top of the page
+Quote Post
IAmBoskiM
post 1.07.2016, 19:35:22
Post #6





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 8.05.2016

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


HTML4?questionmark.gifquestionmark.gif Cofnąłeś się w czasie? haha.gif

Polecam HTML5.

Znacznik <html> powinien mieć atrybut lang="pl".

Nie należy używać rozszerzenia MySQL w PHP, tylko MySQLi (MySQL improved), albowiem MySQL jest zdeprecjonowane przez specyfikację PHP 5 i usunięte w PHP 7. Zalecam albo PDO (PHP Data Objects) albo MySQLi. Ale PDO to chyba najlepsza idea, albowiem nie będziesz musiał się uczyć osobnego rozszerzenia jeżeli będziesz chciał się połączyć z inną bazą danych.

  1. <?php
  2. if (isset($_POST['submit'])) {
  3. $nr_ew = $_POST['nr_ew'];
  4. $imie = $_POST['imie'];
  5. $nazwisko = $_POST['nazwisko'];
  6. $data_ur = $_POST['data_ur'];
  7. $data_za = $_POST['data_za'];
  8. $stanowisko_id = $_POST['stanowisko_id'];
  9. $wydzial_id = $_POST['wydzial_id'];
  10. function connection() {
  11. // podrasuję tą funkcję pod pdo
  12. $dsn = 'mysql:host=localhost;dbname=form';
  13. $dbuser = 'root';
  14. $pwd = '';
  15. try {
  16. $conn = new PDO ($dsn, $dbuser, $pwd);
  17. } catch (PDOException $e) {
  18. die($e->getMessage());
  19. }
  20. }
  21. connection();
  22. $ile = $conn->exec("INSERT INTO pracownicy (nr_ew, imie, nazwisko, data_ur, data_za, stanowisko_id, wydzial_id) VALUES ('$nr_ew', '$imie', '$nazwisko', '$data_ur', '$data_za', '$stanowisko_id', '$wydzial_id')"); // jeżeli któraś z tych kolumn to int to apostrofy (') nie są potrzebne
  23. if ($ile === false) {
  24. echo 'Zapisywanie danych do bazy danych nieudane.';
  25. }
  26. $conn = null;
  27. } // po co ten else?questionmark.gif
  28. ?>
Go to the top of the page
+Quote Post
viking
post 1.07.2016, 20:52:00
Post #7





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

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


Tylko po co pokazujesz kod podatny na ataki i generalnie bez większego sensu?


--------------------
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: 20.04.2024 - 01:17