Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

16.08.2009, 17:31
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
модерка
У меня сайт, и на сайте я написал скрипт для анекдотов(типа баша) все сделал на файлах. после добавления анекдот проходит модерацию, когда он еще не отмодерирован он лежит в одном файле. А когда прошла модерация его нужно переместить в другой файл. Я написал модерку для редактированния обоих файлов, он она хренова ппц работает. При обновлении записуюются повторно анекдоты и прочее. Вот файл
PHP код:
<?
echo '<html><h1>Модерация</h1><br><br>';
$open = file('anekdotmod.txt');
$anekdot = file('anekdot.txt');
foreach($open as $v);
foreach($anekdot as $s);
echo ' Анекдоты на модерацию:<br> <form action="adminanekdot.php" method=post> <textarea name=not cols="100" rows="20" wrap="Virtual">';
echo "$v";
echo '</textarea><br>
Первый пароль:<br>
<input type=text name=pass value="" size=16 maxlength=100><br>
<input type=submit name=ok value="Сохранить"><br><br>
</form>
<br><br>';
echo ' Промодерированые анекдоты:<br> <form action="adminanekdot.php" method=post><br>Ник автора: <br> <input type=text name=nic value="" size=16 maxlength=100><br><br>Анекдот<br> <textarea name=yes cols="100" rows="20" wrap="Virtual">';
echo "$s";
echo '</textarea><br>
<br>Пароль для сохранения:<br>
<input type=text name=pass value="" size=16 maxlength=100>
<input type=submit name=ok value="Сохранить"><br></form>
<br><br><br><br>powered by casper';
$yes = ($_POST['yes']);
$not = ($_POST['not']);
$nic = ($_POST['nic']);
$spam = ($_POST['pass']);
if("$spam" != '1478963') echo ''; else
{
echo '<h3>Ок</h3>';
$textis = ("<br>Ник: <strong>$nic</strong><br><div class='bash'><pre>Анекдот: $yes </pre> </div><br>");
$openis = fopen("anekdot.txt", "a");
$write = fwrite($openis, $textis);
fclose($openis);
}
if("$spam" != '123456') echo ''; else
{
echo '<h3>Ок</h3>';
$textisis = ("$not");
$openisis = fopen("anekdotmod.txt", "a");
$write = fwrite($openisis, $textisis);
fclose($openisis);
}
echo "</html>"
?>
Мож кто подскажет что не так ... 
|
|
|

16.08.2009, 18:23
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
ага, подскажем, на БД переходи, mysql например
|
|
|

16.08.2009, 18:27
|
|
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме: 745130
Репутация:
159
|
|
еще с детства посоветую код от дизайна отделять. можешь свой шаблонизатор написать или готовые заюзать, типа смарти
|
|
|

16.08.2009, 18:29
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
поддерживаю Pashkela, хотя SQLite заюзал бы
|
|
|

16.08.2009, 18:30
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
Не, я уже все на фалах сделал. Мне небольшую админку надо, а не большой сайт.
Код лагает жутко, ппц
|
|
|

16.08.2009, 19:52
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
1) Говнокод в перемешку с html-кодом увечивает его говнистость
2) $textisis = ("$not"); - Брать переменную в кавычки, да ещё в скобки при присвоении - верх говнистости
думаю автор хотел так, но судя по говнокоду это не сильно очевидно :
PHP код:
<?php
$me = '2.php';
if (isset($_POST['pass']))
{
switch ($_POST['pass'])
{
case '123456':
$text = $_POST['not'];
$file = file('anekdot_mod.txt');
file_put_contents('anekdot_mod.txt', array_slice($file, 1, count($file)));
file_put_contents('anekdot_post_mod.txt', $text, FILE_APPEND);
echo('<h3>Mod Ок</h3>');
break;
case '1478963':
$text = '<br>Ник: <strong>' . $_POST['nick'] . '</strong><br><div class="bash"><pre>Анекдот: ' . $_POST['yes'] . '</pre></div><br>';
$file = file('anekdot_post_mod.txt');
file_put_contents('anekdot_post_mod.txt', array_slice($file, 1, count($file)));
file_put_contents('anekdot.txt', $text, FILE_APPEND);
echo('<h3>Post Mod Ок</h3>');
break;
}
}
$anek_mod = file('anekdot_mod.txt');
$anek_post_mod = file('anekdot_post_mod.txt');
echo('<html>
<h1>Модерация</h1>
<br><br>Анекдоты на модерацию:<br>
<form action="' . $me . '?" method="post">
<textarea name="not" cols="100" rows="20" wrap="Virtual">' . $anek_mod[0] . '</textarea>
<br>Первый пароль:<br>
<input type="text" name="pass" size="16" maxlength="100"><br>
<input type="submit" name="ok" value="Сохранить">
<br><br>
</form>
<br><br>Промодерированые анекдоты:<br>
<form action="' . $me . '?" method="post">
<br>Ник автора:<br>
<input type="text" name="nick" value="" size=16 maxlength=100>
<br><br>Анекдот<br>
<textarea name="yes" cols="100" rows="20" wrap="Virtual">' . $anek_post_mod[0] . '</textarea>
<br><br>Пароль для сохранения:<br>
<input type="text" name="pass" size="16" maxlength="100">
<input type="submit" name="ok" value="Сохранить">
<br>
</form>
<br><br>
Говнокод (c) powered by casper
</html>');
?>
Обязательное наличие 3х файлов иначе ошибки!
Суть:
при работе с первой формой, из файла anekdot_mod.txt берётся первая строчка-анекдот и вставляется в текстовое поле.... юзер модериует..... и после модерации она доабвляется в anekdot_post_mod.txt, при этом удаляясь из anekdot_mod.txt
при работе со сторой формой - суть та же, только другие файлы и вставляет форматированный текст + ник
p.s. без постобработки черевато завести LFI и RFI
|
|
|

16.08.2009, 21:57
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
FireFenix, я непойму в твоем коде, как сделать запись в начало файла. Что б каждая новая запись писалась в начало, без обнуления.
|
|
|

16.08.2009, 22:40
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Код:
file_put_contents('file.txt', $text . file_get_contents('file_2.txt'));
|
|
|

16.08.2009, 22:58
|
|
Banned
Регистрация: 27.06.2009
Сообщений: 200
Провел на форуме: 944465
Репутация:
68
|
|
FireFenix, а где заменять?
Замени, если не сложно.
|
|
|

17.08.2009, 00:10
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
+casper+
это:
file_put_contents('anekdot.txt', $text, FILE_APPEND);
на:
file_put_contents('file.txt', $text . file_get_contents('file_2.txt'));
Юзани поиск по документу
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|