Intereting Posts
Почему я получаю эту ошибку сегментации в этом скрипте командной строки PHP? Узнайте, где замедляется ваш PHP-код (проблема с производительностью) Коммутатор не работает с числовыми случаями сравнения Captcha работает нормально на локальном хосте, но не в сети Какие функции даты и времени используются для PHP 5.2 Paypal Скрытые переменные не работают Как я могу установить ограничение по времени на вызов `exec ()`? Лучший способ настроить код моей программы Возможно ли регулярное выражение для определения define () содержимого? Выполнение нескольких скриптов PHP параллельно и уведомление при завершении WooCommerce – Пользовательское уведомление на страницах заказа «Спасибо» и «Моя учетная запись» Angularjs – Form Post Данные не отображаются? Как я могу вводить класс внутри пользовательского репозитория – Symfony 2.7 Связь между веб-сайтами Использование имени файла по умолчанию (content_disposition) при загрузке с помощью CURL

Скрыть ссылку для входа при входе в систему

На моей странице приветствия веб-сайта есть ссылка для входа в систему, а другая – для выхода. Я хочу знать, как показывать ссылку на выход, когда пользователь вошел в систему и наоборот?

Код index.php:

<?php require_once('Connections/PAPCon.php'); ?> <?php //initialize the session if (!isset($_SESSION)) { session_start(); } // ** Logout the current user. ** $logoutAction = $_SERVER['PHP_SELF']."?doLogout=true"; if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){ $logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){ //to fully log out a visitor we need to clear the session varialbles $_SESSION['MM_Username'] = NULL; $_SESSION['MM_UserGroup'] = NULL; $_SESSION['PrevUrl'] = NULL; unset($_SESSION['MM_Username']); unset($_SESSION['MM_UserGroup']); unset($_SESSION['PrevUrl']); $logoutGoTo = "login.php"; if ($logoutGoTo) { header("Location: $logoutGoTo"); exit; } } ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } mysql_select_db($database_PAPCon, $PAPCon); $query_Users = "SELECT * FROM tbl_utilizadores"; $Users = mysql_query($query_Users, $PAPCon) or die(mysql_error()); $row_Users = mysql_fetch_assoc($Users); $totalRows_Users = mysql_num_rows($Users); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>RelPro</title> <link rel="stylesheet" type="text/css" media="screen" href="style.css" /> <style type="text/css"> #container #intro #pageHeader h1 { font-size: 4em; } </style> </head> <body> <div id="container"> <div id="intro"> <div id="pageHeader" style="padding: 20px 0 0 50px;"> <h1>RelPro</h1><h2>&nbsp;</h2> <h2><span>by: M&aacute;rio Hon&oacute;rio 12&ordm;PI N&ordm;6</span></h2> <h2><div style="position: absolute; left: 944px; top: 152px; height: 100px;"><img src="Logo PAP 2.png" alt="" width="230" height="187" /></div></h2> </div> <div id="preamble"> <h3><span>Acerca da RelPro</span></h3> <p class="p1">Este website foi criado no &acirc;mbito do Curso Profissional de T&eacute;cnico de Gest&atilde;o de Equipamentos Inform&aacute;ticos de forma a avaliar toda a aprendizagem realizada. Foi concebido de forma a facilitar o acesso a relat&oacute;rios de projectos de final de curso de v&aacute;rias &aacute;reas a todos os interessados. &Eacute; um website de f&aacute;cil acesso, simples design e produzido em linguagem PHP, MySQL e HTML.</p> </div> </div> <div id="supportingText"></div> <div id="footer"></div> <div id="linkList"> <div id="linkList2"> <div id="lselect"> <h3 class="select"><span>Sec&ccedil;&otilde;es:</span></h3> <ul> <li>RelPro</li> <li><a href="relatorios.php">Relat&oacute;rios</a></li> <li><a href="admin.php">Admin</a></li> <li><a href="contactos.php">Contactos</a></li> <li><a href="login.php">Login</a></li> <li><a href="<?php echo $logoutAction ?>">Log out</a></li> </ul> </div></div> </div> </div> </body> </html> <?php mysql_free_result($Users); ?> 

Вот изображение меню раздела, где находятся ссылки:

введите описание изображения здесь

Либо скрытые, либо отключенные.

Вы можете отобразить его с проверкой, установлена ​​ли переменная (ы) сеанса. Пример только для одной переменной сеанса:

 if(isset($_SESSION['MM_Username'])) echo '<li><a href="' . $logoutAction . '">Log out</a></li>'; else echo '<li><a href="login.php">Login</a></li>'; 

Не используйте драйвер MySQL, поскольку он устарел. Вместо этого используйте MySQLi (mproved).

отображать его на основе сеанса

 if($_SESSION['MM_Username']) { ?> <li><a href="<?php echo $logoutAction ?>">Log out</a></li> <?php }else { ?> <li><a href="login.php">Login</a></li> <?php } 

Здесь можно эффективно использовать тройной оператор .

 <?php error_reporting(E_ALL); ini_set('display_errors', 1); session_start(); session_destroy(); // comment this out if it gives you trouble // Comment this out to test and using your own method of user check. $_SESSION['MM_Username'] = "John"; $login = "<li><a href=\"login.php\">Login</a></li>"; $logout = "<li><a href=\"$logoutAction\">Log out</a></li>"; $check_login = isset($_SESSION['MM_Username']) ? $logout : $login; 
  • $logout : $login – только один будет эхо в зависимости от того, установлен ли сеанс или нет.

Затем замените весь этот блок:

 <ul> <li>RelPro</li> <li><a href="relatorios.php">Relat&oacute;rios</a></li> <li><a href="admin.php">Admin</a></li> <li><a href="contactos.php">Contactos</a></li> <li><a href="login.php">Login</a></li> <li><a href="<?php echo $logoutAction ?>">Log out</a></li> </ul> 

с:

 <ul> <li>RelPro</li> <li><a href="relatorios.php">Relat&oacute;rios</a></li> <li><a href="admin.php">Admin</a></li> <li><a href="contactos.php">Contactos</a></li> <?php echo $check_login; ?> </ul> 
  • <?php echo $check_login; ?> <?php echo $check_login; ?> заботится обо всех действиях.
  • Разумеется, вам нужно будет сделать несколько корректировок, насколько это касается размещения.

Рекомендации):

После некоторых исследований и некоторых попыток и неудач здесь последний код, который я использовал для этого (с некоторыми дополнениями):

 <?php $loginlink = "index.php"; if (isset($_SESSION['MM_Username'])){ echo "Hello " . $_SESSION['MM_Username']; echo "<br/><a href='".$logoutAction."'>Logout</a>"; }else{ echo "<a href='".$loginlink."'>Login</a>";} ?> 

Это сработало для меня, и, возможно, это может помочь кому-то другому. Благодаря @Richard Reiber, чей код был моим началом перехода.

Мир, Слаксер13