Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Newsletter, Jak przerobić wkrypt, aby zapisał w pliku *.txt a nie w bazie danych.
psych0
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.12.2008

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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();
?>
Go to the top of the page
+Quote Post
tomsi
post
Post #2





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Ż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

Ten post edytował tomsi 14.04.2009, 16:29:13
Go to the top of the page
+Quote Post
psych0
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.12.2008

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


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).
Go to the top of the page
+Quote Post
PawelC
post
Post #4





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


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.

Ten post edytował ExPlOiT 14.04.2009, 21:08:31
Go to the top of the page
+Quote Post
lnn
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


kolego psych0 ja szukalem wlasnie jakiegos tutoriala jak zrobic to na odwrot (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) musze przesledzic zatem kod ktory wkleiles, byc moze nieswiadomie swoja niewiedza komus pomogles (czytaj. mi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )
Go to the top of the page
+Quote Post
psych0
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.12.2008

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


ExPlOiT usunąłem te <?php i ?> (przeniosłem do phpmyadmina tą komende) i wszystko działa thx.

Ten post edytował psych0 14.04.2009, 21:29:44
Go to the top of the page
+Quote Post
tomsi
post
Post #7





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


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`))


Ten post edytował tomsi 14.04.2009, 21:34:05
Go to the top of the page
+Quote Post
PawelC
post
Post #8





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


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()

Ten post edytował ExPlOiT 14.04.2009, 21:35:41
Go to the top of the page
+Quote Post
psych0
post
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.12.2008

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


Dobrze wiedzieć na przyszłość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 24.08.2025 - 13:43