старый код и новая php?

Ответить
mkden
Сообщения: 96
Зарегистрирован: 08.05.2010
В общем на старой версии пхп этот код работал, на новой не в какую!
Включал сайф мод ,рег глобалс результата ноль может еще какое то расшерение нужно?

Где ошибка подскажите?

Код: Выделить всё

<?

$nosql = 1;

include "../config.php";
include "../lib/init.inc";

auth();

$head = str_replace("__TITLE__", $lang['administration'], $design['head']);

echo $head;

include "admin.inc";

include "../themes/".$theme."/header.inc";
if(!isset($HTTP_POST_VARS['f'])){
?>

<form method=post action="<?echo $PHP_SELF?>">
<input type=hidden name=f value=1>
<table border=0 width=80% cellspacing=0 cellpadding=2 bgcolor=black><tr><td>

<table border=0 width=100% cellspacing=1>
<tr><td colspan=2 bgcolor="<?echo $design['headercolor']?>" align=center>
<div style="font-size : 14pt">Forum configuration</div>
</td></tr>
<?
$count = count($admin);
for($x=0; $x < $count; $x++){
   $bgcolor = $x%2==0?$design['oddcolor']:$design['evencolor'];
   echo "<tr><td bgcolor=\"$bgcolor\" align=center>\n";
   echo $admin[$x]->desc;
   echo "\n</td><td bgcolor=\"$bgcolor\" align=center>\n";
   switch($admin[$x]->type){
      case 1:
	 echo "<input type=\"text\" size=20 name=\"n".$admin[$x]->name.
	    "\" value=\"".${$admin[$x]->name}."\">\n";
	 break;
      case 2:
	 echo "<select name=\"n".$admin[$x]->name."\">\n";
	 while(list($k, $v) = each($admin[$x]->arr)){
	    echo " <option value=\"$k\"";
	    if($k == ${$admin[$x]->name})
	       echo " selected";
	    echo ">$v\n";
	 }
	 echo "</select>\n";
	 break;
      case 3:
	 echo "<input type=\"checkbox\" name=\"n".$admin[$x]->name."\"";
	 if(${$admin[$x]->name}==true)
	    echo " checked";
	 echo ">\n";
	 break;
   }
   echo "</td></tr>\n";
}
?>
<tr><td bgcolor="<?echo $design['evencolor']?>" align=center colspan=2>
<input type=submit value="Save">
</td></tr>
</table>
</td></tr></table>
</form>
<?
}
else{
   include "../admin/save.inc";
}
include "../themes/".$theme."/footer.inc";
echo $design['footer'];
?>

p.s: В php я нуб!!! )

Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009

Код: Выделить всё

$HTTP_POST_VARS
заменить на

Код: Выделить всё

action="<?echo $PHP_SELF?>"
если надо отправлять на текущую страницу, то достаточно

Код: Выделить всё

action=""
если все же нужен путь, то

Код: Выделить всё

action="<?php echo $_SERVER['PHP_SELF'] ?>"
так же чтобы работал код вида <?...?> нужно включить short_open_tag в php.ini

больше в глаза ничего не бросилось. описывай конкретнее что именно не работает (какие ошибки выводит, что в логах и т.д.)

mkden
Сообщения: 96
Зарегистрирован: 08.05.2010
все зделал но все равно результата ноль ,ошибок не каких не выдает вобще!

После нажатия на кнупку типа сумбит просто перезагружается страница ,а должны изменятся конфегурации форума!

config.php соответственно конект к базе

lib/init.inc

Код: Выделить всё

<?

if(defined("_INIT_")) return;
define("_INIT_", 1);

error_reporting(E_ALL ^ E_NOTICE);

$pre = "";
if(ereg("admin", $PHP_SELF)) $pre = "../";
include $pre."lib/sql.inc";
include $pre."lib/lib.inc";

include $pre."lang/".$lang_d.".inc";

if(empty($lng)&&empty($cookie_lang))
   $lng = $lang_d;
else if(empty($lng)&&!empty($cookie_lang)&&isset($langlist[$cookie_lang]))
   $lng = $cookie_lang;

if(!empty($lng)&&$lng!=$cookie_lang)
   if(isset($langlist[$lng]))
      setcookie("cookie_lang", $lng, time()+999999999);
   else
      $lng = $lang_d;

include $pre."lang/".$lng.".inc";

if(ereg("/list.php|/read.php|/new.php|/search.php|/read_thr.php", $PHP_SELF)){
   if(!isset($f))
      error_f($lang['nofid']);
   if(is_array($forum_array[$f]))
      $theme=$forum_array[$f]["theme"];
   else
      error_f($lang['nofid']);
}

include $pre."themes/".$theme."/design.inc";

if(empty($s)&&empty($ns)){
   $ns='d';
}

if(isset($ns)){
   setcookie("s", $ns, time()+999999999);
   $s=$ns;
}

if(isset($HTTP_REFERER)){
   if(!ereg("list.php|read.php|new.php|search.php|(^$)", $HTTP_REFERER)||
         (empty($o)&&empty($no))){
      $no=0;
   }
}

if(isset($no)){
   $o=$no;
}

if(!empty($nt)){
   setcookie("t", $nt, time()+999999999);
   $t=$nt;
}

if(isset($nosql))
   return;

$sys_basename=$db_name;

switch($db_type){
   case 'postgres':
      $sys_database=new Database();
      $true = 't';
      $false = 'f';
      break;
   case 'mysql':
      $sys_database=new MySQLDatabase();
      $true = 1;
      $false = 0;
      break;
}

if(ereg("/list.php", $PHP_SELF)){
   $q=new Query("select id from articles where level=0 and forum = $f");
   if(empty($open_thr[$f])){
      $open_thr[$f]=Array();
      for($x=0; $x<$q->nr(); $x++)
	 $open_thr[$f][$q->get($x, 'id')] = ( $coll_thr ? 0 : 1 );
   }
   else{
      $open_thr[$f]=unserialize($open_thr[$f]);
      for($x=0; $x<$q->nr(); $x++){
	 $id = $q->get($x, 'id');
	 if(@$open_thr[$f][$id]!=1) $open_thr[$f][$id] = 0;
      }
   }

   if(!empty($uc)||!empty($c)){
      if(!empty($uc))
	 $open_thr[$f][$uc]=1;
      else if(!empty($c))
	 $open_thr[$f][$c]=0;
   }

   if(isset($cmd)){
      if($cmd==1 && count($open_thr[$f])>0){
         while(list($k, $v) = each($open_thr[$f]))
            $open_thr_n[$f][$k] = 1;
         $open_thr[$f] = $open_thr_n[$f];
      }
   }
   setcookie("open_thr[$f]", serialize($open_thr[$f]), time()+999999999);
}
?>
admin/save.inc

Код: Выделить всё

<?

if(substr($nrelpath, -1, 1)!='/')
   $nrelpath .= '/';

if(substr($nrelpath, 0, 1)!='/')
   $nrelpath = '/'.$nrelpath;

$data = "<?\n".
"//   DO NOT EDIT THIS FILE - USE ADMINISTRATION INSTEAD\n\n".
"\$relpath		= '$nrelpath';\n".
"\$admin_name		= '$nadmin_name';\n".
"\$admin_pass		= '$nadmin_pass';\n".
"\$admin_res		= '$nadmin_res';\n".
"\$db_type		= '$ndb_type';\n".
"\$db_host		= '$ndb_host';\n".
"\$db_name		= '$ndb_name';\n".
"\$db_user		= '$ndb_user';\n".
"\$db_pass		= '$ndb_pass';\n".
"\$encoding		= '$nencoding';\n".
"\$lang_d		= '$nlang_d';\n";

while(list($k, $v) = each($langlist))
   $data .= "\$langlist['$k']		= '$v';\n";

$data .= "\$theme			= '$ntheme';\n";

while(list($k, $v) = each($themes))
   $data .= "\$themes['$k']	= '$v';\n";

$data .= "\$enable_html		= ".($nenable_html?'true':'false').";\n".
"\$long_names		= ".($nlong_names?'true':'false').";\n".
"\$cite			= ".($ncite?'true':'false').";\n".
"\$req_email		= ".($nreq_email?'true':'false').";\n".
"\$ext_mail		= ".($next_mail?'true':'false').";\n".
"\$max_size             = $nmax_size;\n".
"\$wrapsize		= $nwrapsize;\n".
"\$block_ip		= ".($nblock_ip?'true':'false').";\n".
"\$count_view		= ".($ncount_view?'true':'false').";\n".
"\$coll_thr		= ".($ncoll_thr?'true':'false').";\n".
"\$thrinmess		= ".($nthrinmess?'true':'false').";\n".
"\n".
"//   FORUMS\n";

if(!empty($forum_array)){
   while(list($x, ) = each($forum_array)){
      $data .= "\$forum_array[$x] = Array(\n".
         "   'name' => '".addslashes($forum_array[$x]['name'])."',\n".
         "   'desc' => '".addslashes($forum_array[$x]['desc'])."',\n".
         "   'upload' => ".($forum_array[$x]['upload']?"true":"false").",\n".
         "   'moderation' => ".($forum_array[$x]['moderation']?"true":"false").",\n".
         "   'mod_pass' => '".addslashes($forum_array[$x]['mod_pass'])."',\n".
         "   'theme' => '".$forum_array[$x]['theme']."',\n".
         "   'tpp' => ".$forum_array[$x]['tpp'].",\n".
         "   'mpp' => ".$forum_array[$x]['mpp']."\n".
         ");\n";
   }
}

$data .= "?>\n";

$fp=@fopen("../config.php", "w");

if(!$fp){
   error("Can't open configuration file. Check file permissions.");
}

fputs($fp, $data);
fclose($fp);

echo "<div style=\"font-size: 14pt\">Configuration saved.</div><br>\n";
echo "<a class=list href=\"./index.php\">Back to administration</a><br>";

?>
p.s: В php я нуб!!! )

Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009
как минимум не существуют
$PHP_SELF
$HTTP_REFERER

mkden
Сообщения: 96
Зарегистрирован: 08.05.2010
Тоесть мне во всех файлах надо заменить эти переменные на
$_SERVER['PHP_SELF'] и $_SERVER['HTTP_REFERER']
?
p.s: В php я нуб!!! )

Аватара пользователя
Distructor
Администратор
Сообщения: 1607
Зарегистрирован: 28.12.2009
да. но вряд ли не работает только из-за этого.
в errors.log что-нибудь пишется?

Ответить