Skocz do zawartości


Zdjęcie

Newsletter


  • Zaloguj się, aby dodać odpowiedź
15 odpowiedzi w tym temacie

#1 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 14 czerwiec 2011 - 03:56

Witam,
chciał bym zrobić stronę gdzie ludzie podawali by swoje Imię i adres email a to wszystko zapisywało by się w pliku na serwerze lub jakoś inaczej i później żebym nie miał problemu z wysłaniem oferty do tych osób..

Ma ktoś pomysł jak to rozwiązać?

PS.
Mam kod który wysyła to na emaila ale wolę jakoś inaczej ;]

Z góry THX
  • 0


#2 magik092

magik092
  • Użytkownicy
  • 1555 postów

Napisano 14 czerwiec 2011 - 12:33

Dane do bazy danych i raz dziennie (czy tam co jakiś okres czasowy) CRON rozsyła emaile z bazy.
Chyba, że chcesz listy pocztą polską rozsyłać ^^
  • 0

Dołączona grafika


#3 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 14 czerwiec 2011 - 12:48

Ale jak to zrobić żeby ktoś się zapisywał do bazy danych?
  • 0

#4 magik092

magik092
  • Użytkownicy
  • 1555 postów

Napisano 14 czerwiec 2011 - 23:49

Osadzasz formularz na stronce, potem dane zapisujesz w bazie, tyle fizjologii :P
  • 0

Dołączona grafika


#5 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 15 czerwiec 2011 - 10:00

Formularz wiem jak zrobić, lecz nie wiem jak zrobić resztę.
Jak bym wiedział to bym tu nie pisał...
  • 0

#6 magik092

magik092
  • Użytkownicy
  • 1555 postów

Napisano 15 czerwiec 2011 - 16:24

Odwiedź ten link oraz ten link.
  • 0

Dołączona grafika


#7 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 15 czerwiec 2011 - 20:16

Niestety mam problem:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'smilesys'@'localhost' (using password: NO) in /home/smilesys/domains/halffree.pl/public_html/test/newsletter/newsletter.php on line 6

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/smilesys/domains/halffree.pl/public_html/test/newsletter/newsletter.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at /home/smilesys/domains/halffree.pl/public_html/test/newsletter/newsletter.php:6) in /home/smilesys/domains/halffree.pl/public_html/test/newsletter/newsletter.php on line 13

Szukałem miejsca gdzie można wpisać adres do mysql ale takiego nie znalazłem...

Tak samo nie wiem gdzie mam wpisać to:
tabela newsletter
----
id int(11) primary_key, auto_increment
nick varchar(100)
mail varchar(130)
checksum varchar(55)
status int(1)
  • 0

#8 magik092

magik092
  • Użytkownicy
  • 1555 postów

Napisano 16 czerwiec 2011 - 09:45

Łączysz się z bazą następująco
otwarcie połączenia z bazą:
if(!mysql_connect('adres_hosta', 'użytkownik_bazy', 'hasło_bazy'))
	die("Nie można połączyć z bazą danych!")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
if(!mysql_select_db('nazwa_bazy_danych'))
	die("Nie można wybrać bazy danych!")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
To wrzuć na początku pliku, a na koniec wrzuć
zamknięcie połączenia z bazą:
mysql_close()<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
uwaga, nie zapomnij zamknąć bazy danych (to co wrzucasz na koniec)!

Tę tabelę w artykule tworzyli akurat bezpośrednio w MySQL (np. phpmyadmin), proponuję osadzić to w:
mysql_query("CREATE TABLE newsletter (id int(6) NOT NULL auto_increment, nick varchar(100), mail varchar(130), checksum varchar(55), status int(1) , UNIQUE id (id), KEY id_2 (id))")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
wrzucasz to gdzieś pomiędzy sekcję otwarcia bazy danych, a zamknięcia bazy danych.
  • 0

Dołączona grafika


#9 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 18 czerwiec 2011 - 01:00

Ciężko jest mi to poustawiać to powiem tak:
Czy da się napisać jakiś skrypt który miał by pole i w nim ktoś wpisywał by emaila, pole było by sprawdzane czy jest to email i wysyłane do bazy danych?
  • 0

#10 magik092

magik092
  • Użytkownicy
  • 1555 postów

Napisano 18 czerwiec 2011 - 08:43

Coś nabazgrałem (nie sprawdzane na localhoście, jakby wywalało błąd - pisz):
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['email']))
{
  if (!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)) {
        echo 'Podano nieprawidłowy adres email.<br />'<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
        echo '<form action="'.$url.'login.php?login=true" id="loginbox" method="POST">Email: <input type="text" name="email" /><br />Nick: <input type="text" name="nick" /><br />Status: <input type="text" name="status" /><br /><input type="hidden" name="checksum" /><br /><type="submit" value="wyślij" /></form>'<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
  }
  else
  {
    if(!mysql_connect('adres_hosta', 'użytkownik_bazy', 'hasło_bazy'))
        die("Nie można połączyć z bazą danych!")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    if(!mysql_select_db('nazwa_bazy_danych'))
        die("Nie można wybrać bazy danych!")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    mysql_query("INSERT INTO newsletter VALUES ('', ".$_POST['nick'].", ".$_POST['email'].", ".$_POST['checksum'].", ".$_POST['status'].")")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    mysql_close()<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
  }
}
else
{
   echo '<form action="news.php" method="POST">Email: <input type="text" name="email" /><br />Nick: <input type="text" name="nick" /><br />Status: <input type="text" name="status" /><br /><input type="hidden" name="checksum" /><br /><type="submit" value="wyślij" /></form>'<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
}
?>

  • 0

Dołączona grafika


#11 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 18 czerwiec 2011 - 09:08

Działa :mrhappy:

Jeszcze 1 rzec.
Czy jest możliwość napisania skryptu który jak uruchomię to tworzy plik, obojętnie jaki ale tylko i wyłącznie z emailami (1 po drugim dzielące się przecinkami)?
  • 0

#12 Dingo

Dingo
  • Użytkownicy
  • 102 postów

Napisano 18 czerwiec 2011 - 09:42

fopen() a potem np. fwrite()
  • 0

#13 magik092

magik092
  • Użytkownicy
  • 1555 postów

Napisano 18 czerwiec 2011 - 10:11

Osobiście bardziej polecam bazę danych.
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['email']))
{
  if (!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)) {
        echo 'Podano nieprawidłowy adres email.<br />'<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
        echo '<form action="'.$url.'login.php?login=true" id="loginbox" method="POST">Email: <input type="text" name="email" /><br />Nick: <input type="text" name="nick" /><br />Status: <input type="text" name="status" /><br /><input type="hidden" name="checksum" /><br /><type="submit" value="wyślij" /></form>'<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
  }
  else
  {
    $fp = fopen('emaile.txt', 'r')<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    $emaile = fread($fp, filesize('emaile.txt'))<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    fclose($fp)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    $fp = fopen('emaile.txt', 'w')<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    fwrite($fp, $emaile.','.$_POST['email'])<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
    fclose($fp)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
  }
}
else
{
   echo '<form action="news.php" method="POST">Email: <input type="text" name="email" /><br />Nick: <input type="text" name="nick" /><br />Status: <input type="text" name="status" /><br /><input type="hidden" name="checksum" /><br /><type="submit" value="wyślij" /></form>'<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
}
?>
(Nie sprawdzane)
  • 0

Dołączona grafika


#14 Dingo

Dingo
  • Użytkownicy
  • 102 postów

Napisano 18 czerwiec 2011 - 10:15

fopen('emaile.txt', 'a') dopisuje więc, nie trzeba czytać do zmiennej, tylko od razu można dopisywać coś :-)
  • 0

#15 szczurzecie

szczurzecie
  • Użytkownicy
  • 72 postów

Napisano 18 czerwiec 2011 - 13:12

Za bardzo tego skryptu nie rozumiem.
Mam plik index.html i news.php i gdzie dać ten kod do zapisywania?

index.html
news.php
  • 0

#16 Dingo

Dingo
  • Użytkownicy
  • 102 postów

Napisano 18 czerwiec 2011 - 13:29

Musisz najpierw nauczyć się programować w PHP. Nie można skoczyć na głębokie wody, kopiując i wklejając to, co ktoś napisze (można, ale na dłuższą metę to rozwiązanie nie jest dobre).
Polecam zająć się PHP od zera z jakimś samouczkiem.
A odpowiedź na pytanie. => news.php

@Edit
Aaa i polecam na localhoscie zainstalować sobie interpreter PHP lub pisać w jakimś programie obsługującym edycje przez ftp.
  • 0


Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych