2016-08-28 4 views
5

मुझे पता है कि यह प्रश्न आपके दोस्तों के लिए वास्तव में सरल दिखता है लेकिन मुझे इसके बारे में एक ट्यूटोरियल या विषय नहीं मिल रहा है। मैं कोशिश कर रहा था और दिनों के लिए खोज रहा था लेकिन कोई भाग्य नहीं। मैं क्या करना चाहता हूं जब उपयोगकर्ता लॉगिन करता है, तो उनका नाम प्रत्येक पृष्ठ में मेनू बार में शीर्ष पर प्रदर्शित होगा। कृपया, कृपया, कृपया कोई मदद या सुझाव की सराहना की जाएगी।उपयोगकर्ता लॉगिन करते समय शीर्ष पर उपयोगकर्ता नाम दिखाएं

This is the image when there is no login user

And this when a user is login. the login/register button should be hide then display the email and logout button

यहाँ कोड मैंने बनाया है। मैं जावास्क्रिप्ट और सत्र का प्रयास करता हूं लेकिन मैं इसे ठीक से नहीं कर सकता।

<?php 
 

 
error_reporting(E_ALL & ~E_NOTICE); 
 
session_start(); 
 

 
if($_POST['LogIn']) 
 
{ 
 
\t $servername = "localhost"; 
 
\t $username = "root"; 
 
\t $password = ""; 
 
\t $dbname = "dbuseraccounts"; 
 

 
\t // Create connection 
 
\t $conn = new mysqli($servername, $username, $password, $dbname); 
 
\t 
 
\t $email = strip_tags($_POST['Email']); 
 
\t $password = strip_tags($_POST['Password']); 
 
\t 
 
\t $sql = "SELECT UserID, Email, Password FROM users WHERE Email = '$email'"; 
 
\t 
 
\t $query = mysqli_query($conn, $sql); \t 
 
\t 
 
\t if($query) 
 
\t { 
 
\t \t $row = mysqli_fetch_row($query); 
 
\t \t $userid = $row[0]; 
 
\t \t $dbEmail = $row[1]; 
 
\t \t $dbPassword = $row[2]; 
 
\t } 
 
\t 
 
\t if($email == $dbEmail && $password == $dbPassword) 
 
\t { 
 
\t \t 
 
\t \t $_SESSION['Email'] = $email; 
 
\t \t $_SESSION['id'] = $userid; 
 
\t \t 
 
\t } 
 
\t else 
 
\t { 
 
\t \t 
 
\t \t $message = "Incorect username or password"; 
 
\t \t echo "<script type='text/javascript'>alert('$message');</script>"; 
 
\t } 
 
} 
 
?> 
 

 
<!doctype html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
<title>Login</title> 
 
<link href="css/bootstrap.css" rel="stylesheet" type="text/css"> 
 
<link href="css/stylesheet.css" rel="stylesheet" type="text/css"> 
 
<style type="text/css"> 
 
body { 
 
\t margin-left: 0px; 
 
\t margin-right: 0px; 
 
} 
 
</style> 
 
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 
 
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
 
<!--[if lt IE 9]> 
 
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> 
 
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> 
 
<![endif]--> 
 
</head> 
 
<body> 
 
<div class="wrapper"> 
 
\t <div class="container-fluid"> 
 
\t <div class="header"> 
 
\t <nav class="navbar navbar-default navbar-fixed-top"> 
 
    <!-- Brand and toggle get grouped for better mobile display --> 
 
    <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle collapsed" id="Register" aria-expanded="false" data-toggle="collapse" data-target="#topFixedNavbar1"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button> 
 
    <a class="navbar-brand" href="index.html">Neo</a></div> 
 
    <!-- Collect the nav links, forms, and other content for toggling --> 
 
    <div class="collapse navbar-collapse" id="topFixedNavbar1"> 
 
     <ul class="nav navbar-nav"> 
 
     <li class="active"></li> 
 
     <li></li> 
 
     </ul> 
 
     <form class="navbar-form navbar-left" role="search"> 
 
     <div class="form-group"> </div> 
 
</form> 
 
     <ul class="nav navbar-nav navbar-right"> 
 
     <li><a href="Home.php">Home</a></li> 
 
     <li><a href="Services.html">Services</a></li> 
 
     <li><a href="Promo.html">Promo</a></li> 
 
     <li><a href="Promo.html">About Us</a></li> 
 
     <li><a href="ContactUs.html">Contact Us</a></li> 
 
     <li><a href="login.php"><?php echo $_SESSION["Email"]?></a></li> 
 
     <li><a id="logout">Logout</li> 
 
     <li class="dropdown"> 
 
<ul class="dropdown-menu"> 
 
      <li><a href="#">Action</a></li> 
 
      <li><a href="#">Another action</a></li> 
 
      <li><a href="#">Something else here</a></li> 
 
      <li role="separator" class="divider"></li> 
 
      <li><a href="#">Separated link</a></li> 
 
      </ul> 
 
     </li> 
 
     </ul> 
 
    </div> 
 
    <!-- /.navbar-collapse --> 
 
    </div> 
 
    <!-- /.container-fluid --> 
 
</nav> 
 
</div> 
 
<div class="content"> 
 
<h1 id="h1Contactus">Login</h1> 
 
<form id="RegisterForm" name="RegisterForm" method="post"> 
 
    <div class="FormElement"><input name="Email" type="email" autofocus required="required" class="TField" id="Email" placeholder="Email Address"></div> 
 
    <div class="FormElement"><input name="Password" type="password" required="required" class="TField" id="Password" placeholder="Password"></div> 
 
    <div class="FormElement"> 
 
    <input name="LogIn" type="submit" class="button" id="LogIn" value="Log In"> 
 
    </div> 
 
</form> 
 
</div> 
 
<div class="footerStick"> 
 
    <footer>© 2015 Neo</footer> 
 
</div> 
 
</div> 
 
</div> 
 
<script src="js/jquery-1.11.3.min.js"></script> 
 
<script src="js/bootstrap.js"></script> 
 
</body> 
 
</html>

उत्तर

1

यह सुरक्षित नहीं है, यह सिर्फ एक ट्यूटोरियल है।

यदि आपको सही विचार मिलता है तो अनिवार्य रूप से यह काफी आसान है!

कैसे प्राप्त करने के लिए ...

  • पहले उपयोगकर्ता को सफलतापूर्वक में एक $ _SESSION [] वर बनाने लॉग जब। PHP पर चलने वाली लगभग हर वेबसाइट पर $ _SESSION [] वर्रों का उपयोग किया जाता है, आप नीचे दिए गए कोड को अपने पृष्ठ के शीर्ष पर जोड़कर एक सादा सत्र शुरू कर सकते हैं।

    session_start(); 
    
  • दूसरा जब अपने कोड का कहना है उपयोगकर्ता लॉगिन सफल हुआ के रूप में कोड नीचे दिखाया गया है एक सत्र वर पैदा करते हैं।

    $_SESSION['loggedIn'] = true; 
    
  • तीसरा आप को देखने के लिए जाँच करता है कि यदि उपयोगकर्ता के प्रवेश, एक उदाहरण कोड नीचे दिखाया गया है कोड के कुछ प्रकार बनाने के लिए की जरूरत है।

    if (isset($_SESSION['loggedIn'])) { 
        // code to execute if the user is logged in 
    } else { 
        // code to execute if the user is not logged in 
    } 
    
  • और सभी के पिछले जब आप प्रस्थान करें आप सत्र को नष्ट करने और नीचे दिए गए कोड का उपयोग करके सभी $ _SESSION [] वार्स हटाने की आवश्यकता।

    <?php 
    if (isset($_SESSION['loggedIn'])) { 
    ?> 
    <p>Logged In!</p> 
    <?php 
    } else { 
    ?> 
    <p>Logged Out!</p> 
    <?php 
    } 
    ?> 
    

    आप उपयोगकर्ता नाम प्रदर्शित करना चाहते हैं, तो आप और एक $ _SESSION [] वर कहा जाता प्रयोक्ता नाम बनाना होगा:

    $_SESSION = array(); 
    session_destroy(); 
    

अगर बयान के आधार पर एचटीएमएल कोड निष्पादित $ _SESSION [] var गूंज का उपयोग करें।

// To Echo 
<?= $_SESSION['username']; ?> 

// To Create 
<?php $_SESSION['username'] = 'someusername'; ?> 

यहां पर कुछ संसाधनों है कि आप सुरक्षा बुद्धिमान सहायक हो सकते हैं, मैं सिर्फ अपने कोड को देखा और यह आसान नहीं है लेकिन वास्तव में सुरक्षित है।

http://php.net/manual/en/session.security.php

http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

+0

विस्तृत अनुदेश साहब के लिए धन्यवाद !!! मैंने इसे आपके निर्देश का उपयोग करके किया है और रजिस्टर को छिपाने के लिए कुछ जावास्क्रिप्ट कोड जोड़ते हैं और उपयोगकर्ता लॉग इन होने पर हाइपरलिंक लॉगिन करते हैं। – Red

+0

कोई समस्या नहीं है, अगर आपको और मदद की ज़रूरत है तो बस पूछें। –

1

आप सही रास्ते पर हैं। अनिवार्य रूप से यह कैसे काम करता है यह है:

आपके पास एक HTML फॉर्म है। एचटीएमएल फॉर्म में लॉगिन करने के लिए उपयोगकर्ता नाम/ईमेल और पासवर्ड शामिल है। एचटीएमएल फॉर्म php लॉगिन स्क्रिप्ट में (POST) सबमिट करता है। PHP लॉगिन स्क्रिप्ट में आप सफल लॉगिन पर एक सत्र बनाते हैं। सत्र में आप उपयोगकर्ता नाम को PHP में संग्रहीत करते हैं, फिर आप उपयोगकर्ता नाम प्रदर्शित करने के लिए सत्र से डेटा को प्रतिबिंबित कर सकते हैं।

तो एक ट्यूटोरियल की प्रतिलिपि न लें, PHP सत्रों के बारे में असली!

http://www.w3schools.com/php/php_sessions.asp

http://php.net/manual/en/book.session.php

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