[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: IE не отрабатывает strpos
Ilya
вот три скрипта:
1) поиск имен пользователей в файле.
$lines = file('oscam.user') or die ("ошибка открытия файла");
for ($i=0; $i<count($lines); $i++)
{
$line=$lines[$i];


if(strpos($line,"account")!=false)
{$line=$lines[$i+1];
$rn=strpos($line,"=");
$dlina=strlen($line);
$user=substr($line,$rn+1,$dlina-$rn-1);
echo("<input name=\"names\" type=\"radio\" value=\"$user\">$user");
echo("<br>");

}

2) поиск личных данных пользователей в файле
Свернутый текст
<?php
$names=$_POST["names"];
echo("<center><b>изменение для пользователя"." ".$_POST["names"]." "."</b></center>");
$lines = file('oscam.user') or die ("ошибка открытия файла");
$i=0;
$j= 1;

while ($i<count($lines))
{
$line=$lines[$i];

if(strpos($line,$_POST["names"])!=false)
{ $i++;
while ($i<count($lines))
{ $line=$lines[$i];
if(strpos($line,"account")==false)
{
$rn=strpos($line,"=");
$dlina=strlen($line);
$nazv=substr($line,0,$rn-1);
$otv=substr($line,$rn+1,$dlina-$rn-1);
$name1=$j+1;
$name2=$j+2;

echo("<input name=\"$j\" type=\"hidden\" value=\"$nazv\" >$nazv");
echo("<input name=\"$name1\" type=\"text\ value=\"$otv\">");
echo("<input name=\"$name2\" type=\"hidden\" value=\"$otv\" >");
echo("<br>");
$i++;
$j=$j+3;
}
else
{
$i=count($lines);
}
}


}

else
{
$i++;
}


}

echo("<input name=\"kolvo\" type=\"hidden\" value=\"$j\">");
echo("<input name=\"names\" type=\"hidden\" value=\"$names\">") ;
?>

3) запись данных пользователей в файл
Свернутый текст
<?php
function
WriteToFile ($path_to_file,$data) {
$lock = fopen("block.txt","a");
if(flock($lock, LOCK_EX)) {
$tmp=fopen("tmp.txt","w");
for($i=0;$i<count ($data);$i++) {
fputs($tmp, "$data[$i]");
}
fclose($tmp);
unlink("$path_to_file");
rename("tmp.txt", "$path_to_file");
flock($lock, LOCK_UN);
fclose($lock);
}
}


$lines = file('oscam.user') or die ("ошибка открытия файла");
{
$i=0;
$names=$_POST["names"];

while ($i<count($lines))
{

$line=$lines[$i];
$line=trim($line);





if(strpos($line,$names)!=false)
{


$kolvo=$_POST["kolvo"];
$j=1;
$i++;
while ($i<count($lines))
{ $line=$lines[$i];


$nomer1=$j+1;
$nomer2=$j+2;



if (($_POST["$nomer1"]=="")!=false) {
$line=$_POST["$j"]." =".$_POST["$nomer2"];
$lines[$i]="$line\r\n";
$j=$j+3; }
else
{
$line=$_POST["$j"]." =".$_POST["$nomer1"];
$lines[$i]="$line\r\n";
$j=$j+3;
}

if ($j==$kolvo)
{
$i=count($lines);
}





}

}

else $i++;


}


}


$file="oscam.user";
WriteToFile($file,$lines);


?>


Opera, Mozilla отрабатывают эти скрипты без ошибок, но IE первые два отрабатывает а запись в файл нет. 3 скрипту все параметры передаются(проверял), но на strpos все заканчивается т.е. не происходит поиск а строке при использование IE. как решить этот вопрос?



Спустя 13 минут, 1 секунда (31.01.2010 - 11:43) krasilich написал(а):
Ну, вопервых, браузер не имеет никакого отношения к выполнению скрипта. Единственное чем он может повлиять на скрипт это http заголовками, но в этих скриптах обработки заголовков и массива $_SERVER нету, так что можно утверждать, что браузер не при чем
И во-вторых, пишите код в соответствующих тегах с человеческим форматированием, а то так ведь тяжело разобраться что там к чему в этих скриптах.

Спустя 10 минут, 38 секунд (31.01.2010 - 11:54) Ilya написал(а):
Я хотел уточнить почему именно у IE при переходе на 3 скрипт не происходит записи в файл, точнее файл изменяется но нового туда не записывается.
при использование IE в 3 скрипте при проверке условия "if(strpos($line,$names)!=false)" не происходит сравнения хотя данные которые дадут положительные результат есть. может нужно изменить параметры php.ini?

Спустя 5 минут, 39 секунд (31.01.2010 - 12:00) krasilich написал(а):

<?php


function
WriteToFile ($path_to_file, $data)
{
$lock = fopen("block.txt", "a");

if(flock($lock, LOCK_EX))
{
$tmp = fopen("tmp.txt", "w");

for($i = 0; $i < ount ($data); $i++)
{
fputs($tmp, "$data[$i]");
}
fclose($tmp);
unlink("$path_to_file");
rename("tmp.txt", "$path_to_file");
flock($lock, LOCK_UN);
fclose($lock);
}
}

$lines = file('oscam.user') or die ("ошибка открытия файла");

{
$i = 0;
$names = $_POST["names"];

while ($i < ount($lines))
{
$line = $lines[$i];
$line = trim($line);

if(strpos($line, $names)!= false)
{
$kolvo = $_POST["kolvo"];
$j = 1;
$i++;

while ($i < ount($lines))
{
$line = $lines[$i];
$nomer1 = $j + 1;
$nomer2 = $j + 2;

if (($_POST["$nomer1"] == "")!= false)
{
$line = $_POST["$j"] . " =" . $_POST["$nomer2"];
$lines[$i] = "$line\r\n";
$j = $j + 3;
}
else
{
$line = $_POST["$j"] . " =" . $_POST["$nomer1"];
$lines[$i] = "$line\r\n";
$j = $j + 3;
}

if ($j == $kolvo)
{
$i = count($lines);
}
}
}

else $i++;
}
}

$file = "oscam.user";
WriteToFile($file, $lines);?>


Вот третий скрипт, если кто будет в нем разбираься....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.