Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > гостевуха


Автор: dstorm81 14.4.2006, 21:25
smile первые шаги. наваял [обратную связь], в общем все работает и меня ПОКА устраивает
просто на глаза попалась один креатиф, про то что некоторые функции пхп типа много жрут памяти, да и функций в пхп до х....
в общем посмотрите, може что нить заменить можно в коде. (може и по логике будут поучения)
блокировка файла нужна, или это лажа?
очистку файла как еше можно сделать как кроме, открыть на перезапись и записать пробел?
Код

<?
$login="098f6bcd4621d373cade4e832627b4f6";
$parol="098f6bcd4621d373cade4e832627b4f6";
if(@$_POST["doGoAdmin"])
{
    $data_file = fopen('gbuk/text.dat','w') or die('Ошибка');
    flock($data_file,LOCK_EX);
    fwrite($data_file," ");
    flock($data_file,LOCK_UN);
    fclose($data_file);
    echo ('Все соощения удалены');
}
else if(!@$_POST["doGo"])
{
    ?>
<center class=myNoD>
<fieldset><legend>про сообщения</legend>
Длина ника и сообщения не должны превышать 60 и 600 символов соответсвенно.
</fieldset>
<form action=<? echo($_SERVER["SCRIPT_NAME"]) ?> method="POST">
<input type=text name="name" value='Кто-то из сети' ><br>
<textarea name="reply"></textarea><br>
<div id=adminPart>
<input type=text name="admNike" value='login'><br>
<input  type=password name="pwd"><br>
</div>
<input type=submit name="doGo" value="отправить сообщение"><br>
<a href="javascript:document.getElementById('adminPart').style.display='block';void(0)">admin</a>
</form>
</center>
    <?
}
else if(md5($_POST["admNike"])===$login&&md5($_POST["pwd"])===$parol){include_once('gbuk/text.dat');echo ('<center class=myNoD><form action='.$_SERVER["SCRIPT_NAME"].' method="POST"><input name="doGoAdmin" type=submit value="очистить"></form></center>');}
else if(strlen($_POST["name"])>60 || strlen($_POST["reply"])>600){echo ('длина ника или текста превышает допустимую длину');}
else
{
    echo ($_POST["name"].' ваше сообщение было отправлено<br>'); 
    $data_file = fopen('gbuk/text.dat','a') or die('ошибка');
    flock($data_file,LOCK_EX);    fwrite($data_file,"<fieldset><legend>".HtmlSpecialChars($_POST["name"])."</legend>".HtmlSpecialChars($_POST["reply"])."</fieldset>");
    flock($data_file,LOCK_UN);
    fclose($data_file);

}
?>

Автор: wsr 14.4.2006, 21:51
С таким то кодом и заботиться о производительности...??? Помоему это не в тему!
Я понимаю, если у тебя там несколько тысяч строк кода и все работает, вот тогда да, стоит задуматься о производительности.

ИМХО этот вопрос неактуален для текущего кода!

Автор: Ciber SLasH 15.4.2006, 00:19
Цитата(dstorm81 @ 14.4.2006, 22:25 Найти цитируемый пост)
очистку файла как еше можно сделать как кроме, открыть на перезапись и записать пробел?

Код

$fp = fopen('<путь к файлу>', '<режим>');
ftruncate($fp, 0);
fclose($fp);

Автор: AztEK 15.4.2006, 11:03
Цитата
$fp = fopen('<путь к файлу>', '<режим>');
ftruncate($fp, 0);
fclose($fp);


А может так?

Код

$fp = fopen('<путь к файлу>', 'w');
fclose($fp);

Автор: dstorm81 15.4.2006, 12:33
2 Aztek
у тебя вариант короче, буквей поменьше, и работает тоже
а как правильней чем ftruncate($fp, 0); хуже (чисто нубовский вопрос smile)

ладно за сим тему закрою

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)