Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql]? chcialby zrobic link do wiad. @ dzialajacy jak ankieta
Forum PHP.pl > Forum > Przedszkole
gariz
chcialbym miec w bazie sql adresy @ osob ktore kliknely na buttona z linka z wiadomosci mailowej odemnie.

ktos dostaje maila - w nim link - uruchamia go - na otwartej stronie pojawi sie pytanie w stylu czy jestes pewien - i jesli przycisnie ze tak to jego adres mailowy (tak mi sie wydaje ze moze to byc czesc linku-tak by ta osoba nei musial sie bawic we wpisywanie go) zostanie dopisany do bazy sql

potrzebuje to do wykluczania osob ktore nei sa chetne do uczestnictwa w zajeciach... jest ich troche ale mniej niz tych co chca wiec tak mi wygodniej

cos mi sie kolacze ze ktoras z komend POST albo GET dawala mozliwosc wlasnie takiego injections ze wpisujac z ? i = mozna bylo znajac NAME albo VALUE opracowac odpowiedni link

wiem ze sporo oczekuje ale moze chociaz jakies wskazowki uda mi sie wydebic party.gif party.gif

thx
sennin
Jeśli chodzi Ci o dopisanie czegoś do url to stosujesz GET i piszesz tak:

http://jakis.adres.com/jakis_plik.php?zmie...ienna3=wartosc3

W php bedziesz mial to w $_GET pod odpowiednimi nazwami zmiennych, np $_GET['zmienna1']
maziak
Hm,
Problem jest o tyle trudny, że nie bardzo jest jak "przekazac" skryptowi z jakiego maila nastapilo klikniecie, bo przeciez linkiem po kliknieciu zajmuje sie juz tylko przegldarka.

Proponuje nastepujaco :

Stworzyc w bazie tabele np. "maile" o takiej strukturze :
id | mail | ciag | potwierdzone

Zrob sobie liste tych maili w bazie czy gdzies tam, ot chodzby wpisuj w formie. Nastepnie wysyłaj do powyższych adresów w pętli miala (mail" title="Zobacz w manualu PHP" target="_manual) z linkiem do skryptu z unikatowym ciagiem znakow przekazywanym w GET, dla kazdego maila innym.

Unikatowy ciag można uzyskac od choxxby tak :
  1. <?php
  2. substr(md5(rand()),0,15);
  3. ?>

To generuje 15 losowych znakow.
Czyli link wygladal by tak :
  1. <?php
  2. $link = 'http://twojserwer.pl/skrypt_pot.php?potwierdz='.substr(md5(rand()),0,15);
  3. ?>



Przy czym ten wlasnie ciag znakow dodawaj sobie do bazy razem z mailem.
aby przykadowy wpis w bazie wygladal tak :
1 | kowalski@wc.pl | 576258b4a6dbcfc | 0


I wtedy gdy ktos kliknie w linka wywola się Twój "skrypt_pot.php", w którym $_GET['potwierdz'] będzie zawieralo jego unikatowy ciag znakow.

W tym skrypcie naturalnie zmieniasz kolumne "potwierdzone" na "1" w miejscu gdzie ciag = $_GET['potwierdz'] smile.gif

Może troszeczke namieszalem, pozno już, ale sadze ze zalozenie jest dobre ;D


Mozna by naturalnie przekazywac zamiast losowych znakow poprostu maila danego delikwenta - ale wtedy złosliwy_uzytkownik nie mial by najmniejszego problemu w czynieniu zlosliwosci gdy znalby poprostu maila innego uzytkownika.



Ewentualnie istnieje jedna na wiele szansa, że wygenerowany ciąg znakow się powtorzy dla dwoch maili. No coz, w totka tez czasem ktos wygra. Możesz jednak się przed tym zabezpieczyc sprawdzajac czy ten ciag znakow wystepuje już w bazie, jak nie to good, a jak wystepuje to kazac skryptowi generowac nowy.
gariz
tylko jest maly problem na ktory lasnie wpadlem.... bo ja wysylam te maile do wszystkich z pola UDW czyli nie widza siebie na wzajem w odbiorcy mimo ze wysylam do kilkudzisieciu osob - jak w takim wypadku dostasowac link?? mozna wpisac jakies polecenie w otlooku zeby sam zmienial link??

hashowanie nie jest konieczne bo linki sa z roznych domen do calkiem roznych ludzi nie znajacych sie nawzajem wiec nie wymysla cudzego maila
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.