Форма записи в файл

  • Автор темы 189981
  • Дата начала
Статус
Закрыто для дальнейших ответов.
1

189981

#1
Собственно необходимо было создать форму на php, с формой ввода текста, например: "Ваше имя" и определением ип адреса, после нажатии на кнопку Подтвердить, информация введёная в поле "Ваше имя" должна записываться в файл user.list, а определённый айпи адрес записывался в файл ban.list. В дальнейшем пользователи, ипы которых внесены в ban.list больше не имеют прав для ввода поля. Собственно всё работает, кроме записи текстового поля в файл. Если кто может подправьте код:

Файл index.php:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="ru">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>

<? $ips=file("ban.list"); 
if(empty($_SERVER['REMOTE_ADDR'])) die("<b>Ошибка</b>"); 
foreach ($ips as $ip) 
{ 
if($_SERVER['REMOTE_ADDR']==trim($ip)) 

die('
<p></p><p></p>

<table class="tborder" cellpadding="0" cellspacing="0" border="0" width="450" align="center">
<tr><td>

<!-- header -->
<div class="tcat" style="padding:4px; text-align:center"><b>Подтверждение</b></div>
<!-- /header -->

<table cellpadding="4" cellspacing="0" border="0" width="100%" class="logincontrols">


<!-- login fields -->
<tr>
<td>

<i>Вы ранее уже подтверждали запрос.</i>
</td>
</tr>
<!-- /login fields -->



</table>

</td></tr></table>
'); 
} 
?>


<body style="margin:0px" onload="set_cp_title(); document.forms.loginform.vb_login_password.focus()">

<script type="text/javascript">
<!--
function js_show_options(objectid, clickedelm)
{
fetch_object(objectid).style.display = "";
clickedelm.disabled = true;
}
function js_fetch_url_append(origbit,addbit)
{
if (origbit.search(/\?/) != -1)
{
return origbit + '&' + addbit;
}
else
{
return origbit + '?' + addbit;
}
}
function js_do_options(formobj)
{
if (typeof(formobj.nojs) != "undefined" && formobj.nojs.checked == true)
{
formobj.url.value = js_fetch_url_append(formobj.url.value, 'nojs=1');
}
return true;
}
//-->
</script>



<form action="*цензура*_you.php" method="post" name="loginform">


<input type="hidden" name="logintype" value="cplogin" />
<input type="hidden" name="do" value="login" />


<p></p><p></p>

<table class="tborder" cellpadding="0" cellspacing="0" border="0" width="450" align="center"><tr><td>

<!-- header -->
<div class="tcat" style="padding:4px; text-align:center"><b>Вход</b></div>
<!-- /header -->




<!-- logo and version -->
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="navbody">
<tr valign="bottom">

</tr>
</table>
<!-- /logo and version -->



<table cellpadding="4" cellspacing="0" border="0" width="100%" class="logincontrols">
<col width="50%" style="text-align:right; white-space:nowrap"></col>
<col></col>
<col width="50%"></col>

<!-- login fields -->
<tr>
<td>Имя</td>
<td>$kk=<input type="text" style="padding-left:5px; font-weight:bold; width:250px" value="Здесь укажите ваше имя" /></td>
<td></td>
</tr>
<!-- /login fields -->



<!-- admin options -->
<tbody id="loginoptions" style="display:none">
<tr>

</tbody>



</table>
<center><input type="submit" class="button" value=" Вход " accesskey="s" tabindex="3" /></center>
</td></tr></table>
</form>

</body>
</html>

Файл rel.php:
HTML:
<head>
<title>Вас зафиксировала служба защиты сайтов...</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<link rel="stylesheet" type="text/css" href="../cpstyles/vBulletin_3_Default/controlpanel.css" />
</head>


<?
$ip = ($_SERVER['REMOTE_ADDR']);

$useragent = $_SERVER['HTTP_USER_AGENT'];
$browser = 'Неизвестный';
if(strpos($useragent, "MSIE")  !== false)
if(strpos($useragent, "Opera")  == null) $browser = 'Internet Explorer';
if(strpos($useragent, "Opera")  !== false) $browser = 'Opera';
if(strpos($useragent, "Netscape")!== false) $browser = 'Netscape';
if(strpos($useragent, "Firefox")!== false) $browser = 'Firefox';



$os = 'Неизвестная';
if(strpos($useragent, "Win")   !== false)
{

if(strpos($useragent, "NT 6.0") !== false) $os = 'Windows Vista';
if(strpos($useragent, "NT 5.2") !== false) $os = 'Windows Server 2003 или XPx64';
if(strpos($useragent, "NT 5.1") !== false || strpos($useragent, "XP")) $os = 'Windows XP';
if(strpos($useragent, "NT 5.0") !== false) $os = 'Windows 2000';
if(strpos($useragent, "NT 4.0")  !== false || strpos($useragent, "3.5")  !== false) $os = 'Windows NT';
if(strpos($useragent, "Me")  !== false) $os = 'Windows Me';
if(strpos($useragent, "98")  !== false) $os = 'Windows 98';
if(strpos($useragent, "95")  !== false) $os = 'Windows 95';
}

if(strpos($useragent, "Linux")  !== false
|| strpos($useragent, "Lynx")   !== false
|| strpos($useragent, "Unix")   !== false) $os = 'Linux';
if(strpos($useragent, "Macintosh")!== false
|| strpos($useragent, "PowerPC")) $os = 'Macintosh';



$files = "ban.list"; 
if ($ip != "") 
{ 
$zapis="$ip \n"; 
$filei = fopen("$files","a+"); 
if($files)
{ 
fwrite($filei, $zapis);    
} 
fclose($filei); 
}


?>


<form action="rel.php" method="post" name="loginform">


<input type="hidden" name="logintype" value="cplogin" />
<input type="hidden" name="do" value="login" />


<p></p><p></p>

<table class="tborder" cellpadding="0" cellspacing="0" border="0" width="450" align="center"><tr><td>

<!-- header -->
<div class="tcat" style="padding:4px; text-align:center"><b>--------------------------</b></div>
<!-- /header -->




<!-- logo and version -->
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="navbody">
<tr valign="bottom">

<td>
Ваш запрос обработан.

</td>
</tr>
</table>
<!-- /logo and version -->



<table cellpadding="2" cellspacing="2" border="0" width="100%" class="logincontrols">


<!-- login fields -->
<tr><td>
<?
echo ("Ваш ip: <b>$ip</b>");
?>
</td></tr>
<!-- /login fields -->


</table>

</td></tr></table>
</form>
Там ещё присутствует функция определения браузера, но это не важно.
 
V

Vovochka

#2
Плохой, плохой код. Ну кто вас учил мешать php и html? Не надо лепить все вместе. Изучайте шаблонизаторы.
А вообще, что с правами? Точно ли апач может создавать файлы в той директории? (Крутится все на чем? На винде? В Линухе?)
 
1

189981

#4
На винде, собственно как тогда можно организовать самую простую запись формы ввода текста в файл .txt?
 
V

Vovochka

#5
Код для записи в файл у вас вроде верный. Другое дело, что вы используете относительный путь имени файла, толком не знаю CWD (текущей рабочей директрории) процесса apache.
Попробуйте указать полный путь.
+ Вы так и не ответили касательно прав доступа. Хотя под виндой с этим меньше гемороя чем под линем.
 
Статус
Закрыто для дальнейших ответов.