Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP][HTML(?)] Automatyczne wysyłanie danych z formularza do bazy danych phpmyadmin.
Klusek
post 19.11.2013, 22:02:12
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Witam, dopiero raczkuję w tej dziedzinie, potrzebuję pomocy ekspertów.
Zrobiłem sobie przykładowy formularz, potrzebuje waszej pomocy aby połączyć go
z bazą danych! - powiedzcie mi czy te wszystkie dane zmieszczą się w jednym
pliku, czy potrzebne będzie więcej, jak to zrobić i jeszcze jak zainstalować na serwerze.

Przykładowy formularz:

  1. <title>test</title></head>
  2. <body>
  3. <input type="text" size="30" name="imie"><br>
  4. <input type="text" size="40" name="nazwisko_test"><br>
  5. <input type="submit" value="wyślij">
  6. </body>
  7. </html>


Co zrobić aby po naciśnięciu przycisku, te dane: "imie", "nazwisko" - zostały wysłane do bazy w której ja sobie je odczytam?

Proszę o pomoc, pozdrawiam.
Go to the top of the page
+Quote Post
q3trm
post 19.11.2013, 22:40:49
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Aby połączyć twój formularz z bazą danych potrzebujesz użyć biblioteki mysql lub mysqli(zalecana) http://www.php.net/manual/en/book.mysqli.php. Twój formularz jest błędny bo nie zawiera tagu otwierającego formularz <form action ="plik_do_którego_wysyłasz_dane" method="sposób_przesłania">

http://ti.zs2-stargard.edu.pl/kurs_php/bazy.html
http://www.kess.snug.pl/?sid=10&pid=42
http://funkcje.net/view/2/8/64/
http://edodatki.pl/porada-dla-webmasterow/...ze-w-phpmyadmin
powyższe linki zawierają dość proste wytłumaczenie jak wykonać podstawowe operacje na bazie z poziomu PHP, tylko funkcje, których używa autor są już przestarzałe i nie powinno się ich używać, natomiast zasada działania ta sama.

Ten post edytował q3trm 19.11.2013, 22:54:40
Go to the top of the page
+Quote Post
Klusek
post 19.11.2013, 22:53:36
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Cytat(q3trm @ 19.11.2013, 22:40:49 ) *
Aby połączyć twój formularz z bazą danych potrzebujesz użyć biblioteki mysql lub mysqli(zalecana) http://www.php.net/manual/en/book.mysqli.php. Twój formularz jest błędny bo nie zawiera tagu otwierającego formularz <form action ="plik_do_którego_wysyłasz_dane" method="sposób_przesłania">

http://ti.zs2-stargard.edu.pl/kurs_php/bazy.html
http://www.kess.snug.pl/?sid=10&pid=42
http://funkcje.net/view/2/8/64/
powyższe linki zawierają dość proste wytłumaczenie jak wykonać podstawowe operacje na bazie z poziomu PHP, tylko funkcje, których używa autor są już przestarzałe i nie powinno się ich używać, natomiast zasada działania ta sama.


Mam pytanie, wszystkie te linijki kodu wpisuje w notatniku który zapisuje jako rozszerzenie .html czy .php? - moja strona została stworzona w notatniku z rozszerzeniem .html, wszystkie te linijki będę musiał dodać do pliku mojej strony czy utworzyć osobne pliki?

@edit.

Bazę danych już posiadam. Nie potrafię stworzyć tych plików z linijkami kodu dzięki którym dane zostaną przesłane.

Ten post edytował Klusek 19.11.2013, 22:59:09
Go to the top of the page
+Quote Post
q3trm
post 19.11.2013, 23:05:09
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


zawsze zapisuj z rozszerzeniem php. Natomiast kod PHP do obsługi twojego formularza najlepiej umieść w osobnym pliku, czyli w miejsce action podaj nazwę pliku np: "obsluga_formularza.php"<-- twój plik, w którym będą funkcje odpowiedzialne za zapis danych z formularza. Pliki musisz trzymać w tym samym katalogu.


//EDIT

Pokaż co już masz, to ci zarysuję jak to powinno wyglądać.

Ten post edytował q3trm 19.11.2013, 23:08:00
Go to the top of the page
+Quote Post
Klusek
post 20.11.2013, 16:53:06
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Cytat(q3trm @ 19.11.2013, 23:05:09 ) *
zawsze zapisuj z rozszerzeniem php. Natomiast kod PHP do obsługi twojego formularza najlepiej umieść w osobnym pliku, czyli w miejsce action podaj nazwę pliku np: "obsluga_formularza.php"<-- twój plik, w którym będą funkcje odpowiedzialne za zapis danych z formularza. Pliki musisz trzymać w tym samym katalogu.


//EDIT

Pokaż co już masz, to ci zarysuję jak to powinno wyglądać.


Przepraszam że tak późno, wcześniej się nie dało. Wyszło mi coś takiego:
  1. <form action ="zbiornik_danych" method="POST">
  2. <title>test</title>
  3. Wprowadź imię:<input type="text" size="30" name="imie"><br>
  4. Wprowadź nazwisko:<input type="text" size="40" name="nazwisko"><br>
  5. <input type="submit" value="wyslij">
  6. </form>


<form action ="zbiornik_danych" - tutaj podaje plik do którego formularz będzie wysyłał dane?

Oraz:

  1. <?php
  2.  
  3. $imie = $_POST['imie'];
  4. $nazwisko = $_POST['nazwisko'];
  5.  
  6. if($imie and $nazwisko) {
  7.  
  8. $connection = @mysql_connect('mysql1.ph-hos.osemka.pl', '1384962389_f', '123456')
  9. or die('Brak połączenia z serwerem MySQL');
  10. $db = @mysql_select_db('test', $connection)
  11. or die('Nie mogę połączyć się z bazą danych');
  12.  
  13. $ins = @mysql_query("INSERT INTO test SET imie='$imie', nazwisko='$nazwisko'");
  14.  
  15. if($ins) echo "Rekord został dodany poprawnie";
  16. else echo "Błąd nie udało się dodać nowego rekordu";
  17.  
  18. mysql_close($connection);
  19. }
  20.  
  21. ?>


$db = @mysql_select_db('test', $connection) - co mam wypełnić w polu "test"? - od czego jest to @mysql_select_db('?', $connection)
Go to the top of the page
+Quote Post
q3trm
post 23.11.2013, 00:03:32
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Cytat(Klusek @ 20.11.2013, 16:53:06 ) *
<form action ="zbiornik_danych" - tutaj podaje plik do którego formularz będzie wysyłał dane?

Tak, dane nie tylko będą wysłane, ale również zostaniesz przeniesiony do tego pliku.

Cytat(Klusek @ 20.11.2013, 16:53:06 ) *
[PHP] pobierz, plaintext
<?php

$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];

if($imie and $nazwisko) {

$connection = @mysql_connect('mysql1.ph-hos.osemka.pl', '1384962389_f', '123456')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('test', $connection)
or die('Nie mogę połączyć się z bazą danych');

$ins = @mysql_query("INSERT INTO test SET imie='$imie', nazwisko='$nazwisko'");

if($ins) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";

mysql_close($connection);
}

?>
[PHP] pobierz, plaintext


$db = @mysql_select_db('test', $connection) - co mam wypełnić w polu "test"? - od czego jest to @mysql_select_db('?', $connection)


mysql_select_db - służy do wyboru bazy danych na jakiej będziesz operował podczas połączenia z serwerem MySQL, a więc w miejsce 'test' podajesz nazwę bazy danych.
Linię 13 zmień na $ins = @mysql_query("INSERT INTO test SET imie='{$imie}', nazwisko='{$nazwisko}''"); w miejsce 'test' musisz wstawić nazwę tabeli do której mają się dodać dane. Każdą zmienną dodawaną do funkcji mysql, która ma być typu CHAR,VARCHAR,TEXT dajesz w apostrof i nawiasy klamrowe, lub takie coś ime='".$imie."' nazwisko='".$nazwisko."' w zależności od wersji PHP jaką masz na serwerze.

Ten post edytował q3trm 23.11.2013, 00:07:08
Go to the top of the page
+Quote Post
com
post 23.11.2013, 03:50:19
Post #7





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


nie podawaj swoich passów biggrin.gif

pomyśl nad zmiana silnika z mysql_* na mysqli_* lub PDO bo mysql_* znikło już php wink.gif
Go to the top of the page
+Quote Post
Klusek
post 23.11.2013, 11:07:39
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Cytat(q3trm @ 23.11.2013, 00:03:32 ) *
Tak, dane nie tylko będą wysłane, ale również zostaniesz przeniesiony do tego pliku.



mysql_select_db - służy do wyboru bazy danych na jakiej będziesz operował podczas połączenia z serwerem MySQL, a więc w miejsce 'test' podajesz nazwę bazy danych.
Linię 13 zmień na $ins = @mysql_query("INSERT INTO test SET imie='{$imie}', nazwisko='{$nazwisko}''"); w miejsce 'test' musisz wstawić nazwę tabeli do której mają się dodać dane. Każdą zmienną dodawaną do funkcji mysql, która ma być typu CHAR,VARCHAR,TEXT dajesz w apostrof i nawiasy klamrowe, lub takie coś ime='".$imie."' nazwisko='".$nazwisko."' w zależności od wersji PHP jaką masz na serwerze.



Cytat(com @ 23.11.2013, 03:50:19 ) *
nie podawaj swoich passów biggrin.gif

pomyśl nad zmiana silnika z mysql_* na mysqli_* lub PDO bo mysql_* znikło już php wink.gif


Kolejny problem, po wrzuceniu plików na hosting i wejściu na dany adres, nic nie wyskakuje "strona jest zablokowana" - tak jakby nic nie działało.

  1. <H1>Formularz</H1>
  2. <form action ="zbiornik_danych" method="POST">
  3. <title>test</title>
  4. Wprowadź imię:<input type="text" size="30" name="imie"><br>
  5. Wprowadź nazwisko:<input type="text" size="40" name="nazwisko"><br>
  6. <input type="submit" value="wyslij">
  7. </form>
  8. </body>
  9. </html>


Tak powinien wyglądać formularz? - zapisać go w .html i wrzucić na hosting, co trzeba jeszcze dodać aby pliki siebie obługiwały?
Go to the top of the page
+Quote Post
Turson
post 23.11.2013, 12:07:52
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


<title>test</title> powinno być w sekcji <head></head> (pomiędzy <html> a <body>)

  1. <form action ="zbiornik_danych" method="POST">

Używasz ModRewrite, że formularz kierujesz na zbiornik_danych? Prędzej zbiornik_danych.php smile.gif
Go to the top of the page
+Quote Post
Klusek
post 23.11.2013, 12:17:39
Post #10





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Cytat(Turson @ 23.11.2013, 12:07:52 ) *
<title>test</title> powinno być w sekcji <head></head> (pomiędzy <html> a <body>)

  1. <form action ="zbiornik_danych" method="POST">

Używasz ModRewrite, że formularz kierujesz na zbiornik_danych? Prędzej zbiornik_danych.php smile.gif


Poprawione, lecz po wrzuceniu na hosting i wpisaniu adresu strony, nie pokazuje formularza. Pomocy :/
Go to the top of the page
+Quote Post
Turson
post 23.11.2013, 12:19:12
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jakie rozszerzenie ma plik formularza?
Go to the top of the page
+Quote Post
q3trm
post 23.11.2013, 12:59:12
Post #12





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 26.02.2013

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


Spróbuj ten kod

  1. <!doctype html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>test</title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <H1>Formularz</H1>
  12. <form action ="zbiornik_danych.php" method="POST">
  13.  
  14. Wprowadź imię:<input type="text" size="30" name="imie"><br>
  15. Wprowadź nazwisko:<input type="text" size="40" name="nazwisko"><br>
  16. <input type="submit" value="wyslij">
  17. </form>
  18.  
  19. </body>
  20.  
  21. </html>
  22.  
  23.  


Polecam najpierw nauczyć się HTML'a a potem brać się za PHP.

//EDIT
Jeżeli chcesz zobaczyć formularz zaraz po wejściu na stronę musisz go trzymać w pliku index najlepiej z rozszerzeniem .php.

Ten post edytował q3trm 23.11.2013, 13:08:00
Go to the top of the page
+Quote Post
Turson
post 23.11.2013, 13:49:07
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat(q3trm @ 23.11.2013, 12:59:12 ) *
Jeżeli chcesz zobaczyć formularz zaraz po wejściu na stronę musisz go trzymać w pliku index najlepiej z rozszerzeniem .php.

Formularz może być HTML jak najbardziej.
Poza tym, charset nie zmienia nic w tym czy formularz się wyświetli czy nie.
Go to the top of the page
+Quote Post
Klusek
post 23.11.2013, 21:35:01
Post #14





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Cytat(q3trm @ 23.11.2013, 12:59:12 ) *
Spróbuj ten kod

  1. <!doctype html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>test</title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <H1>Formularz</H1>
  12. <form action ="zbiornik_danych.php" method="POST">
  13.  
  14. Wprowadź imię:<input type="text" size="30" name="imie"><br>
  15. Wprowadź nazwisko:<input type="text" size="40" name="nazwisko"><br>
  16. <input type="submit" value="wyslij">
  17. </form>
  18.  
  19. </body>
  20.  
  21. </html>
  22.  
  23.  


Polecam najpierw nauczyć się HTML'a a potem brać się za PHP.

//EDIT
Jeżeli chcesz zobaczyć formularz zaraz po wejściu na stronę musisz go trzymać w pliku index najlepiej z rozszerzeniem .php.


Strona działa: http://testtestowyrazdwa.aq.pl/
Lecz teraz kolejna sprawa, "zbiornik_danych.php" - jaki kod trzeba zastosować aby zostały one zapisane? + jak robi się to z tabelami w php my admin, przepraszam że pytam ale na filmikach/tutorialach próbowałem to robić lecz bez skutku. Baza danych stworzona, teraz jak się z nią połączyć i zapisać dane w tabeli?


Cytat(q3trm @ 23.11.2013, 12:59:12 ) *
Spróbuj ten kod

  1. <!doctype html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>test</title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <H1>Formularz</H1>
  12. <form action ="zbiornik_danych.php" method="POST">
  13.  
  14. Wprowadź imię:<input type="text" size="30" name="imie"><br>
  15. Wprowadź nazwisko:<input type="text" size="40" name="nazwisko"><br>
  16. <input type="submit" value="wyslij">
  17. </form>
  18.  
  19. </body>
  20.  
  21. </html>


Polecam najpierw nauczyć się HTML'a a potem brać się za PHP.

//EDIT
Jeżeli chcesz zobaczyć formularz zaraz po wejściu na stronę musisz go trzymać w pliku index najlepiej z rozszerzeniem .php.

Strona działa: http://testtestowyrazdwa.aq.pl/
Lecz teraz kolejna sprawa, "zbiornik_danych.php" - jaki kod trzeba zastosować aby zostały one zapisane? + jak robi się to z tabelami w php my admin, przepraszam że pytam ale na filmikach/tutorialach próbowałem to robić lecz bez skutku. Baza danych stworzona, teraz jak się z nią połączyć i zapisać dane w tabeli?
Go to the top of the page
+Quote Post
com
post 23.11.2013, 21:43:04
Post #15





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


masz bom w pliku zbiornik_danych.php wink.gif

  1. $imie = $_POST['imie'];
  2. $nazwisko = $_POST['nazwisko'];
  3.  
  4. if($imie and $nazwisko) {
  5.  
  6. $connection = @mysql_connect('mysql1.ph-hos.osemka.pl', '1384962389_f', '123456')
  7. or die('Brak połączenia z serwerem MySQL');
  8. $db = @mysql_select_db('test', $connection)
  9. or die('Nie mogę połączyć się z bazą danych');
  10.  
  11. $ins = @mysql_query("INSERT INTO test SET imie='$imie', nazwisko='$nazwisko'");
  12.  
  13. if($ins) echo "Rekord został dodany poprawnie";
  14. else echo "Błąd nie udało się dodać nowego rekordu";
  15.  
  16. mysql_close($connection);
  17. }

A ten kod to nie jest do tego?
Go to the top of the page
+Quote Post
Klusek
post 23.11.2013, 22:41:42
Post #16





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2013

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


Cytat(com @ 23.11.2013, 21:43:04 ) *
masz bom w pliku zbiornik_danych.php wink.gif

A ten kod to nie jest do tego?


Możesz jaśniej wytłumaczyć? - dobrze, więc połączyłem się z bazą, lecz dlaczego dane nie są do niej wysyłane?

Go to the top of the page
+Quote Post
com
post 23.11.2013, 22:58:27
Post #17





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Jeśli chodzi o bom:
http://stackoverflow.com/questions/1742461...-utf-8-with-bom

Nie będę przepisywał manuala na nowo, zalecam skorzystanie z mysqli lub pdo... ale wracając do twojego nie szczęsnego kodu to Wygłuszasz błedy @ wiec nie wiesz naprawdę co się tam dzieje...
ten warunek if($ins) zostanie zawsze spełniony wiec jest bez sensu, do dodawania do bazy służy właśnie insert tak jak tu masz przejrzyj dokumentacje bo tam jest wszytko opisane :
http://us2.php.net/manual/en/ref.mysql.php

ewentualnie zajrzyj tu:
http://it.dth.pl/id/podstawowy-kurs-jezyka-sql/

btw nie SET bo insert budujesz tak:
  1. $q = 'INSERT INTO `'.$table.'` ('.$fields.') VALUES ('.$values.')';
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: 29.04.2025 - 04:58