Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] PHP wstawia pusty wiersz z danymi z formularza do tabeli
Forum PHP.pl > Forum > Przedszkole
pikasso
Witam wszystkich,
nie wiem czemu, ale gdy nacisnę w formularzu wyślij wstawiony jest pusty wiersz do bazy - php nie przekazuje danych do bazy

  1. if ($_POST['wyslij'] == 1) {
  2. $mysqli->query("INSERT INTO active_customers (Id, Imie_nazwisko, email, telefon, numer_kth, customer_exist, data)
  3. VALUES ('', '$kth_name', '$email_adress', '$phone_number', '$company_nr', '$nowy_klient', NOW())");
  4.  
  5. ?>
  6.  
  7. <div class="full_top_info">
  8. <div class="full_top_info_1">
  9. Dziękujemy za zapisanie się do naszego Newslettera! Od teraz będziesz na bierząco ze wszystkimi informacjami!
  10. <script>setTimeout(function(){window.location.href='http://mojastrona.pl'},2500);</script>
  11. </div>
  12. </div>
  13. <?php
  14. }


  1. <form method="post" action="">
  2. <div class="section">Uzupełnij formularz</div>
  3. <div class="inner-wrap">
  4. <label>Imię i nazwisko<input type="text" required name="kth_name" /></label>
  5. <label>Adres e-Mail<input type="email" required name="email_adress" /></label>
  6. <label>Numer telefonu<input type="tel" required name="phone_number" /></label>
  7. <label>Numer klienta (Pole nie jest wymagane)<input type="text" name="company_nr" /></label>
  8. <label><input type="checkbox" name="nowy_klient" value="1" > Jestem nowym klientem</label>
  9. <label><input type="checkbox" name="vehicle" value="zgoda" required > Wyrażam zgodę na otrzymywanie na podany w formularzu adres poczty elektronicznej informacji handlowych wysyłanych przez </label>
  10. </div>
  11. <div class="button-section">
  12. <input type="hidden" name="wyslij" value="1" /><input type="submit" value="Zapisz się na newsletter" />
  13. </div>
  14. </form>
nospor
Bo nigdzie nie ustawiasz tych zmiennych
$kth_name

dane z forma sa w $_POST

czemu sie uczysz ze starych przedawnionych kursow?
pikasso
to jest stary skrypt, który gdzieś kiedyś miałem i chciałem się pobawić
nospor
To tak jak juz mowilem: dane z forma sa w $_POST. Popraw wiec swoj stary skrypt
Johnas
z lenistwa nie chce mi się pokazywać jak to powinno poprawnie wyglądać aby było bezpieczne, ale

  1. $mysqli->query("INSERT INTO active_customers (Id, Imie_nazwisko, email, telefon, numer_kth, customer_exist, data)
  2. VALUES ('', '$kth_name', '$email_adress', '$phone_number', '$company_nr', '$nowy_klient', NOW())");


Zamień na:

  1. $mysqli->query("INSERT INTO active_customers (Id, Imie_nazwisko, email, telefon, numer_kth, customer_exist, data)
  2. VALUES ('', '$_POST["kth_name"]', '$_POST["email_adress"]', '$_POST["phone_number"]', '$_POST["company_nr"]', '$_POST["nowy_klient"]', NOW())");


czyli to o czym mówi nospor
nospor
@ GodOfPeople nie dosc ze nie pozwalasz uzytkownikowi na odrobine pomyslunku, a tym samym robisz mu krzywde, to na dodatek podajesz totalnie bledny kod i robisz jeszcze wieksza krzywde wink.gif
Przeciez twoj kod to jeden wielki PARSE ERROR tongue.gif
Johnas
faktycznie, nie powinno być '$_POST["nazwa"]' tylko samo $_POST["nazwa"] smile.gif oj tam, zdarza się najlepszym, czyli jak widzisz dałem mu pomyśleć biggrin.gif

chociaż w sumie... nie wiem dlaczego miało by wyrzucać errory... dawno nie programowałem takim sposobem... Zapytania tworzę w tablicy do bazy smile.gif
nospor
Cytat
faktycznie, nie powinno być '$_POST["nazwa"]' tylko samo $_POST["nazwa"]
Nadal zle wink.gif usunales ciapki w zlym miejscu
pikasso
Zmieniłem kod ale dalej nie zapisuje mi do bazy....

  1.  
  2. <?php
  3. mysql_connect('localhost', '0000011', 'zaq1234zxc');
  4. mysql_select_db('active_customers');
  5.  
  6. mysql_query('SET NAMES utf8');
  7. mysql_query('SET CHARACTER_SET utf8_unicode_ci');
  8.  
  9.  
  10. if ($_POST['wyslij'] == 1) {
  11.  
  12.  
  13. $imie = $_POST['kth_name'];
  14. $email = $_POST['email_adress'];
  15. $phone = $_POST['phone_number'];
  16. $company = $_POST['company_nr'];
  17. $partner = $_POST['partner_nr'];
  18. $nowy = $_POST['nowy_klient'];
  19.  
  20.  
  21. mysql_query("INSERT INTO active_customers (Id, Imie_nazwisko, email, telefon, numer_kth, partner_nr, customer_exist, data)
  22. VALUES('', '$imie', '$email', '$phone', '$company', '$partner', '$nowy', NOW());");
  23.  
  24. ?>
  25. <div class="full_top_info">
  26. <div class="full_top_info_1">
  27. Dziękujemy za zapisanie się do naszego Newslettera! Od teraz będziesz na bierząco ze wszystkimi informacjami!
  28. <script>setTimeout(function(){window.location.href='http://mojastrona.pl'},2500);</script>
  29. </div>
  30. </div>
  31. <?
  32. }
  33. ?>


  1.  
  2. <form method="post" action="">
  3. <div class="section">Uzupełnij formularz</div>
  4. <div class="inner-wrap">
  5. <label>Imię i nazwisko<input type="text" required name="kth_name" /></label>
  6. <label>Adres e-Mail<input type="email" required name="email_adress" /></label>
  7. <label>Numer telefonu<input type="tel" required name="phone_number" maxlength="9" /></label>
  8. <label>Numer klienta (Pole nie jest wymagane)<input type="text" name="company_nr" value="Numery zacznają się od 311 np. 311230872" maxlength="9" /></label>
  9. <label>Numer partnera (Pole nie jest wymagane)<input type="text" name="partner_nr" value="Numery używany przy logowaniu np. 4014734" maxlength="7" /></label>
  10. <label><input type="checkbox" name="nowy_klient" value="1" > Jestem nowym klientem</label>
  11. <label><input type="checkbox" name="vehicle" value="zgoda" required > Wyrażam zgodę na otrzymywanie na podany w formularzu adres poczty elektronicznej informacji handlowych wysyłanych przez</label>
  12. </div>
  13. <div class="button-section">
  14. <input type="hidden" name="wyslij" value="1" /><input type="submit" value="Zapisz się na newsletter" />
  15. </div>
  16. </form>
  17.  
charzak
W Twoim insert into zamienne są traktowana jak tekst a nie jak zmienna.
zmienne w string wstawiasz tak: $zmienna = 'to jest tekst ze zmienną o nazwie: '.$zmiennaNazwa.' o wartości: '.$zmiennaWartosc.' i tak dalej';
kapslokk
Cytat(charzak @ 2.11.2016, 10:28:13 ) *
W Twoim insert into zamienne są traktowana jak tekst a nie jak zmienna.
zmienne w string wstawiasz tak: $zmienna = 'to jest tekst ze zmienną o nazwie: '.$zmiennaNazwa.' o wartości: '.$zmiennaWartosc.' i tak dalej';


Wypróbuj sobie kod

  1. <?php
  2. $x= 'asdasd';
  3. echo("x = $x");
pikasso
Zmieniłem kod ale dalej nie dodaje do bazy - chociaż zmienne wyświetla prawidłowo

  1. if ($_POST['wyslij'] == 1) {
  2.  
  3.  
  4. $imie = $_POST['kth_name'];
  5. $email = $_POST['email_adress'];
  6. $phone = $_POST['phone_number'];
  7. $company = $_POST['company_nr'];
  8. $partner = $_POST['partner_nr'];
  9. $nowy = $_POST['nowy_klient'];
  10.  
  11.  
  12. mysql_query("INSERT INTO active_customers (Id, Imie_nazwisko, email, telefon, numer_kth, partner_nr, customer_exist, data)
  13. VALUES('', '".$imie."', '".$email."', '".$phone."', '".$company."', '".$partner."', '".$nowy."', NOW());");
  14.  
  15. ?>
  16. <div class="full_top_info">
  17. <div class="full_top_info_1">
  18. <?php echo $imie." ".$email." ".$phone." ".$company." ".$partner." ".$nowy; ?>
  19. Dziękujemy za zapisanie się do naszego Newslettera! Od teraz będziesz na bierząco ze wszystkimi informacjami!
  20. <script>setTimeout(function(){window.location.href='http://mojastrona.pl'},2500);</script>
  21. </div>
  22. </div>
  23. <?
  24. }
  25. ?>



  1. form method="post" action="">
  2. <div class="section">Uzupełnij formularz</div>
  3. <div class="inner-wrap">
  4. <label>Imię i nazwisko<input type="text" required name="kth_name" /></label>
  5. <label>Adres e-Mail<input type="email" required name="email_adress" /></label>
  6. <label>Numer telefonu<input type="tel" required name="phone_number" maxlength="9" /></label>
  7. <label>Numer klienta (Pole nie jest wymagane)<input type="text" name="company_nr" value="Numery zacznają się od 311 np. 311230872" maxlength="9" /></label>
  8. <label>Numer partnera (Pole nie jest wymagane)<input type="text" name="partner_nr" value="Numery używany przy logowaniu np. 4014734" maxlength="7" /></label>
  9. <label><input type="checkbox" name="nowy_klient" value="1" > Jestem nowym klientem</label>
  10. <label><input type="checkbox" name="vehicle" value="zgoda" required > Wyrażam zgodę na otrzymywanie na podany w formularzu adres poczty elektronicznej informacji handlowych wysyłanych przez</label>
  11. </div>
  12. <div class="button-section">
  13. <input type="hidden" name="wyslij" value="1" /><input type="submit" value="Zapisz się na newsletter" />
  14. </div>
  15. </form>
nospor
Co by miec pewnosc: teraz nadal dodaje do bazy rekord z pustymi danymi czy tym razem nie dodaje do bazy w ogole zadnego rekordu?

ps: i ignoruj posty charzaka bo plecie trzy po trzy tongue.gif
pikasso
Cytat(nospor @ 2.11.2016, 12:24:34 ) *
Co by miec pewnosc: teraz nadal dodaje do bazy rekord z pustymi danymi czy tym razem nie dodaje do bazy w ogole zadnego rekordu?

ps: i ignoruj posty charzaka bo plecie trzy po trzy tongue.gif


Nie dodaje żadnego rekordu
viking
Wyświetl sobie mysql_error i zobacz w czym jest problem. Albo w logach mysql. A skoro już robisz
$imie = $_POST['kth_name'];

to równie dobrze mozesz od razu
$imie = mysql_real_escape_string($_POST['kth_name']);
nospor
No, to staraj sie wyrazac precyzyjnie nastepnym razem. Piszac "dalej nie zapisuje mi do bazy" zasugerowales ze dalej masz ten sam blad a on jest inny.

Przed
mysql_query("INSERT INTO active_customers (Id, Imie_nazwisko, email, telefon, numer_kth, partner_nr, customer_exist, data)
VALUES('', '".$imie."', '".$email."', '".$phone."', '".$company."', '".$partner."', '".$nowy."', NOW());");

daj kod:
echo 'Widzisz mnie?';

jak zobaczysz ten tekst na ekranie to za mysql_query daj kod:
echo mysql_error();

Jak nie zobaczysz widzisz mnie to przed IF daj
print_r($_POST);
i pokaz co zawiera
pikasso
Dzięki smile.gif
już dodaje wiem gdzie był błąd i to tak banalny że szok....

mysql_connect('localhost', '0000011', 'zaq1234zxc');
mysql_select_db('0000011'); <-- tu miałem wpisaną tabelę a nie bazę danych
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.