Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [HTML][MySQL][PHP]Generowanie maila

Napisany przez: wino97 21.03.2019, 20:44:23

Cześć,
staram się zrobić skrypt, który generuje losowy kod, łączy go w jedno i wysyła HTMLowy email, gdzie link jest w postaci przycisku.

  1. <?php
  2. $subject = "zgoda";
  3. $message = 'http://example.com/confirm.php? . $kod'; // To zle dziala <---
  4. $servername = "localhost";
  5. $username = "login";
  6. $password = "haslo";
  7. $dbname = "mysql";
  8. $kod = NULL;
  9. $email = $_POST["email"];
  10.  
  11. $conn = new mysqli($servername, $username, $password, $dbname);
  12.  
  13. if ($conn->connect_error) {
  14. http://www.php.net/die("Connection failed: " . $conn->connect_error);
  15. }
  16. http://www.php.net/echo "Connected successfully";
  17. if ($conn)
  18. {
  19. $sql = "SELECT * FROM `zgody` WHERE email='$email'";
  20. $result = $conn->query($sql);
  21. if ($result->num_rows > 0){
  22. http://www.php.net/echo "Email exist in DB";
  23. }
  24. else {
  25. for ($i = 0; $i < 36; $i++) {
  26. $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  27. $charactersLength = http://www.php.net/strlen($characters);
  28. $kod .= $characters[http://www.php.net/rand(0, $charactersLength - 1)];
  29. }
  30. $sql = "INSERT INTO zgody (email, kod, confirm) VALUES ('$email', '$kod', '0')";
  31. if ($conn->query($sql) === TRUE)
  32. {
  33. http://www.php.net/echo "dodano";
  34. $headers = "MIME-Version: 1.0" . "\r\n";
  35. $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
  36. $headers .= 'From: <mailtest@mail.pl>' . "\r\n";
  37.  
  38. http://www.php.net/mail($email,$subject,'http://example.com/confirm.php?' . $kod,$headers); //Tworzy poprawny link<-----
  39. }}
  40. $conn->close();
  41. }
  42.  
  43. ?>

Jak już mówiłem chciałbym przedstawić owy link w formie na przykład <button>
  1. <?php
  2. $servername = "localhost";
  3. $username = "login";
  4. $password = "haslo";
  5. $dbname = "mysql";
  6.  
  7.  
  8. $conn = new mysqli($servername, $username, $password, $dbname);
  9. if ($conn->connect_error) {
  10. http://www.php.net/die("Connection failed: " . $conn->connect_error);
  11. }
  12. http://www.php.net/echo "Connected successfully";
  13. if ($conn)
  14. {
  15.  
  16. $sql = "SELECT * FROM `zgody` WHERE confirm=1";
  17. if ($result->num_rows > 0) {
  18. while($row = $result->fetch_assoc()) {
  19. http://www.php.net/echo "id: " . $row["id"]. " - Name: " . $row["email"]. " " . $row["kod"]. " " . $row["confirm"] . "<br>";
  20. }
  21. }
  22. else {
  23. http://www.php.net/echo "0 results";
  24. }
  25. }
  26. ?>

Powyższe zapytanie daje tylko wynik else, a chciałbym wyświetlić całą zawartość tablicy.
$email jest wprowadzany w index.php i metodą post wysyłany do pierwszej funkcji.
Liczę na pomoc i pozdrawiam.

Napisany przez: nospor 22.03.2019, 09:21:27

$sql = "SELECT * FROM `zgody` WHERE confirm=1";
if ($result->num_rows > 0) {

Przeciez nigdzie tutaj nie wykonujesz tego zapytania $sql. Nagle ni z gruszki ni zpietruszki sprawdzasz czy jakas magiczna zmienna $result, ktorej nigdzie nie tworzysz, nie zwraca przypadkiem paru rekordow....

To tak jakbys napisal liste zakupow po czym zajrzal do lodowki i darl sie na wszystkich ze produkty z listy nie sa jeszcze na w lodowce.... najpierw trzeba pojechac do sklepu i je kupic, potem wlozyc do lodowki i wtedy mozna sprawdzac czy w tej lodowce sa

Napisany przez: markonix 22.03.2019, 09:26:45

3 linia błąd składniowy, nawet forum podświetla..

Napisany przez: wino97 22.03.2019, 18:03:59

dzięki za odpowiedzi, zdążyłem dziś z rana to ogarnąć. Nie myślałem już wczoraj a zaprzatało to mi głowe.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)