Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL]wysyłanie danych z formularza PHP do sql
traczu1985
post 27.08.2019, 11:29:24
Post #1





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

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


Zrobiłem prosty formularz wysyłania danych Imienia i Nazwiska do SQL.
Sprawdziłem że dodaje do bazy kolejno ale bez wartości.
Za to formularz zapamiętuje wartość Imię i Nazwisko

Za to w tabeli pokazuje 0

index.html
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <meta charset="utf-8"/>
  4. <title>Formularz Newsletter</title>
  5. <link ref="stylesheet" href="">
  6. </head>
  7. <section id="home">
  8. <div class="container">
  9. <h2> Dodaj się do bazy</h2>
  10. <form action="dodaj.php" method="post">
  11. <input type="text" name="imie" placeholder="Twoje imię..." required /><br>
  12. <input type="text" name="nazwisko" placeholder="Twoje nazwisko..." required /><br>
  13. <button type="submit">Dodaj...</button>
  14.  
  15.  
  16.  
  17.  
  18. </form>
  19. </div>
  20. </section>
  21. </body>
  22. </html>
  23.  


connect.php
  1. <?php
  2.  
  3. $conn = mysqli_connect (
  4. 'localhost',
  5. 'user',
  6. 'pass',
  7. 'dbname'
  8. );
  9. ?>


dodaj.php
  1. <?php
  2. require("connect.php");
  3.  
  4. $firstName = $_POST['imie'];
  5. $secondName = $_POST['nazwisko'];
  6. $sql= "INSERT INTO baza_newsletter(IDAutor, Imie, Nazwisko) VALUES ('','$firstName','$secondName')";
  7. $result = $conn->query($sql);
  8.  
  9. ?>

Go to the top of the page
+Quote Post
viking
post 27.08.2019, 11:41:33
Post #2





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Włącz wyświetlanie błędów zapytania. Dlaczego wstawiasz pusty string w kolumnę zapewne int? Pomiń ja całkowicie. Zabezpiecz to bindowaniem parametrów.


--------------------
Go to the top of the page
+Quote Post
traczu1985
post 27.08.2019, 11:44:57
Post #3





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

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


Cytat(viking @ 27.08.2019, 12:41:33 ) *
Włącz wyświetlanie błędów zapytania. Dlaczego wstawiasz pusty string w kolumnę zapewne int? Pomiń ja całkowicie. Zabezpiecz to bindowaniem parametrów.



Pusty aby z automatu numerował znalazłem tak w jednym z poradników.

Co to znaczy bindowanie parametrów questionmark.gif
Go to the top of the page
+Quote Post
viking
post 27.08.2019, 11:50:53
Post #4





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


A czytałeś https://dev.mysql.com/doc/refman/8.0/en/exa...-increment.html ? Masz tam opisane dokładnie jak jest generowany AI dla zapytań.

https://www.php.net/manual/en/mysqli-stmt.bind-param.php


--------------------
Go to the top of the page
+Quote Post
traczu1985
post 27.08.2019, 11:58:25
Post #5





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

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


usunąłem numerowanie ale to nic nie zmienia żadnej wartości mi nie zapisuje do bazy.

Połączenie wygląda że jest ok
Nie wywala żadnego błędu


Ok znalazłem typ w tabeli był INT zamiast text biggrin.gif


Może teraz ktoś pomoże jak sprawdzić czy np jedna z wartości sie nie powtarza w bazie questionmark.gif
I wyrzuca informacje że taki zapis już jest questionmark.gif

Ten post edytował traczu1985 27.08.2019, 12:02:10
Go to the top of the page
+Quote Post
viking
post 27.08.2019, 12:10:19
Post #6





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


A która konkretnie wartość? Zazwyczaj unique key plus łapanie wyjątków.


--------------------
Go to the top of the page
+Quote Post
traczu1985
post 27.08.2019, 12:28:07
Post #7





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

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


Cytat(viking @ 27.08.2019, 13:10:19 ) *
A która konkretnie wartość? Zazwyczaj unique key plus łapanie wyjątków.



Chodzi mi o wyłapanie błędu jeśli jest taki sam adres mail już w bazie (tabeli)
Go to the top of the page
+Quote Post
viking
post 27.08.2019, 12:34:06
Post #8





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


No to odpowiedź już masz.


--------------------
Go to the top of the page
+Quote Post
traczu1985
post 27.08.2019, 12:56:33
Post #9





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

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


Cytat(viking @ 27.08.2019, 13:34:06 ) *
No to odpowiedź już masz.


łatwo powiedzieć jak człowiek się porusza biegle.
znalazłem unique key definicje ale nie do końca wiem jak to zastosować
Go to the top of the page
+Quote Post
viking
post 27.08.2019, 13:19:20
Post #10





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

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


Ściągasz sobie jakiś program np heidisql i w dwóch klikach dodajesz. Jak nie to polecenie alter table.


--------------------
Go to the top of the page
+Quote Post
dublinka
post 28.08.2019, 09:06:23
Post #11





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(traczu1985 @ 27.08.2019, 12:56:33 ) *
łatwo powiedzieć jak człowiek się porusza biegle.
znalazłem unique key definicje ale nie do końca wiem jak to zastosować


  1. <?php
  2. function duplicateEmailAddress($host, $user, $pwd, $database, $str)
  3. {
  4. $mysqli = new mysqli($host, $user, $pwd, $database);
  5. if($mysqli->connect_error) {
  6. exit('Błąd polączenia z MySQL');
  7. }
  8. mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  9. $mysqli->set_charset("utf8mb4");
  10.  
  11.  
  12. $stmt = $mysqli->prepare("SELECT email FROM email WHERE email = ?");
  13. $stmt->bind_param("s", $str);
  14. $stmt->execute();
  15. $stmt->store_result();
  16. if($stmt->num_rows > 0)
  17. {
  18. exit('Email istnieje');
  19. }
  20.  
  21. // reszta jesli ok
  22.  
  23.  
  24. $stmt->bind_result($email);
  25. $stmt->fetch();
  26.  
  27. $stmt->close();
  28. }
  29. $get = duplicateEmailAddress("localhost", "root", "password", "nazwabazy", "email@gmail.com");
  30.  
  31. echo $get;
  32. ?>


Ten post edytował dublinka 28.08.2019, 15:27:51


--------------------
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: 30.04.2025 - 07:14