Парни, очень нужна помощ, в php я ноль, тема такая, значит для движка php-fusion, хочу установить пароль, (если вдруг угонят хеш, то в админку злоумышленик не попадет) значит редактирую index.php в директории админцентра, в начало индекеса вставлю вот этот код PHP: $LOGIN = "demo"; $PASSWORD = "demo"; function error ($error_message) { echo $error_message."<BR>"; exit; } if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD" )) ) { header("WWW-Authenticate: Basic entrer=\"Form2txt admin\""); header("HTTP/1.0 401 Unauthorized"); error("error"); } ?> ввожу, ничего не происходит, после трех попыток выдает ошибку, подскажите что нужно дописать Вот сам код индекса PHP: <?php require_once "../maincore.php"; require_once BASEDIR."subheader.php"; require_once ADMIN."navigation.php"; if (!iADMIN || $userdata['user_rights'] == "") fallback("../index.php"); if (!isset($pagenum) || !isNum($pagenum)) $pagenum = 1; $admin_images = true; if ($page1) { $default = 1; } elseif ($page2) { $default = 2; } elseif ($page3) { $default = 3; } elseif ($page4) { $default = 4; } else { fallback("../index.php"); } page $pageon = true; if ($pagenum == 1 && !$page1) $pageon = false; if ($pagenum == 2 && !$page2) $pageon = false; if ($pagenum == 3 && !$page3) $pageon = false; if ($pagenum == 4 && !$page4) $pageon = false; if ($pageon == false) redirect("index.php?pagenum=$default"); opentable($locale['200']." - v".$settings['version']); echo "<table align='center' cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n<tr>\n"; if ($page1) { echo "<td align='center' width='25%' class='".($pagenum == 1 ? "tbl1" : "tbl2")."'><span class='small'>\n"; echo ($pagenum == 1 ? "<b>".$locale['ac01']."</b>" : "<a href='index.php?pagenum=1'>".$locale['ac01']."</a>")."</span></td>\n"; } if ($page2) { echo "<td align='center' width='25%' class='".($pagenum == 2 ? "tbl1" : "tbl2")."'><span class='small'>\n"; echo ($pagenum == 2 ? "<b>".$locale['ac02']."</b>" : "<a href='index.php?pagenum=2'>".$locale['ac02']."</a>")."</span></td>\n"; } if ($page3) { echo "<td align='center' width='25%' class='".($pagenum == 3 ? "tbl1" : "tbl2")."'><span class='small'>\n"; echo ($pagenum == 3 ? "<b>".$locale['ac03']."</b>" : "<a href='index.php?pagenum=3'>".$locale['ac03']."</a>")."</span></td>\n"; } if ($page4) { echo "<td align='center' width='25%' class='".($pagenum == 4 ? "tbl1" : "tbl2")."'><span class='small'>\n"; echo ($pagenum == 4 ? "<b>".$locale['ac04']."</b>" : "<a href='index.php?pagenum=4'>".$locale['ac04']."</a>")."</span></td>\n"; } echo "</tr> <tr> <td colspan='4' class='tbl1'>\n"; $result = dbquery("SELECT * FROM ".$db_prefix."admin WHERE admin_page='$pagenum' ORDER BY admin_title"); $rows = dbrows($result); if ($rows != 0) { $counter = 0; $columns = 4; $align = $admin_images ? "center" : "left"; echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n"; while ($data = dbarray($result)) { if (checkrights($data['admin_rights']) && $data['admin_link'] != "reserved") { if ($counter != 0 && ($counter % $columns == 0)) echo "</tr>\n<tr>\n"; echo "<td align='$align' width='25%' class='tbl'>"; if ($admin_images) { echo "<span class='small'><a href='".$data['admin_link']."'><img src='".ADMIN."images/".$data['admin_image']."' alt='".$data['admin_title']."' style='border:0px;'><br>\n".$data['admin_title']."</a></span>"; } else { echo "<span class='small'><img src='".THEME."images/bullet.gif' alt=''> <a href='".$data['admin_link']."'>".$data['admin_title']."</a></span>"; } echo "</td>\n"; $counter++; } } echo "</tr>\n</table>\n"; } else { echo "<center><br>\n".$locale['401']."<br><br>\n</center>\n"; } echo "</td>\n</tr>\n</table>\n"; closetable(); tablebreak(); opentable($locale['250']); echo "<table align='center' cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n<td width='33%' class='small'> ".$locale['251']." ".dbcount("(user_id)", "users", "user_status<='1'")."<br> ".$locale['252']." ".dbcount("(user_id)", "users", "user_status='2'")."<br> ".$locale['253']." ".dbcount("(user_id)", "users", "user_status='1'")."<br> </td> <td valign='top' width='33%' class='small'> ".$locale['254']." ".dbcount("(submit_id)", "submissions", "submit_type='n'")."<br> ".$locale['255']." ".dbcount("(submit_id)", "submissions", "submit_type='a'")."<br> ".$locale['256']." ".dbcount("(submit_id)", "submissions", "submit_type='l'")." <td valign='top' width='33%' class='small'> ".$locale['257']." ".dbcount("(comment_id)", "comments")."<br> ".$locale['258']." ".dbcount("(shout_id)", "shoutbox")."<br> ".$locale['259']." ".dbcount("(post_id)", "posts")." </td>\n</tr>\n</table>\n"; closetable(); echo "</td>\n"; require_once BASEDIR."footer.php"; ?>
Сделай так аунтификацию файлом .htaccess такого сожержания PHP: <files имя файла.php> authname admin_area authtype basic authuserfile /абсолютный_путь/.htpasswd require valid-user </files> файл .htpasswd думаю найдёш как создать в нём прописываеться логин и пароль к этой аунтификаций вот пример логин и пароль admin/admin PHP: admin:$apr1$zI5.....$gTUgpZdlFuRl8aKjGCSlg/
может я чего-нить конечно и не понимаю)) но где у тебя в примере сама форма куда должен вводиться логин и пароль? или за это отвечают переменные $php_auth_user и $php_auth_password? а что за ошибку выводит?
Вот это в начало index.php вставь: PHP: $login_check="demo"; $pwd_check="demo"; if(!isset($login)&&!isset($pwd)) { echo "<form method=post>"; echo "<html><head><title></title></head><body>\n"; echo "Ëîãèí: <br>\n"; echo "<input type=text name=login size=48 value=''><br>"; echo "Ïàðîëü: <br>\n"; echo "<input type=text name=pwd size=48 value=''><br>"; echo "<input name=\"Submit\" type=submit value='go' >"; echo "</form>"; echo "</body></html>\n"; exit; } else { if($login_check!==$login || $pwd_check!==$pwd){ echo "error";exit;} } Только не забудь $login_check и $pwd_check поменять.
Так оно и есть,парниша хочет аунтификацировать пользователя через Auth Basic(читаем спецификацию http) Если в 2 строчках будет что-то типа: PHP: if(!isset($_SERVER['PHP_AUTH_USER'])){header('WWW-Authenticate: Basic realm="Authentication"');header('HTTP/1.0 401 Unauthorized');exit;} else{if($_SERVER['PHP_AUTH_USER']!=="user" || $_SERVER['PHP_AUTH_PW']!=="cool"){die('Error');} echo 'ok';}
2virgoz нее он не то имел ввиду... ромаха юзе гугл: http://ru.php.net/manual/ru/features.http-auth.php
Вот этот код работает, но происходит следубщая херня, у мя стоит php-fusion, и при обращении к индексу админки, идет все номано логи пасс ввожу, иде дальше, и начинается открытие страницы и пишет не верный логин и пасс в самрм php-fusion, и происходит переход на главную страницу. что можно предпринять?
Romaxa55, наверное совпадают переменные Поробуй так: PHP: $login_check="demo"; $pwd_check="demo"; if(!isset($login_n)&&!isset($pwd_n)) { echo "<form method=post>"; echo "<html><head><title></title></head><body>\n"; echo "Ëîãèí: <br>\n"; echo "<input type=text name=login_n size=48 value=''><br>"; echo "Ïàðîëü: <br>\n"; echo "<input type=text name=pwd_n size=48 value=''><br>"; echo "<input name=\"Submit\" type=submit value='go' >"; echo "</form>"; echo "</body></html>\n"; exit; } else { if($login_check!==$login_n || $pwd_check!==$pwd_n){ echo "error";exit;} }
Блин а элементарное: PHP: //где нить в начале скипта вставить if($admpass=="demo"&&$admlog=="demo") { //тут текст скрипта... } else {echo "bad login";} Просто разница в том,что менять несколько дольше булешь,но ты ведь не продавать этот скрипт будешь... Хотя ещё много защиты можно поставить =) ещё ява скриптом пароля защитить мона =) А посложнее листай защита проектов php...