|
|
|
| Приветствую. Не так давно столкнулся с проблемой по работе PHP скриптов. Сам я не дурак, и уже около 3х лет изучаю Веб-дизайн, Фотошоп и всё, что с этим связано. Недавно захотел так же изучить и PHP, но столкнулся со следующей проблемой : на одном хосте скрипт работает, а на другом нет ( Хотя оба хоста поддерживают Мускул и ПХП
У меня есть сайт, который работает довольно давно. Понадобилось сделать на него форму заказа, т.е. установить простейший скрипт форма-почтой. Сам сайт написан под PHP 3 , но на серваке стоит версия 4.3 или что-то подобное.
Перепробовал массу скриптов, перерыл множество настроек, но ни один из скриптов даже не захотел работать. Сайт написан на PHP, страницы генерируются через PHP Nuke.
Вопросов в общем то три :
1. Почему может не работать скрипт (все разрешения Chmod поставил 777, htaccess вообще пустой, разрешения для папок тоже 777).
2. Не могу зайти в систему админки, т.е. когда набираю сайт/admin.php меня переносит на index.php
3. Не могли бы вы дать так же какой-либо свой скрипт по этой теме, может быть проблема разрешилась бы сама собой. Я испробовал порядка 7 скриптов различных по сложности и строению - все они работают на другом хостинге, а на том, на которум нужно, отказываются.
Огромная просьба - помогите решить эту проблему, буду премного благодарен. | |
|
|
|
|
|
|
|
для: Cergio777
(29.07.2005 в 12:01)
| | А расширения у файлов какие php, phtml, php3? | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 12:11)
| | А используемые переменные какие??? посмотри что у тебя в настройках register_globals. Права 777 это ты зря, очень зря. 644 на подключаемые модули и 755 на исполняемые файлы было бы вполне достаточно. На папки конечно 755. | |
|
|
|
|
|
|
|
для: [CHOL]Scorpion
(29.07.2005 в 12:24)
| | Все файлы с расширением .php , пробовал так же и phtml, но всё равно полный штиль. Хотелось бы поподробнее узнать, что за настройики register_global, т.е. где лежат, и с чем их есть. Я человек неопытный, и могу не знать элементарных вещей. Направьте меня на нужный путь плиз ) | |
|
|
|
|
|
|
|
для: Cergio777
(31.07.2005 в 02:22)
| | Подробнее об этой настройке можно почитать в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=13, а в теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1309 рассказывается о причинах, почему сообщество PHP-разработчиков отказывается от прямой передачи параметров методов GET, POST непосредственно в переменные PHP. | |
|
|
|
|
|
|
|
для: cheops
(31.07.2005 в 11:58)
| | Сенкью, теперь я стал на один шаг ближе к профессионалам. НО есть ещё один вопрос : как сделать так, чтобы когда я заходил в систему админки (admin.php) меня не перекидывало на index.php ? | |
|
|
|
|
|
|
|
для: Cergio777
(31.07.2005 в 20:31)
| | Почитайте admin.php. Там либо есть комментарии, либо что-то типа
if ( ... )
die("<meta http-equiv=refresh content='index.php'>");
//или
Header("index.php");
|
Посмотрите. что написано в скобках. Там причина выкидывания=) | |
|
|
|
|
|
|
|
для: Cergio777
(31.07.2005 в 20:31)
| | 1. Ну сначала, наверное посмотри phpinfo твоегшо хостера, что у него там и по чем, т.е. создай новый файлик например phpinfo.php В него вставь вот этот код:
<?
phpinfo();
?>
загрузи его куда нибудь на сервер и запусти этот файлик через браузер и ты получишь всю инфу относительно сервера твоего хостера и настроек php т.к. без этих результатов, что то трудно тебе советовать | |
|
|
|
|
|
|
|
для: Alex.W
(31.07.2005 в 23:26)
| | Сделал, как ты сказал, но пока всё ещё далёк от результата. К сожалению я ничерта не понимаю в этих функциях. Единственное, что я заметил, так это то, что включил регистр_глобал. Посмотри на файл конфы, может это ключ для решения проблемы. В админке ничего похожего не нашёл, возможно просто невнимательно смотрел или там "синоним" | |
|
|
|
|
|
|
|
для: Cergio777
(31.07.2005 в 23:42)
| | Могу высказать свои предположения, насчёт выкидывания на индекс. Возможно стоит запрет по айпи или куки записан только на один комп. С работы я могу запросто заходить, а с домашнего - *... Если это так - то как разрешить спор мирным путём ? | |
|
|
|
|
|
|
|
для: Cergio777
(31.07.2005 в 23:44)
| | У меня, когда начинал изучать PHP, и сразу стал ковырять Нюку, тоже были такие глюки. Проблема, насколько помню, заключалась в запрете сохранения cookie файерволом. Дома файервол стоит? | |
|
|
|
|
|
|
|
для: Cergio777
(31.07.2005 в 23:44)
| | Выложи примерно 50 первых строк файла admin.php... наверника в них будет видо проблему | |
|
|
|
|
|
|
|
для: Гость
(01.08.2005 в 14:46)
| | выкладываю ниже первые 50 строк файлa admin.php :
<?php
@include("./includes/ipbanadm.php");
define('ADMIN_FILE', true);
if($aid AND (!isset($admin) OR empty($admin)) AND $op!='login') {
unset($aid);
unset($admin);
echo "Access denied";
die();
}
@require_once("mainfile.php");
$checkurl = $_SERVER['REQUEST_URI'];
if((stripos_clone($_SERVER["QUERY_STRING"],'AddAuthor')) || (stripos_clone($_SERVER["QUERY_STRING"],'VXBkYXRlQXV0aG9y')) || (stripos_clone($_SERVER["QUERY_STRING"],'QWRkQXV0aG9y')) || (stripos_clone($_SERVER["QUERY_STRING"],'UpdateAuthor')) || (preg_match("/\?admin/", "$checkurl")) || (preg_match("/\&admin/", "$checkurl"))) {
die("Illegal Operation");
}
get_lang(admin);
function create_first($name, $url, $email, $pwd, $user_new) {
global $prefix, $db, $user_prefix;
$first = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_authors"));
if ($first == 0) {
$pwd = md5($pwd);
$the_adm = "God";
$db->sql_query("INSERT INTO ".$prefix."_authors VALUES ('$name', '$the_adm', '$url', '$email', '$pwd', '0', '1', '')");
if ($user_new == 1) {
$user_regdate = date("M d, Y");
$user_avatar = "gallery/blank.gif";
$commentlimit = 4096;
if ($url == "http://") { $url = ""; }
$db->sql_query("INSERT INTO ".$user_prefix."_users (user_id, username, user_email, user_website, user_avatar, user_regdate, user_password, theme, commentmax, user_level, user_lang, user_dateformat) VALUES (NULL,'$name','$email','$url','$user_avatar','$user_regdate','$pwd','$Default_Theme','$commentlimit', '2', 'russian','D M d, Y g:i a')");
}
login();
}
}
global $admin_file;
$the_first = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_authors"));
if ($the_first == 0) {
if (!$name) {
@include("header_adm.php");
title("$sitename: "._ADMINISTRATION."");
OpenTable();
echo "<center><b>"._NOADMINYET."</b></center><br><br>"
."<form action=\"".$admin_file.".php\" method=\"post\">"
."<table border=\"0\">"
."<tr><td><b>"._NICKNAME.":</b></td><td><input type=\"text\" name=\"name\" size=\"30\" maxlength=\"25\"></td></tr>"
."<tr><td><b>"._HOMEPAGE.":</b></td><td><input type=\"text\" name=\"url\" size=\"30\" maxlength=\"255\" value=\"http://\"></td></tr>"
."<tr><td><b>"._EMAIL.":</b></td><td><input type=\"text\" name=\"email\" size=\"30\" maxlength=\"255\"></td></tr>"
."<tr><td><b>"._PASSWORD.":</b></td><td><input type=\"password\" name=\"pwd\" size=\"11\" maxlength=\"10\"></td></tr>"
."<tr><td colspan=\"2\">"._CREATEUSERDATA." <input type=\"radio\" name=\"user_new\" value=\"1\" checked>"._YES." <input type=\"radio\" name=\"user_new\" value=\"0\">"._NO."</td></tr>"
."<tr><td><input type=\"hidden\" name=\"fop\" value=\"create_first\">"
."<input type=\"submit\" value=\""._SUBMIT."\">"
."</td></tr></table></form>";
CloseTable();
@include("footer_adm.php");
}
switch($fop) {
case "create_first":
create_first($name, $url, $email, $pwd, $user_new);
break;
}
die();
ВСЕГО В КОДЕ 554 СТРОКИ! | |
|
|
|
|
|
|
|
для: Cergio777
(02.08.2005 в 00:59)
| | Здесь, вроде бы. нигде нет именно перекидывания на index.php. Есть только
f($aid AND (!isset($admin) OR empty($admin)) AND $op!='login') {
unset($aid);
unset($admin);
echo "Access denied";
die();
}
|
Должна появиться просто надпись Access denied. Возможно. такое перекидывание имеется в файле ./includes/ipbanadm.php. Там же определяется переменная $admin, которая и определяет. пускать вас в админку или нет=), а также переменные $aid и $op, которые тоже влияют на доступ. ($op - это, наверное, GET-параметр). Давайте теперь ./includes/ipbanadm.php ;-) Или посмотрите его сами. Загвоздка. скорее всего, там. | |
|
|
|
|
|
|
|
для: Киналь
(02.08.2005 в 09:38)
| | <?php
global $prefix, $db;
$ip = $_SERVER["REMOTE_ADDR"];
if (!stristr($ip, "127.0.0.1") && !stristr($ip, "82.211.") && !stristr($ip, "192.168.207.30") && !stristr($ip, "195.12.30."))
{
Header ("Location: index.php");
die();
}
?>
:)))))) Даже мне стало понятно, что это запрет по айпи ) Большое спасибо, осталось только вписать свой. Хотелось бы узнать, как можно грамотно его добавить 8-( | |
|
|
|
|