Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Weryfikacja maila z o2


jojo

Rekomendowane odpowiedzi

Czy dało by się tak zrobić żeby osoby które posiadają skrzynki pocztowe na o2 nie mogły zarejestrować kliku kont na tego samego maila, wiem że ipb na to nie pozwala ale o2 daje do jednej skrzynki 3 aliasy [email protected], [email protected] oraz [email protected].

Odnośnik do komentarza
Udostępnij na innych stronach

Nie ma takiej możliwości, ponieważ:

a) To trzy inne aliasy, jeżeli je zablokujesz - nie będzie mógł się nikt zarejestrować kto posiada email na którymś z tych aliasów.

b) Jeżeli ktoś napisze skrypt, do automatycznego blokowania loginu emaila, to problem znajdzie się osobach które mają takie same nicki w innych skrzynkach.

Myślę że jedynym rozwiązaniem było by zablokowanie dwóch domen np: @go2.pl oraz @tlen.pl a przy rejestracji dodać informacje iż te domeny zostały poblokowane.

// KliczeK

In, and Out.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Tak, propozycja Kliczka wydaje się najrozsądniejsza.

Można by się pokusić o dopisanie kodu, ale wtedy trzeba by na sztywno decydować co jest tym samym adresem, a co innym.

Bo pomyślcie, wczujcie się na chwilę w maszynę ( przypominam - działa jak została zaprogramowana, ni mniej ni więcej, nie ma rozumu, wiedzy ) i powiedzcie co zrobicie jak zobaczycie takie maile:

[email protected]
[email protected]
[email protected]

Różne? Owszem, ale równie dobrze mogły by być aliasami.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

To ja może napisze jak bym to widział

Powołam się na przykład który podałem czyli

[email protected]

[email protected]

[email protected]

wyodrębniam sobie pewne dane i zapisuje je w poszczególnych zmiennych w "mail" mam nazwę konta czyli x a w zmiennej "host" mam nazwę domeny o2.pl, go2.pl czy tlen.pl.

oczywiście to jest w pętli która czyta z bazy po kolei każdy rekord zawierający e-mail

wyodrębniam sobie z aktualnie sprawdzanego rekordu tak jak wyżej nazwę konta która zapisuje do zmiennej "maill" oraz nazwe hosta który jest przypisywany zmiennej "hostt"

i teraz jeżeli "mail"="maill" to sprawdzam czy ip("host")=ip("hostt") jeżeli tak to wiem że to co podał to alias i zmieniam flagę i przerywam działanie pętli.

PS.Z tego co się orientuje ip hosta można sprawdzić instrukcją gethostbyname a z wyodrębnieniem danych też nie powinno być problemu

Edytowane przez jojo
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Nakićkałeś trochę. Co w przypadki zmiany IP itd.

Jednym słowem - jak mówię - można by się pokusić o napisanie kodu do tego, ale z wpisanymi ręcznie warunkami i domenami dla o2, onetu i co tam jeszcze.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Nakićkałeś trochę. Co w przypadki zmiany IP itd.

Jednym słowem - jak mówię - można by się pokusić o napisanie kodu do tego, ale z wpisanymi ręcznie warunkami i domenami dla o2, onetu i co tam jeszcze.

No przecież nie przypisujemy ip danemu hostowi na stałe tylko jest ono pobierane dopiero gdy warunek "mail"="maill" jest prawdziwy więc w czym problem ?

PS.Wyodrębnienie nazwy konta i hosta z całego e-maila widzę też nie jest za trudne:

list($mail, $host) = explode('@', '[email protected]');

Edytowane przez jojo
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Oczywiście, nie pisałeś, że posiadasz wiedzę w zakresie programowania w .php. Zatem ... w czym problem? Śmiało pisz :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Oczywiście, nie pisałeś, że posiadasz wiedzę w zakresie programowania w .php. Zatem ... w czym problem? Śmiało pisz :)

DawPi jakbym posiadał to bym tu nie dyskutował tylko dawno to zrobił, nie znam się na tym przedstawiłem tylko własną koncepcje a te kilka funkcji to na szybko znalazłem, poza tym też trzeba znać strukturę forum i wiedzieć co w jakich plikach się znajduje.

Jeżeli wskażesz mi plik oraz miejsce w którym zaczyna się ta pętla sprawdzająca adres to może coś wykombinuje :(

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Plik: sources/action_public/register.php

Miejsce: myślę, że tu: ( ~ 1807 linia )

		//-----------------------------------------
	// More unicode..
	//-----------------------------------------

Wpisany mail w formularzu ( zmienna ):

$this->ipsclass->input['EmailAddress']

:)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

		//-----------------------------------------
	// Is this email addy taken? CONVERGE THIS??
	//-----------------------------------------

	if ( $this->ipsclass->converge->converge_check_for_member_by_email( $in_email ) == TRUE )
	{
		$form_errors['email'][$this->ipsclass->lang['reg_error_email_taken']] = $this->ipsclass->lang['reg_error_email_taken'];
	}

O ile się nie mylę to "converge_check_for_member_by_email( $in_email )" sprawdza czy taki mail jest już w bazie tak ?

Jeśli tak to gdzie znajdę kod tej funkcji ?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Plik: ips_kernel/class_converge.php

Kod: ( ~ 90 linia )

	function converge_check_for_member_by_email( $email )
{
//...
}

Jednak tej funkcji bym nie ruszał, a skupił się na tym, co ona zwraca: wartości logiczne TRUE lub FALSE. Jeśli TRUE to e-mail jest już w bazie, jeśli FALSE jest 'wolny'.

Cały email, a nie xxxx@ :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Ogólnie:

$this->ipsclass->DB->fetch_row()

Do tablic: użyj tych wbudowanych w .php. Dlaczego niby z tego nie skorzystać? :)

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Otwórz ips_kernel/class_converge.php

Znajdź

	/*-------------------------------------------------------------------------*/
// Test for converge row
/*-------------------------------------------------------------------------*/

/**
* Checks for a DB row that matches $email
*
* @param	string Email address
* @return	boolean
*/

function converge_check_for_member_by_email( $email )
{
	$test = $this->converge_db->simple_exec_query( array( 'select' => 'converge_id', 'from' => 'members_converge', 'where' => "converge_email='$email'" ) );

	if ( $test['converge_id'] )
	{
		return TRUE;
	}
	else
	{
		return FALSE;
	}
}

Zamień na

	/*-------------------------------------------------------------------------*/
// Test for converge row
/*-------------------------------------------------------------------------*/

/**
* Checks for a DB row that matches $email
*
* @param	string Email address
* @return	boolean
*/

function converge_check_for_member_by_email( $email )
{
	$this->converge_db->simple_exec_query( array( 'select' => 'converge_email', 'from' => 'members_converge') );

	list($nazwaform, $hostform) = explode('@', $email);
	while ($mail = $this->converge_db->fetch_row())
	{
		list($nazwabaza, $hostbaza) = explode('@',$mail['converge_email']);


		if($nazwabaza == $nazwaform && gethostbyname($hostbaza) == gethostbyname($hostform) )
		{
			$test2 = 1;
		}
	}

	$test = $this->converge_db->simple_exec_query( array( 'select' => 'converge_id', 'from' => 'members_converge', 'where' => "converge_email='$email'" ) );

	if ( $test['converge_id'] || $test2 )
	{
		return TRUE;
	}
	else
	{
		return FALSE;
	}
}

Sprawdzałem na mailu z o2 i działało, niemniej jednak proszę o testy.

Edytowane przez jojo
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Witaj,

tak, jak już wczoraj pisałem - kod jest OK i można go z powodzeniem stosować :)

Jednak muszę go dopracować, bo w obecnej formie pobiera wszystkie maile z bazy, a chciałbym to zmienić by pobierało tylko te 'znaczące'.

Nie mniej gratuluję wykonanej pracy. Można? Można :(

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.