2016-06-12 5 views
0

Я пытаюсь изменить код счетчика пользователя, который печатает сообщение, хранящееся в массиве. Счетчик посетителей берется как индекс массиваНеопределенный индекс при доступе к индексу массива

<?php 
session_start(); 
$counter_name = "counter.txt"; 

$age = array("url1","url2","url3"); 
// Check if a text file exists. If not create one and initialize it to zero. 
if (!file_exists($counter_name)) { 
    $f = fopen($counter_name, "w"); 
    fwrite($f,"0"); 
    fclose($f); 
} 
// Read the current value of our counter file 
$f = fopen($counter_name,"r"); 
$counterVal = fread($f, filesize($counter_name)); 
fclose($f); 
$counterVal++; 
$f = fopen($counter_name, "w"); 
fwrite($f, $counterVal); 
fclose($f); 

echo "hi Hello"; 
echo $counterVal; 
$me = $age[$counterVal]; 
echo $me; 
?> 

Но я получаю следующее сообщение об ошибке,

hi Hello1 
PHP Notice: Undefined index: 1 
in xxx/glob.php on line 23 

что может быть возможная ошибка в index 1 имеет значение asociated с ним.

ответ

0

Лучше код сделать:

<?php 
session_start(); 
$counter_name = "counter.txt"; 
$age = array("url1","url2","url3"); 
$counterVal = file_exists($counter_name)? 
    (int)file_get_contents($counter_name)++: 
    0; 
file_put_contents($counter_name, $counterVal); 

echo "hi Hello"; 
echo $counterVal; 
$me = $age[$counterVal]; 
echo $me; 

>

+0

Если даже ваш код работает отлично, не ясно, что вы изменили и почему OP код не работает – splash58

Смежные вопросы