Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]problem z wyswietlaniem z bazy
Forum PHP.pl > Forum > Przedszkole
pkania
witam,
mam skrypt newslettera i troche go przerabiam

na stronie z potwierdzeniem chcialbym aby wyswietlily sie dane z bazy:
w mailu z automatu klient dostaje link,
"http://...../potwierdz.php?adres=adres@mailowy.pl&token=ce606e2420ab"
po kliknieciu ktorego przenosi sie na strone i potwiedza dopisanie do newslettera
na tej stronie wyswietla sie:
Dziekuje, Twój email zostal potwierdzony
adres@mailowy.pl

a chcialbym tak:
Dziekuje, Twój email zostal potwierdzony
adres@mailowy.pl Imie Nazwisko(z bazy)

kod
  1. $sql = mysql_connect( 'host' , 'nazwa' , 'haslo' );
  2. mysql_select_db( 'baza' );
  3.  
  4.  
  5. $query = "UPDATE newsletter SET potwierdzony = 't' WHERE adres = '".$_GET['adres']."' and token = '".$_GET['token']."'";
  6. $res = mysql_query($query);
  7. if (mysql_affected_rows($sql)==1) {
  8. echo "Dziekuje, Twój email zostal potwierdzony <br>";
  9. echo "'".$_GET['adres']."'";
  10. echo "'".$_GET['nazwisko']."'";
  11. }
  12. else {
  13. echo "Blad - adres nie istnieje lub zostal juz potwierdzony";
  14. }


z gory dzieki za pomoc i wskazowki
Quantum
Cytat
http://...../potwierdz.php?adres=adres@mailowy.pl&token=ce606e2420ab


w parametrach GET nie ma nazwiska tak i nie zostanie wyświetlone przez $_GET['nazwisko'] smile.gif musisz wykonać dodatkowe zapytanie SQL pobierające je i wtedy wyświetlić obok adresu e-mail.
pkania
ok, a jak w takim razie zrobic aby w tym linku zamiast tak
http://..../newsletter/potwierdz.php?adres=$mail&token=$token
wyswietlalo sie tak:
http://..../newsletter/potwierdz.php?adres=$mail&token=$token&nazwisko=$nazwisko
bo niestety gdy dodam na koncu &nazwisko=$nazwisko to link wyglada tak: http://..../newsletter/potwierdz.php?adres=$mail&token=$token&nazwisko=
dodam ze do bazy dodaje sie wszystko poprawnie

kod wyglada nastepujaco:
  1. <?php
  2. include('Mail.php');
  3. function sendmail($mail,$first) {
  4. $res = mysql_query("SELECT token FROM newsletter where adres = \"".$mail."\"");
  5. $token = mysql_result($res,0);
  6.  
  7. $msgBody = "Witaj w systemie newsletter!
  8. Aby potwierdzi㇠swój adres email kliknij w poniższy link lub wklej ten adres do przeglądarki:
  9. http://..../newsletter/potwierdz.php?adres=$mail&token=$token
  10. \n
  11. \n
  12. Jeś›li to nie Ty zapisywałeś› się™ w naszym systemie newsletter po prostu zignotuj tą… wiadomość‡.
  13. \n
  14. \n
  15. ";
  16. $msgBody.="Prosimy nie odpowiada㇠na tą… wiadomość‡, została wygenerowana automatycznie";
  17. $msgBody = wordwrap($msgBody, 70);
  18. $headers['From'] = 'newsletter@....pl';
  19. $headers['To'] = $mail;
  20. $headers['Subject'] = "System newsletter";
  21. $headers['Content-type'] = "text/plain; charset=utf-8";
  22.  
  23. $params = array(
  24. "host"=>"....pl",
  25. "port"=>25,
  26. "auth"=>true,
  27. "username"=>"newsletter@....pl",
  28. "password"=>"...",
  29. );
  30.  
  31.  
  32. $mail_object =& Mail::factory('smtp', $params);
  33. $mail_object->send($mail, $headers, $msgBody);
  34.  
  35. if (PEAR::isError($mail_object)) {
  36. die($mail_object->getMessage());
  37. }
  38. else {
  39. echo "<hr><br>Potwierdzenie został‚o przesłane na Twój e-mail";
  40. if ($first ===false)
  41. echo " ponownie";
  42. echo ".";
  43. }
  44.  
  45. }
  46.  
  47. if (!isset($_POST['mail'])){
  48. echo ("Brak maila!");
  49. }
  50. $normal = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$";
  51. if (!eregi($normal, $_POST['mail'])) {
  52. echo("Niepoprawny adres email");
  53. exit;
  54. }
  55. $mail = $_POST['mail'];
  56. if ($_POST['akcja']=='add')
  57. $akcja = 'add';
  58. else if ($_POST['akcja']=='del')
  59. $akcja = 'del';
  60. else{
  61. echo ("błąd");
  62. }
  63.  
  64. $sql = mysql_connect( '...' , '...' , '...' );
  65. mysql_select_db( 's...' );
  66.  
  67.  
  68. if ($akcja == 'del') {
  69. $res = mysql_query("DELETE FROM newsletter WHERE adres='".$mail."'");
  70. if (mysql_affected_rows($sql)=='1') {
  71. echo ("adres usunięty");
  72. }
  73. else {
  74. echo ("Brak adresu w bazie");
  75. }
  76. }
  77.  
  78. if ($akcja == 'add') {
  79. $token = sha1(time());
  80. $nazwisko = $_POST['nazwisko'];
  81. $res = @mysql_query("INSERT INTO newsletter(adres,token,nazwisko) VALUES (\"".$mail."\", \"".$token."\", \"".$nazwisko."\") ");
  82. if ($res) {
  83. sendmail($mail,true);
  84. }
  85. else {
  86. $res = mysql_query("SELECT potwierdzony FROM newsletter where adres = \"".$mail."\" ");
  87. $potw = mysql_result($res,0);
  88. if ($potw == "t") {
  89. echo("Adres już istnieje w bazie i jest powierdzony");
  90. }
  91. else if ($potw == "n") {
  92. sendmail($mail,false);
  93. }
  94. }
  95. }
  96.  
  97. ?>
Kużdo
Zamień to:
  1. $res = mysql_query("SELECT token FROM newsletter where adres = \"".$mail."\"");
  2. $token = mysql_result($res,0);
  3.  
  4. $msgBody = "Witaj w systemie newsletter!
  5. Aby potwierdzi?? swój adres email kliknij w poni?szy link lub wklej ten adres do przegl?darki:
  6. http://..../newsletter/potwierdz.php?adres=$mail&token=$token

Na to:
  1. $res = mysql_query("SELECT token, nazwisko FROM newsletter where adres = \"".$mail."\"");
  2. $token = mysql_fetch_row($res);
  3.  
  4. $msgBody = "Witaj w systemie newsletter!
  5. Aby potwierdzi?? swój adres email kliknij w poni?szy link lub wklej ten adres do przegl?darki:
  6. http://..../newsletter/potwierdz.php?adres=$mail&token=$token[0]&nazwisko=$token[1]


W zapytaniu jest dodane pole nazwisko, później do $token jest tworzona tablica indeksowana numerami, a w treści odwołanie do tokenu($token[0]) i nazwiska ($token[1])
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.