Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   модерка (https://forum.antichat.xyz/showthread.php?t=135361)

+casper+ 16.08.2009 17:31

модерка
 
У меня сайт, и на сайте я написал скрипт для анекдотов(типа баша) все сделал на файлах. после добавления анекдот проходит модерацию, когда он еще не отмодерирован он лежит в одном файле. А когда прошла модерация его нужно переместить в другой файл. Я написал модерку для редактированния обоих файлов, он она хренова ппц работает. При обновлении записуюются повторно анекдоты и прочее. Вот файл
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>"
?>

Мож кто подскажет что не так ... :mad: :mad: :mad:

Pashkela 16.08.2009 18:23

ага, подскажем, на БД переходи, mysql например

NuR 16.08.2009 18:27

еще с детства посоветую код от дизайна отделять. можешь свой шаблонизатор написать или готовые заюзать, типа смарти

Sharky 16.08.2009 18:29

поддерживаю Pashkela, хотя SQLite заюзал бы

+casper+ 16.08.2009 18:30

Не, я уже все на фалах сделал. Мне небольшую админку надо, а не большой сайт.
Код лагает жутко, ппц

FireFenix 16.08.2009 19:52

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($file1count($file)));
      
file_put_contents('anekdot_post_mod.txt'$textFILE_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($file1count($file)));
      
file_put_contents('anekdot.txt'$textFILE_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

+casper+ 16.08.2009 21:57

FireFenix, я непойму в твоем коде, как сделать запись в начало файла. Что б каждая новая запись писалась в начало, без обнуления.

FireFenix 16.08.2009 22:40

Код:

file_put_contents('file.txt', $text . file_get_contents('file_2.txt'));

+casper+ 16.08.2009 22:58

FireFenix, а где заменять?
Замени, если не сложно.

b3 17.08.2009 00:10

+casper+
это:
file_put_contents('anekdot.txt', $text, FILE_APPEND);
на:
file_put_contents('file.txt', $text . file_get_contents('file_2.txt'));

Юзани поиск по документу


Время: 21:01