Stinger-I
Guest
SAFE MODE и бесплатный хостинг
Написал скрипт, который обрабатывает форму запроса. Дома стоит Apache и на нём скрипт отлично работает: выводит результат введённого товара и отсылает в папку-заклушку «!sendmail» письмо с результатом выбора. Короче, всё работает отлично. А когда выложил на fatal.ru при обработке результата заказа, выдаёт сообщение:
Warning: touch(): SAFE MODE Restriction in effect. The script whose uid is 58043 is not allowed to access / owned by uid 0 in /www/i/il/ila-25.webhost.ru/site/asean/zakaz.php on line 115
надо создать файл.
Код файла:
Строка 115: $fn = "/zakaz.txt";
Написал письмо в fatal.ru - ответ: зачем вам писать в / ?? это корень
А если убрать «/», то выдаётся два сообщения: типа «не могу создать файл» и «не могу открыть файл», одно относится к touch ("$fn"); , второе – к $fp = fopen("$fn","w") or die("Не могу открыть $fn");
В форуме почитал, рекомендовали писать именно через «/».
Может это из-за того что это бесплатный хостинг? Или проблема в другом? На платном хостинге работать будет?
Написал скрипт, который обрабатывает форму запроса. Дома стоит Apache и на нём скрипт отлично работает: выводит результат введённого товара и отсылает в папку-заклушку «!sendmail» письмо с результатом выбора. Короче, всё работает отлично. А когда выложил на fatal.ru при обработке результата заказа, выдаёт сообщение:
Warning: touch(): SAFE MODE Restriction in effect. The script whose uid is 58043 is not allowed to access / owned by uid 0 in /www/i/il/ila-25.webhost.ru/site/asean/zakaz.php on line 115
надо создать файл.
Код файла:
PHP:
<?php
$pusto = "
";
$start = "*START*
";
$end = "*END*
";
$e_mail = "E-mail: $address
";
$phone_order = "Контактный телефон: $phone
";
$date = "Дата заказа: ".date("H:i, jS F");
$fn = "/zakaz.txt";
$trans = array("calamar" => "Кальмар",
"crab" => "Дальневосточный краб",
"keta" => "Кета");
$total_goods = $calamar + $crab + $keta;
if ($total_goods == 0 || ( !eregi( "^([._a-z@0-9-]+[._a-z@0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$", $address)))
print "<b>Не заполнено ни одно поле (неправильно введёно) или не введён (неправильно введён) e-mail.</b>";
else
{
echo "Ваш заказ был принят в ";
echo date("H:i, jS F");
echo "<br><br>";
echo "<b>Ваш e-mail:</b> ".$address;
echo "<br><b>Ваш контактный телефон:</b> ".$phone;
echo "<br><br>";
echo "<b>Ваш заказ:</b><br> ";
touch ("$fn");
if (file_exists("$fn"))
{
$fp = fopen("$fn","w") or die("Не могу открыть $fn");
flock($fp, 2);
fwrite($fp, $start);
flock($fp, 3);
fclose($fp);
foreach ($HTTP_POST_VARS as $key => $value)
{
if ($value>0)
{
foreach ($trans as $k => $v)
if ($k == $key)
print "$v"." - <b>$value</b><br>";
}
$fp = fopen("$fn","a") or die("Не могу открыть $fn");
flock($fp, 2);
fwrite($fp, $key);
fwrite($fp, -$value);
fwrite($fp, $pusto);
flock($fp, 3);
fclose($fp);
}
$fp = fopen("$fn","a") or die("Не могу открыть $fn");
flock($fp, 2);
fwrite($fp, $e_mail);
fwrite($fp, $phone_order);
fwrite($fp, $date);
fwrite($fp, $pusto);
fwrite($fp, $end);
flock($fp, 3);
fclose($fp);
$info = file_get_contents($fn);
if (mail( "[email protected]", "TEST!!", "$info"))
echo "Письмо отправлено";
else
echo "Письмо не отправлено";
}
else
{
print "надо создать файл.";
}
}
?>
Написал письмо в fatal.ru - ответ: зачем вам писать в / ?? это корень
А если убрать «/», то выдаётся два сообщения: типа «не могу создать файл» и «не могу открыть файл», одно относится к touch ("$fn"); , второе – к $fp = fopen("$fn","w") or die("Не могу открыть $fn");
В форуме почитал, рекомендовали писать именно через «/».
Может это из-за того что это бесплатный хостинг? Или проблема в другом? На платном хостинге работать будет?