Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Gotowe rozwiązania _ SUBSKRYBCJA

Napisany przez: #camel 25.11.2003, 20:57:09

Witam.
Tworzę stronkę www. Potrzebuję w chwili obecnej jakiegoś skryptu <?> który
ułatwiłby mi pracę z "Klientami". Umieszczam na stronie pole SUBSKRYBCJA, a
skrypt taką osobę <miło by było, gdyby sprawdzała IP użytkownika i w
przypadku powtórzonego IP, zapisanego wcześniej w bazie, nie zezwalała na
subskrybcję> zapisuje w bazie. Czy ma ktoś cosik gotowego? Rozumiem, że potrzebna bedzie do
tego baza MySQL? <mam możliwość założenia bazy na serwerze>.
Taka baza ułatwiłaby mi wysyłanie "nowości" do użytkowników, którzy zapisali
się do bazy. Napiszę jedną wiadomość, a ta, automatycznie zostanie rozesłana
do zasubskrybowanych klientów na mojej stronie :] I jeszcze jedno - w sumie NAJWAŻNIEJSZA rzecz. Jak generować "linka", który wysłany zostanie do Klienta. Dopiero PO kliknięciu przez Klienta w wygenerowany link, e-mail Klienta zostanie dopisany do bazy...

Z góry
serdecznie dziękuję za wszelką pomoc.

camel.

Napisany przez: kicaj 26.11.2003, 02:59:42

Cytat
...a skrypt taką osobę <miło by było, gdyby sprawdzała IP użytkownika i w przypadku powtórzonego IP, zapisanego wcześniej w bazie, nie zezwalała na subskrybcję> zapisuje w bazie.


Prosty kod:

[php:1:032b8eaada]<?php

$sql = mysql("SELECT * FROM adresy_ip WHERE ip='$_SERVER[REMOTE_ADDR]'");
$sprawdz = mysql_num_rows($sql);

if($sprawdz == 1) {
//jest juz w bazie taki IP!
} else {
//zapisz ten IP do bazy
}

?>[/php:1:032b8eaada]

Cytat
Rozumiem, że potrzebna bedzie do tego baza MySQL? <mam możliwość założenia bazy na serwerze>.


Nie, moze tez byc na plaskiej bazie, ale podalem przyklad na MySQL'u

Cytat
Taka baza ułatwiłaby mi wysyłanie "nowości" do użytkowników, którzy zapisali
się do bazy. Napiszę jedną wiadomość, a ta, automatycznie zostanie rozesłana
do zasubskrybowanych klientów na mojej stronie :]


[php:1:032b8eaada]<?php

$sql = mysql("SELECT * FROM klienci");
$sprawdz = mysql_num_rows($sql);

while($klient = mysql_fetch_array($sql)) {
//wysylasz maila do wszystkich
mail();
}

?>[/php:1:032b8eaada]

Cytat
I jeszcze jedno - w sumie NAJWAŻNIEJSZA rzecz. Jak generować "linka", który wysłany zostanie do Klienta. Dopiero PO kliknięciu przez Klienta w wygenerowany link, e-mail Klienta zostanie dopisany do bazy...


Przy zapisie na liste, wysylasz maila, z wygenerowanym dowolnym kodem, ktory takze zapisujesz w bazie! Uzytkownik dostaje maila z klinkiem/kodem ktory bedzie aktywowal konto jesli podane kody beda sie zgadzaly z kodami w bazie

Napisany przez: #camel 26.11.2003, 09:34:10

Cytat
Przy zapisie na liste, wysylasz maila, z wygenerowanym dowolnym kodem, ktory takze zapisujesz w bazie! Uzytkownik dostaje maila z klinkiem/kodem ktory bedzie aktywowal konto jesli podane kody beda sie zgadzaly z kodami w bazie


jup. I tu jest zagwostka. Czy generujemy kody zawsze o tej samej długości? Jak wyglada cała ta procedura? Rozumiem, że kod ma zostać zapisany, by już nigdy więcej się nie powtórzył? Jakiś pomysł na wygenerowanie tegoż kodu? rolleyes.gif

Napisany przez: kicaj 26.11.2003, 14:28:56

Gdy user zapisze sie do listy, to jego wartosc w kolumnie 'aktywacja' wynosi 0, a w kolumnie 'kod' jest kod wygenerowany (milony sposobow)! Teraz do usera wysyla sie mail w postaci http://serwer/aktywacja.php?kod=564235341 - user klika i jesli kod zgadza sie z kodem w bazie to 'aktywacja' przyjmuje wartosc 1

Napisany przez: smaku 26.11.2003, 15:00:03

Cytat
Jakiś pomysł na wygenerowanie tegoż kodu?


[php:1:aa0d7a39f2]<?php
$unique = uniqid(1234567890);
$id = substr("$unique", 14);
print $id;
?>[/php:1:aa0d7a39f2]

kod zwraca np taki kod: b0e6ae299

manipulowanie cyfra "14" (zwiekszanie bądź zmniejszanie) pozwoli uzyskać różną długość unikalnego kodu

:}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)