Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]Bardzo prosty newsletter
marian84
post
Post #1





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Witam!

Chciałbym zrobić prosty systemik newslettera. Mniejwięcej, cos takiego:

Dwa pola tekstowe, pierwsze jako temat @, drugie jako treść. Adresy mailowe pobierane z bazy danych, z 2 wartosciami, Id oraz @.

Niestety jestem bardzo początkujący i nie wiem jak się za to zabrać. Porszę o pomoc
Go to the top of the page
+Quote Post
netmare
post
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


tzn czego nie wiesz?? wszystkiego??
Go to the top of the page
+Quote Post
marian84
post
Post #3





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


No moze nie wszystkiego....

Wiem jak polaczyc się z bazą, pozniej chyba musze zrobic formularz z polami tekstowymi + jakis submit... tylko co dalej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
netmare
post
Post #4





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


no dalej plik php z pętlą wyciągającą adresy z bazy i funkcja mail()
Go to the top of the page
+Quote Post
marian84
post
Post #5





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Wymodzilem coś takiego:
1 plik html z zawartoscia:
Kod
<form action="wyslij.php" method="post">
Temat<br /><input name="temat" type="text" /><br />Zawartość<br />
<textarea name="zawartosc" cols="" rows="10"></textarea><br>
<input name="" type="submit" value="wyslij" />
</form>


plik wyslij.php
Kod
<?php

      $con = mysql_connect('localhost', 'root', 'krasnal');
      if (mysql_error()) die('Database connection error: '. mysql_error());
      mysql_select_db('adresy', $con);
      if (mysql_error()) die('Database selection error: '. mysql_error());
$adres= mysql_query('SELECT mail FROM subskrybcja');
mysql_close($con);

$temat = $_POST['temat'];
$zawartosc = $_POST['zawartosc'];

$naglowki  = "MIME-Version: 1.0\r\n";
$naglowki .= "Content-type: text/html; charset=UTF-8\r\n";
$naglowki .= "From: MAIL";

mail($adres, $temat, $zawartosc, $naglowki);
?>


Czy ide w dobrym kierunku??
Go to the top of the page
+Quote Post
netmare
post
Post #6





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


tak, tylko niewątpliwie przyda się coś co przerobi rezultat zapytania który przechwytujesz do $adres na konkretne adresy. Poczytaj o czymś jak mysql_fetch_row. A co do mail() to nigdy nie korzystałem, ale chyba sama ta funkcja nie jest skomplikowana.
Go to the top of the page
+Quote Post
marian84
post
Post #7





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Cytat(netmare @ 22.02.2008, 20:39:24 ) *
(...)Poczytaj o czymś jak mysql_fetch_row. A co do mail() to nigdy nie korzystałem, ale chyba sama ta funkcja nie jest skomplikowana.

yyyy, a mozna cos więcej... troszkę gotowca (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
netmare
post
Post #8





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Ode mnie nie ;P gotowiec znajdziesz napewno w postaci przykładu na pl.php.net jak znajdziesz sobie tą funkcję ;P
Go to the top of the page
+Quote Post
marian84
post
Post #9





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


czytam, czytam... metlik w glowie jeszcze większy... pomocy! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
netmare
post
Post #10





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


schemat postępowania:

$wynikzapytania=mysql_query(...);
while($wiersz=@mysql_fetch_row($wynikzapytania)) //to oznacza jeśli uda się pobrać kolejny wiersz z $wynikzapytania, a @ wyłącza warnings
{
echo($wiersz[0].$wiersz[2]) // to wyświetli z tego $wiersz któy jest zwracany jako tablica z indeksami numerycznymi pierwszą i trzecią kolumnę
}

więc taki kody spowoduje wypisanie pierwszej i trzeciej kolumny ze wszystkich wierszy.

Jak jesteś ambitny to kombinuj, jak nie to napisz że dasz pomógł i w 15 minut ktoś się znajdzie napewno kto zrobi to za Ciebie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
marian84
post
Post #11





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


$pobranyadres= mysql_query('SELECT mail FROM subskrybcja');

while($wiersz=@mysql_fetch_row($pobranyadres))
{
$adres=$wiersz
}

Wymyslilem coś takiego... ale to chyba nie jest za wiele warte... jak ktos pomoże to dam pomógł... ambicje trzeba schowac w kieszeń (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
netmare
post
Post #12





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


$wiersz to tablica, z zapytania wynika, że pobierasz jedną kolumnę więc $adres=$wiersz[0]
za każdym razem z tym $adres musisz wywołać mail() i chyba będzie śmigać jeśli w temat i treść dołożysz wartości przesłane z formularza (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
nowotny
post
Post #13





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


$wiersz to jest tablica... jak nie wiesz jak pracować z tablicami to najwyższy czas się dokształcić... Poza tym zakładam że chcesz wysyłać newsletter na adresy wszystkich osób z tabeli subskrypcja... funkcję mail" title="Zobacz w manualu PHP" target="_manual też musisz wtedy umieścić w pętli... Nie wspominając już o tym że przy większej ilości adresów skrypt i tak ci się wykopyrtnie po jakimś czasie...

Ten post edytował nowotny 22.02.2008, 21:27:08
Go to the top of the page
+Quote Post
marian84
post
Post #14





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Nie przewiduje zeby adresow bylo az tak duzo...

Wiec wyszlo cos takiego:
Kod
<?php
$temat = $_POST['temat'];
$zawartosc = $_POST['zawartosc'];

      $con = mysql_connect('localhost', 'root', 'krasnal');
      if (mysql_error()) die('Database connection error: '. mysql_error());
      mysql_select_db('adresy', $con);
      if (mysql_error()) die('Database selection error: '. mysql_error());
$adres= mysql_query('SELECT mail FROM subskrybcja');

while($wiersz=@mysql_fetch_row($adres))
{
$adres=$wiersz[0];
mail($adres, $temat, $zawartosc);
}
mysql_close($con);
?>


Czy dobrze??
Go to the top of the page
+Quote Post
netmare
post
Post #15





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


na pierwszy rzut oka OK, weź sobie wstaw swój mail do bazy, jak dojdzie do Ciebie to do innych też.

Jednak jest błąd $adres używasz w róznych znaczeniach napoczątku jako rezultat całęgo zapytania przy mysql_query i mysql_fetch_row , a później jako właściwy adres przy mailu, zwyczajowo ta mienna na początku nazywa się $result i przechowuje rezultat wykonania zapytania.
Go to the top of the page
+Quote Post
marian84
post
Post #16





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Wszystko prawie dobrze... z malym szczegolem....

Warning: mail(): SMTP server response: 550 Invalid recipient:

Uzywam krasnala do testow... czy to moze byc przyczyna błędu?? jak tak to może można to jakoś obejść lub poprawic?
Go to the top of the page
+Quote Post
netmare
post
Post #17





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Jak już mówiłem mail() nie używałem, a ten komunikat oznacza że nieprwidłowy adresat ;P kombinuj. Tyle pomocy dostałeś że trochę musisz się wykazać ;P
Go to the top of the page
+Quote Post
marian84
post
Post #18





Grupa: Zarejestrowani
Postów: 185
Pomógł: 10
Dołączył: 29.01.2008

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


Ok, dzięki....

Wystarczylo dodać w while:

$dodatki="From: adres@adres.pl";
mail($adresy, $temat, $zawartosc, $dodatki);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:54