Najpierw zaczynamy od tabelki w (mojej szkole)
Kod
ID(int) | mail(varchar(255) ) | random(int)
Nazwy kolumn a w nawiasach ich typ, dodatkowo ID jest kluczem i ma auto inkrementacje.
Nazwa całej tabelki nazwałem substrykcja
Robimy tam jakiś formularzyk
Kod
<form method="post" action="php/subskrypcja.php" >
<fieldset>
Subskrypcja:
<input name="mail" type="text" size="35" value="Twój adres e-mail" />
<input type="submit" value="Wyślij" class="input1"/>
<input type="reset" value="Wyczyść" class="input1"/>
</fieldset>
</form>
<fieldset>
Subskrypcja:
<input name="mail" type="text" size="35" value="Twój adres e-mail" />
<input type="submit" value="Wyślij" class="input1"/>
<input type="reset" value="Wyczyść" class="input1"/>
</fieldset>
</form>
No i jeszcze plik lacz.php, dzięki któremu będziemy sie łączyc z sql.
Kod
<?php
$mysql_server = "[SERWER BAZY DANYCH]";
$mysql_admin = "[UZYTKOWNIK]";
$mysql_pass = "[HASLO]";
$mysql_db = "[NAZWA BAZY DANYCH]";
$connection = @mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
$db = @mysql_select_db($mysql_db, $connection) or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
?>
$mysql_server = "[SERWER BAZY DANYCH]";
$mysql_admin = "[UZYTKOWNIK]";
$mysql_pass = "[HASLO]";
$mysql_db = "[NAZWA BAZY DANYCH]";
$connection = @mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
$db = @mysql_select_db($mysql_db, $connection) or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
?>
No i teraz pora na plik substrykcja.php
Kod
<?php
$email = $_POST['mail'];
if($email != null)
{
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
{
echo '<p>Wprowadzony adres jest nieprawidłowy.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
else
{
include('lacz.php');
$wynik = mysql_query("SELECT * FROM subskrypcja") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
while($t = mysql_fetch_assoc($wynik))
{
$maill = $t['mail'];
if($email == $maill)
{
$mozna=1;
}
}
}
if($mozna == 1)
{
echo '<p>Adres Email jest już w bazie.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
else
{
$random = rand(0, 100);
$ins = mysql_query("INSERT INTO subskrypcja SET mail='$email', random = '$random' ");
if($ins)
{
echo '<p>Adres Email został zapisany. Teraz będziesz powiadamiany o wszystkich nowościach.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
}
}
}
?>
$email = $_POST['mail'];
if($email != null)
{
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
{
echo '<p>Wprowadzony adres jest nieprawidłowy.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
else
{
include('lacz.php');
$wynik = mysql_query("SELECT * FROM subskrypcja") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
while($t = mysql_fetch_assoc($wynik))
{
$maill = $t['mail'];
if($email == $maill)
{
$mozna=1;
}
}
}
if($mozna == 1)
{
echo '<p>Adres Email jest już w bazie.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
else
{
$random = rand(0, 100);
$ins = mysql_query("INSERT INTO subskrypcja SET mail='$email', random = '$random' ");
if($ins)
{
echo '<p>Adres Email został zapisany. Teraz będziesz powiadamiany o wszystkich nowościach.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
}
}
}
?>
Po krótce go opowiem.
Pierwszy if sprawcza czy pole w formularzu zostało wypełnione.
Potem sprawdzamy czy został wpisany z prawidławami adresu email
Jeśli został dobrze wpisany to łączymy się z bazą przez plik zaincludowany.
W pętli while sprawdzamy czy podany adres email już nie jest wpisany.
Jeśli jest to wyskoczy komunikat jeśli nie to losuje liczbę z przedziały 0-100 i potem dodajemy wiersz do naszej tabelki w sql.
I to na tyle samego zapisywania adresów.
Teraz jeszcze trzeba miec możliwośc wykasowania danego adresu.
Kod
<?php
$email = $_GET['mail'];
$number = $_GET['number'];
include('lacz.php');
$wynik = mysql_query("SELECT * FROM subskrypcja") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
while($t = mysql_fetch_assoc($wynik))
{
$mail = $t['mail'];
$random = $t['random'];
if($email == $mail AND $number == $random)
{
$mozna=1;
}
}
}
if($mozna == 1)
{
$kasowanie = mysql_query("DELETE FROM subskrypcja WHERE random = '$number' ") or die(mysql_error());
echo '<p>Adres Email został wykasowany.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
else
{
echo '<p>Błędne dane.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
?>
$email = $_GET['mail'];
$number = $_GET['number'];
include('lacz.php');
$wynik = mysql_query("SELECT * FROM subskrypcja") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
while($t = mysql_fetch_assoc($wynik))
{
$mail = $t['mail'];
$random = $t['random'];
if($email == $mail AND $number == $random)
{
$mozna=1;
}
}
}
if($mozna == 1)
{
$kasowanie = mysql_query("DELETE FROM subskrypcja WHERE random = '$number' ") or die(mysql_error());
echo '<p>Adres Email został wykasowany.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
else
{
echo '<p>Błędne dane.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
?>
Na tą stronę wchodzimy
nazwastrony.php?mail=[*ADRES EMAIL]&number=[**LICZBA WYLOSOWANA 0-100]
Oczywiście ten link będzie się automatycznie generował
Pobieramy dwie wartości adres i liczbe. I ponownie łączymy się z sql, w pętli while jest warunek if sprawdzamy czy jest taki wiersz gdzie w kolumnie mail jest taki adres mejla(patrz *) i kolumnie random (patrz **) Jeśli tak to kasuje cały wiersz jeśli to wyjdzie komuniakt.
Teraz pliczek wysyłający spam, send.php
Kod
<?php
include('lacz.php');
$temat = "Temat wiadomosc";
$tresc = 'tresc wiadomosc';
$wynik = mysql_query("SELECT * FROM subskrypcja") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
while($t = mysql_fetch_assoc($wynik))
{
$liczba = $t['random'];
$mail = $t['mail'];
$out ='\n\nAby wyłączyc subskrypcji klijnij w poniższy link\nhttp://outsub.php?mail='.$mail.'&number='.$liczba';
$wiadomosc = $tresc.$out;
mail ($mail, $temat, $wiadomosc );
}
echo '<p>Poszło.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
?>
include('lacz.php');
$temat = "Temat wiadomosc";
$tresc = 'tresc wiadomosc';
$wynik = mysql_query("SELECT * FROM subskrypcja") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0)
{
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
while($t = mysql_fetch_assoc($wynik))
{
$liczba = $t['random'];
$mail = $t['mail'];
$out ='\n\nAby wyłączyc subskrypcji klijnij w poniższy link\nhttp://outsub.php?mail='.$mail.'&number='.$liczba';
$wiadomosc = $tresc.$out;
mail ($mail, $temat, $wiadomosc );
}
echo '<p>Poszło.</p>';
echo '<a href="http:/index.php">Powrót do strony głównej.</a>';
}
?>
Edytujemy 3 i 4 linijeczke.
W tym miejscu mam sporo problemów z utworzeniem bazy danych, według tego tutoriala tworzyłem ją w phpmyadmin

czy dobrze te pola wypełniłem?

kolejnym problemem z jakim się borykam jest 4 kod, kwestia gdzie ten kod mam umieścić, dodać go do któregoś z tych plików czy też stworzyć oddzielny plik.
ostatnia opcja to wysyłanie newslettera. Ostatni kod to plik send.php ... niestety dostaje w nim komunikat
Kod
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/public_html/newsletter/send.php on line 18
Czy ktoś życzliwy nie zje mnie za tak rozwiązły post i pomoże mi ogarnąć to? :/ Moja zieleń w tym temacie jest permanentna, a odgórnie nie zważając na moje braki zlecili mi zadanie.
Pozdrawiam i przepraszam za ewentualny śmietnik.