2010-01-06 17 views
6

यह जांचने के लिए मैं कैसे करूं कि ईमेल वास्तव में मौजूद है या नहीं? यह समझ सकता है कि उपयोगकर्ता एक अद्वितीय लिंक के साथ मेल भेजने के लिए कैसे करते हैं, जो उपयोगकर्ता सत्यापित करते हैं कि वह ईमेल के मालिक हैं//उपयोगकर्ता को सक्रियण ईमेल भेजें

सक्रियणकी नामक एक 2 नए कॉलम बनाएं और सक्रिय करें और कुछ यादृच्छिक स्ट्रिंग स्टोर करें, एक ईमेल भेजें सक्रियणकी के साथ, और उन सक्रिय उपयोगकर्ताओं को अद्यतन करें जो 1 सक्रियता लिंक

register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15 

कोई बेहतर विचार?

उत्तर

16

मैं आमतौर पर एक लिंक भेजता हूं जिसमें उपयोगकर्ता आईडी और सक्रियण कुंजी होती है। जब वे मेरी सक्रियण स्क्रिप्ट पर जाते हैं, यदि मुझे कोई मिलान मिलता है, तो मैं उन्हें सक्रिय करता हूं।

जब वे पंजीकरण करते हैं, तो मैं ऊपरी/निचले मामले के अल्फान्यूमेरिक वर्णों के 32 वर्ण उत्पन्न कर सकता हूं और इसे सक्रियण कुंजी के रूप में सेट कर दूंगा। इस बिंदु पर, आप 'सक्रिय' नामक फ़ील्ड बना सकते हैं या आप मान सकते हैं कि उपयोगकर्ता सक्रिय नहीं है यदि उपयोगकर्ता सक्रियण कुंजी है।

 
uid |  email  | key 
------------------------------------------------------------ 
001 | [email protected] | e09141f3f5a17fed6222fc0279b9afdf 
------------------------------------------------------------ 
002 | [email protected] | 
------------------------------------------------------------ 

उपयोगकर्ता सक्रियण स्क्रिप्ट तक पहुँचता है जब, बस प्रदान आईडी के साथ प्रदान की कुंजी के लिए जाँच करें और यदि कोई मिलान पाया जाता, फ़ाइल पर उपयोगकर्ता रिकॉर्ड से कुंजी मिटा (या अपने बूलियन 'सक्रिय' को अद्यतन क्षेत्र) और दरवाजे खोलो।

यदि प्रदान किया गया ईमेल पता मौजूद नहीं है, तो कोई हानि नहीं है। निष्क्रियता के एक महीने के बाद आप नियमित रूप से सभी पंक्तियों को कुंजी के साथ हटा सकते हैं।

+0

अच्छा! आपका बहुत बहुत धन्यवाद! एक कुंजी उत्पन्न करने के लिए बीटीडब्ल्यू आपको लगता है कि md5 (uniqid()); ठीक हो जाएगा? एक ही कुंजी वाले 2 उपयोगकर्ता नहीं चाहते हैं: एक ही uniqid के पी – Martin

+1

md5 अभी भी वही होंगे - आप केवल यूनिकिड के लिए उपसर्ग (शायद उनके ईमेल का एमडी 5) का उपयोग कर सकते हैं, या यूनिक आईडी – eCaroth

+2

स्मार्ट के 'अधिक एन्ट्रॉपी' ध्वज का उपयोग कर सकते हैं । मुझे लगता है कि मैं md5 (ईमेल) के साथ जाऊंगा; thx – Martin

0

यह जांचने का कोई आसान तरीका नहीं है कि कोई ईमेल वास्तव में प्रोग्रामिक रूप से मौजूद है या नहीं। कुछ तरीके हैं (मेलसेवर को पिंग करना, आदि) लेकिन कोई भी मेल जो सर्वर के सेटअप के साथ काम करने के लिए साबित नहीं होता है। आपके द्वारा वर्णित लिंक के माध्यम से उपयोगकर्ता को अपने खाते को सक्रिय करने के लिए मजबूर करना इसे करने का सबसे अच्छा तरीका है। साथ ही, आप किसी प्रकार की पुनरावर्ती स्क्रिप्ट की तरह एक क्रॉन-जॉब की तरह चाह सकते हैं जो एक निश्चित अवधि के बाद गैर-सक्रिय सदस्यों को हटा देता है (जिसके लिए आपकी तालिका, टाइमस्टैम्प में एक और कॉलम की आवश्यकता होगी)।

यह उपयोगी है क्योंकि यदि कोई उपयोगकर्ता साइन अप करता है लेकिन कभी भी अपना खाता सक्रिय नहीं करता है और ईमेल हटा देता है, और आप एक आईडी (केवल एक उदाहरण) के रूप में अपना ईमेल उपयोग कर रहे हैं, तो वे सक्रियण को पूरा करने में कभी सक्षम नहीं होंगे। वैकल्पिक रूप से, अगर वे लॉग इन करने का प्रयास करते हैं तो आप फिर से उस पते पर सक्रियण ईमेल पुनः भेज सकते हैं।

बस उस ईमेल में सुनिश्चित करें कि आप सभी शीर्षकों को निर्दिष्ट कर रहे हैं (उत्तर से, आदि, आदि) ताकि आपका ईमेल स्पैम के रूप में फ़्लैग नहीं किया जा सके।

+0

यह जांचने की विधि कि कोई ईमेल मौजूद है, मूर्ख नहीं है। यह सुनिश्चित नहीं करता कि ईमेल उपयोगकर्ता से संबंधित है। डिस्पोजेबल मेल सेवाएं मौजूद हैं, जहां आपको एक अस्थायी ईमेल पता मिलता है। उपयोगकर्ता उन सेवाओं में से एक का उपयोग कर सकता है, अपना खाता सक्रिय कर सकता है, और सिस्टम में लॉगिन कर सकता है।थोड़ी देर बाद, अस्थायी पता अक्षम कर दिया गया है। –

2

सक्रियण कुंजी का एक विकल्प केवल उपयोगकर्ता ईमेल पर जेनरेट किया गया पासवर्ड भेजना है, यदि उपयोगकर्ता लॉग इन करता है तो वह सक्रिय होता है (और निश्चित रूप से, वह जो भी पसंद करता है उसे पासवर्ड बदलने में सक्षम होना चाहिए)।

संबंधित मुद्दे