2012-12-28 14 views
9

मैं एक ही पेज पर रजिस्टर और लॉगिन फॉर्म दोनों रखना चाहता हूं।एक ही पृष्ठ पर दो रूपों को कैसे रखा जाए?

if (!empty($_POST)) ... 

हां, मैं की तरह कुछ की जरूरत है::
वे दोनों साथ शुरू होता है

if (!empty($_POST_01))... // regForm 
    and 
if (!empty($_POST_02))... //loginForm 

इसके अलावा प्रथम रूप को क्रियान्वित करता है, तो दूसरा व्यस्त है को रोकने के लिए कैसे, और इसके विपरीत (दोनों पर उपयोगकर्ता क्लिक करता है)
मेरा विचार उदाहरण $x = 1 के लिए और इस प्रक्रिया $x = 0 के अंत में, शुरू करने की प्रक्रिया पर एक साधारण चर बनाने के लिए है, इसलिए:

if ((!empty($_POST_01)) And $x = 0)... 

शायद, एक बेहतर तरीका है।

+1

तो अपने सवाल यह है कि एक ही पृष्ठ पर दो HTML प्रपत्र तत्व डाल करने के लिए है, लेकिन कार्रवाई करने के लिए कैसे नहीं है एक ही PHP पेज के साथ विभिन्न रूपों को सबमिट करने से उत्पन्न अनुरोध, है ना? – ppeterka

+0

@ppeterka, हाँ, यह है। – Alegro

उत्तर

27

आप 2 विभिन्न कार्यों

<form action="login.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="submit" value="Login"> 
</form> 

<br /> 

<form action="register.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="submit" value="Register"> 
</form> 

साथ दो रूपों बना सकता है या यह

<form action="doStuff.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="hidden" name="action" value="login"> 
    <input type="submit" value="Login"> 
</form> 

<br /> 

<form action="doStuff.php" method="post"> 
    <input type="text" name="user"> 
    <input type="password" name="password"> 
    <input type="hidden" name="action" value="register"> 
    <input type="submit" value="Register"> 
</form> 

तो फिर तुम PHP फ़ाइल एक स्विच ($ _ पोस्ट [ 'कार्रवाई'] के रूप में काम करेगा करना) ... इसके अलावा, वे एक ही समय में दोनों लिंक पर क्लिक नहीं कर सकते हैं या एक साथ अनुरोध कर सकते हैं, प्रत्येक सबमिट एक अलग अनुरोध है।

आपका पीएचपी तो स्विच तर्क के साथ पर जा सकते हैं या अलग php एक पंजीकरण प्रक्रिया

+0

थोड़ा बेहतर विवरण क्यों है कि उसे ऐसा करने की आवश्यकता क्यों होगी, लेकिन अन्यथा +1 – ppeterka

+0

cristi_b +1, मुझे पता है। धन्यवाद। मुझे लगता है - हल हो गया। बीटीडब्ल्यू कारण हैं - लगातार डिजाइन। – Alegro

+0

आप मेरे संस्करण को लागू कर सकते हैं या नील का प्रस्ताव क्या है, 2 सबमिट बटन (रजिस्टर और लॉगिन) के साथ एक फॉर्म –

6

ठीक है आप प्रत्येक फॉर्म विभिन्न पृष्ठ पर जा सकते हैं। (जो बेहतर है)

या उस पर एक निश्चित इनपुट और आधार पदों के लिए का मान अलग है:

switch($_POST['submit']) { 
    case 'login': 
    //... 
    break; 
    case 'register': 
    //... 
    break; 
} 
+0

हाँ, वही पृष्ठ, अलग-अलग मानों के साथ अलग-अलग मानों के साथ अलग-अलग सबमिट बटन ... मेरे समाधान –

+0

से थोड़ा बेहतर मैंने देखा, जब स्क्रीन पर कोई जवाब दिखाई देता है, तो यह पहले से ही '-1' votted !! आता है? – Alegro

1

आशा यह आप में मदद मिलेगी। मान लीजिए कि लॉग इन फॉर्म में है: उपयोगकर्ता नाम और पासवर्ड इनपुट।

if(isset($_POST['username']) && trim($_POST['username']) != "" && isset($_POST['password']) && trim($_POST['password']) != ""){ 
//login 
} else { 
//register 
} 
+0

आप जानते हैं कि जब आप मानते हैं तो क्या होता है, है ना? – Neal

+0

और यदि रजिस्टर फॉर्म में उपयोगकर्ता नाम और पासवर्ड फ़ील्ड भी हैं तो क्या होगा? मुझे लगता है कि पंजीकरण फॉर्म _does_ में आमतौर पर वे हैं ... – ppeterka

+0

@ppeterka, हाँ, दोनों रूपों में उपयोगकर्ता नाम और पास फ़ील्ड हैं – Alegro

3

एक लॉगिन प्रक्रिया कर रही है तो फ़ाइलें दोनों रूपों अलग-अलग नामों के लिए प्रस्तुत बटन दें और PHP का उपयोग जांच करने के लिए कौन सा बटन डेटा सबमिट कर दी हैं ।

फार्म एक बटन - btn1 फार्म दो बटन -btn2

पीएचपी कोड:

if($_POST['btn1']){ 
    //Login 
}elseif($_POST['btn2']){ 
    //Register 
} 
संबंधित मुद्दे