Dark Wizard
Гуру форума
- Регистрация
 - 23 Сен 2007
 
- Сообщения
 - 194
 
- Реакции
 - 80
 
- Автор темы
 - #1
 
Перенёс свой кривой скрипт на новый хостинг, и столкнулся с кучей ошибок, вроде как из-за версии PHP (на старом была версия 5 и всё работало).
Хочется понять, что их вызывает и переписать код.
Чаще всего ошибка
	
		
Мой код:
	
	
		
			
	
	
	
		
		
	
Непонятно, как объявлять массивы чтобы корректно работало...
Ещё, например, в таком коде:
	
	
	
		
ошибка
	
		
такое решение
	
	
	
		
помогает, но я не уверен что оно верное (также пробовал isset, но в ряде случаев не работает).
В общем вопрос, как правильно объявлять/проверять переменные и массивы, чтобы не возникало Undefined offset и Undefined variable.
	
		
			
		
		
	
				
			Хочется понять, что их вызывает и переписать код.
Чаще всего ошибка
		PHP:
	
	Notice: Undefined offset: 0
	Мой код:
		PHP:
	
	<?
include('../check.php');
//include('functions.php'); дублируется
$errmess = "";
$playerid = $_SESSION['myid'];
$power = 0;
$totalpower = 0;
$slotgems = array();
for ($w = 0; $w < 21; $w++){
//чанты
    if (!empty($_POST['slot'.$w.'chant'])){$aslotchant[$w] = $_POST['slot'.$w.'chant'];
    for ($i = 0;$i < count($_POST['slot'.$w.'chant']); $i++){if (intval($aslotchant[$w][$i]) <> '0'){$slotchant[$w] .= " ".$aslotchant[$w][$i];}}}
//камни
    if (!empty($_POST['slot'.$w.'gems'])){
    $aslotgems[$w] = $_POST['slot'.$w.'gems'];
    for ($i = 0;$i < count($_POST['slot'.$w.'gems']); $i++){
     if (intval($aslotgems[$w][$i]) != 0){
       $slotgems[$w] .= " ".$aslotgems[$w][$i]; // ТУТ ОШИБКА
      }
    }
  }
$slotchant[$w] .= " ";
$slotgems[$w] .= " ";
	Непонятно, как объявлять массивы чтобы корректно работало...
Ещё, например, в таком коде:
		PHP:
	
	<!DOCTYPE html>
<html>
<body>
<?
if ($_GET['site']){
$site = $_GET['site'];
echo $site;}
?>
<form action="test.php" method=get>
<input type="text" name="site" /> <input type="SUBMIT" />
</form>
</body>
</html>
	ошибка
		PHP:
	
	Notice: Undefined index: site in /var/www/vhosts/мой сайт/test.php on line 5
	такое решение
		PHP:
	
	if (!empty($_GET['site'])){$site = checksite($_GET['site']);}else{$site = '';}
	В общем вопрос, как правильно объявлять/проверять переменные и массивы, чтобы не возникало Undefined offset и Undefined variable.
				
