Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Newsletter
Forum PHP.pl > Forum > Przedszkole
psych0
Witam, znalazłem w sieci skrypt, który pozwala na dodanie maila do subskrypcji, jednak zapisuje on dodane maile do bazy danych. Czy jest możliwość przerobienia go, aby dodawał te maile do pliku *.txt ?

Kod do index.php
Kod
<?
if ($_SESSION['sub']=='tak') {
echo $_SESSION['sub_dodany'];
session_unregister(sub);
}
else {
echo '
W ponizsze pole wpisz swój adres email:
<form action="sub.php" method="post">
<input name="email" /><br/><br/>
<input type="submit" value="Zapisz mnie"/>
</form>';
}
?>


oraz kod do sub.php :

Kod
<?php
session_start();

$_SESSION['sub']='tak';

if (!ereg("^.+@.+\..+$",$_POST['email'])) { // sprawdza poprawność emaila
$_SESSION['sub_dodany']='Niepoprawny adres email.';
$_SESSION['sub_email']='';
} else {
// email jest poprawnie zapisany
// sprawdzenie czy jest juz w bazie danych

$link=@mysql_connect("localhost","root","") or die ("Nie udalo sie nawiązac polączenia z bazą danych exclamation.gif!");
mysql_query('SET NAMES latin2');
mysql_select_db("moja_baza_danych");  

$link=mysql_query("SELECT * FROM subskrypcje WHERE email='$_POST[email]' ");
$jest = mysql_fetch_row($link);

if (!($jest > 0)) {
// zapisujemy do bazy

$link=mysql_query("insert into subskrypcje values (null,'$_POST[email]')");

$_SESSION['sub_dodany']='Email został dodany do subskrypcji';
$_SESSION['sub_email']=$_POST['email'];

} else {
// nie zapisujemy do bazy bo juz istnieje
$_SESSION['sub_dodany']='Podany email jest już dodany.';
$_SESSION['sub_email']=$_POST['email'];
}

}
header("location: index.php");
exit();
?>
tomsi
Żeby było łatwiej zrób sobie zmienną:
  1. <?php
  2. $email=$_POST[email];
  3. ?>

i zapisz do pliku zastępując zapisanie do bazy
  1. <?php
  2. $link=mysql_query("insert into subskrypcje values (null,'$_POST[email]')");
  3. ?>


tutaj masz kilka przydatnych linków:

http://www.kess.snug.pl/index.php?sid=10&pid=19
http://webmade.org/porady/zapis-pliku-odcz...plikach-php.php
http://forum.php.pl/index.php?showtopic=52795
http://www.egrafik.pl/kurs-php/files.writing.php
psych0
Dzięki

Po dłuższym namyśle zrobię jednak w bazie danych (dla bezpieczeństwa danych), ale nie wiem jakie wysłać zapytanie do SQL, aby stworzyć taką tabelę (baza danych MySQL).
PawelC
użyj do tego create table:
http://webmade.org/kursy-online/tworzenie-...-kurs-mysql.php
Naprościej:
  1. <?php
  2. CREATE TABLE `subskrypcje` (
  3. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  4. `email` TEXT NOT NULL
  5. ) ENGINE = MYISAM ;
  6. ?>

Ale napisz sobie to od zera przynajmniej się czegoś na przyszłość nauczysz.
lnn
kolego psych0 ja szukalem wlasnie jakiegos tutoriala jak zrobic to na odwrot winksmiley.jpg musze przesledzic zatem kod ktory wkleiles, byc moze nieswiadomie swoja niewiedza komus pomogles (czytaj. mi biggrin.gif)
psych0
ExPlOiT usunąłem te <?php i ?> (przeniosłem do phpmyadmina tą komende) i wszystko działa thx.
tomsi
To jest źle:
Kod
CREATE TABLE subskypcje (id int NOT NULL AUTO_INCREMENT, email char(30), PRIMARY KEY(id))


Musi być tak:
Kod
CREATE TABLE `subskypcje` (`id` int NOT NULL AUTO_INCREMENT, `email` char(30), PRIMARY KEY(`id`))
PawelC
Cytat(psych0 @ 14.04.2009, 22:22:37 ) *
ExPlOiT usunąłem te <?php i ?> (przeniosłem do phpmyadmina tą komende) i wszystko działa thx.

bo to <?php ?> dodaje się automatycznie na forum, a kod który Ci podałem był właśnie do użycia w phpMyAdmin. A gdybyś chciał utworzyć tabele subskrypcje z poziomu skryptu php, to polecenie create musiałbyś przypisać do jakiejkolwiek zmiennej i użyć mysql_query()
psych0
Dobrze wiedzieć na przyszłość smile.gif
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.