Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ребят помогите с кодом, Новостной скрипт 
:(
    Опции темы
ЯyaУченик
Дата 16.6.2009, 18:07 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 16.6.2009

Репутация: нет
Всего: нет



Ребят вот код news.php 
Код

<? print"<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\"/>"; ?>
<?php 
if ( isset( $_GET['action'] ) ) 
  $action = $_GET['action']; 
else  
  $action = 'newsList'; 

if ( !in_array( $action, array('newsList', 'showNews') ) ) $action = 'newsList';   

if ( $action == 'newsList' ) 
  newsList(); 
else 
  showNews(); 

function newsList() 

  
  $file = file( 'news.txt' ); 
  $total = count( $file ); 
  if ( $total > 0 ) { 
    echo '<ul>'; 
    for ( $i = $total-1; $i >= 0; $i-- ) { 
      $tmp = explode('¤', $file[$i] ); 
      echo '<li>'.$tmp[0].'<br/>'; 
      echo '<a href="'.$_SERVER['PHP_SELF'].'?action=showNews&number='.$i.'" target="_blank">'.$tmp[1].'  <font color=red>>></font></a></li>'."\n"; 
    } 
    echo '</ul>'."\n"; 
  } else { 
    echo '<b><p>NEWS: 0!</p></b>'."\n"; 
    echo '<a href="http://hotforexnews.ru/news1/arxiv/index.php"><p>Arxiv</p></a>'."\n";
  } 


function showNews() 

  if ( !isset( $_GET['number'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $number = (int)$_GET['number']; 
  // Получаем из файла news.txt затребванную новость 
  $file = file( 'news.txt' ); 
  $cnt = count( $file ); 
  if ( $number < 0 or $number >= $cnt ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $news = explode( '¤', $file[$number] ); 
  $news[2] = trim($news[2]); 
  $news[2] = str_replace( '_CRLF_', ' ', $news[2] ); 
  echo '<h1>'.$news[1].'</h1>'."\n"; 
  echo '<p style="font-size:smaller">'.$news[0].'</p>'."\n"; 
  echo '<div>'.$news[2].'</div>'."\n";  
  echo '<a href="http://hotforexnews.ru/news1/infoservices1.html"><p>Geriye</p></a>'."\n";
}  
?>
<html><title>Новости Forex</title>
<p align="center"><font color="#333333">Powered by <a href="http://hotforexnews.ru">Hotforexnews</a></font></p>
</html>


А вот admin.php 
Код

<?php 
define( 'LOGIN', 'user' ); 
define( 'PASSWORD', 'password' ); 
define( 'NEW_LINE', "\r\n" ); // для Windows заменить на "\r\n" 

session_start(); 
  
$actions = array( 'loginForm', 'login', 'newsList', 'addNewsForm', 'addNews',  
                  'editNewsForm', 'updateNews', 'deleteNews' ); 
if ( isset( $_GET['action'] ) ) { 
  $action = $_GET['action']; 
} else { 
  if ( isset( $_SESSION['auth'] ) )  
    $action = 'newsList'; 
  else 
    $action = 'loginForm'; 

   
if ( !in_array( $action, $actions ) ) $action = 'loginForm'; 
switch( $action ) { 
  case 'loginForm':    // форма для авторизации 
    loginForm(); 
    break; 
  case 'login':        // проверка логина и пароля 
    login(); 
    break; 
  case 'newsList':     // список новостей 
    newsList(); 
    break; 
  case 'addNewsForm':  // форма для добавления новости 
    addNewsForm(); 
    break; 
  case 'addNews':      // добавить новость 
    addNews(); 
    break; 
  case 'editNewsForm': // форма для редактирования новости 
    editNewsForm(); 
    break; 
  case 'updateNews':   // обновить новость 
    updateNews(); 
    break; 
  case 'deleteNews':   // удалить новость 
    deleteNews(); 
    break; 


function loginForm() 

  echo '<h1>Вход</h1>'; 
  echo '<form action="'.$_SERVER['PHP_SELF'].'?action=login" method="post">'."\n"; 
  echo 'Логин: <input type="text" name="name" value="" /><br/>'."\n"; 
  echo 'Пароль: <input type="password" name="pass" value="" /><br/>'."\n"; 
  echo '<input type="submit" name="submit" value="Отправить" />'."\n"; 
  echo '</form>'."\n"; 


function login() 

  if ( !isset( $_POST['name'] ) or !isset( $_POST['name'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  if ( $_POST['name'] == LOGIN and $_POST['pass'] == PASSWORD ) { 
    $_SESSION['auth'] = true; 
  } 
  header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
  die(); 


function newsList() 

  // Доступ только для авторизованного пользователя 
  if ( !isset( $_SESSION['auth'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  echo '<h1>Новости</h1>'; 
  echo '<p><a href="'.$_SERVER['PHP_SELF'].'?action=addNewsForm">Добавить</a></p>'."\n"; 
  $file = file( 'news.txt' ); 
  $total = count( $file ); 
  if ( $total > 0 ) { 
    echo '<table border="1">'."\n"; 
    echo '<tr><th>N</th><th>Дата</th><th>Заголовок</th><th>Ред.</th><th>Удл.</th></tr>'."\n"; 
    for ( $i = $total-1; $i >= 0; $i-- ) { 
      $tmp = explode('¤', $file[$i] ); 
      echo '<tr><td>'.$i.'</td><td>'.$tmp[0].'</td><td>'.$tmp[1].'</td>'; 
      echo '<td><a href="'.$_SERVER['PHP_SELF'].'?action=editNewsForm&number='.$i.'">Ред.</a></td>'; 
      echo '<td><a href="'.$_SERVER['PHP_SELF'].'?action=deleteNews&number='.$i.'">Удл.</a></td></tr>'."\n"; 
    } 
    echo '</table>'."\n"; 
  } else { 
    echo '<p>Нет новостей</p>'."\n"; 
  }  


function addNewsForm() 

  if ( !isset( $_SESSION['auth'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  echo '<h1>Добавить новость</h1>'; 
  echo '<form action="'.$_SERVER['PHP_SELF'].'?action=addNews" method="post">'."\n"; 
  echo 'Заголовок: <input type="text" name="title" value="" /><br/>'."\n"; 
  echo 'Новость:<br/> <textarea  no wrap rows=30 cols=90 name="body"></textarea><br/>'."\n"; 
  echo '<input type="submit" name="submit" value="Отправить" />'."\n"; 
  echo '</form>'."\n";  


function addNews() 

  if ( !isset( $_SESSION['auth'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  if ( empty( $_POST['title'] ) or empty( $_POST['body'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $date =date( ' d.M.y  _  H.i.S'); 
  $title = trim( $_POST['title'] ); 
  $body = trim( $_POST['body'] ); 
  // Когда из поля textarea передаются данные, содержащие  
  // перевод строки, то они передаются в виде CRLF 

  // CR - возврат каретки, LF - перевод строки; 
  // Поскольку мы записываем новости в файл, где одна 
  // новость - одна строка, то нам надо избавиться от 
  // перевода строки. При редактировании новости произведем 
  // обратную замену. 
  $body = str_replace("\r\n", '_CRLF_', $body); 
  // Добавляем новость   
  if ( $fp = fopen('news.txt', 'a') ) { 
    // Ставим на файл исключительную блокировку 
    if ( flock($fp, LOCK_EX) ) { 
      fwrite( $fp, $date.'¤'.$title.'¤'.$body.NEW_LINE ); 
      flock( $fp, LOCK_UN ); 
    } 
    fclose( $fp ); 
  } 
  header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
  die(); 


function editNewsForm() 

  if ( !isset( $_SESSION['auth'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  if ( !isset( $_GET['number'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $number = (int)$_GET['number']; 
  // Получаем из файла news.txt новость для редактирования 
  $file = file( 'news.txt' ); 
  $cnt = count( $file ); 
  if ( $number < 0 or $number >= $cnt ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $news = explode( '¤', $file[$number] ); 
  $news[2] = trim($news[2]); 
  $news[2] = str_replace( '_CRLF_', "\r\n", $news[2] ); 
  echo '<h1>Редактировать новость</h1>'; 
  echo '<form action="'.$_SERVER['PHP_SELF'].'?action=updateNews&number='.$number.'" method="post">'."\n"; 
  echo 'Заголовок: <input type="text" name="title" value="'.$news[1].'" /><br/>'."\n"; 
  echo 'Новость:<br/> <textarea  no wrap rows=30 cols=90 name="body">'.$news[2].'</textarea><br/>'."\n"; 
  echo '<input type="submit" name="submit" value="Отправить" />'."\n"; 
  echo '</form>'."\n";  


function updateNews() 

  if ( !isset( $_SESSION['auth'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  if ( !isset( $_GET['number'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  if ( empty( $_POST['title'] ) or empty( $_POST['body'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $number = (int)$_GET['number']; 
  // Получаем из файла news.txt новость для редактирования 
  $file = file( 'news.txt' ); 
  $cnt = count( $file ); 
  if ( $number < 0 or $number >= $cnt ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  $title = trim( $_POST['title'] ); 
  $body = trim( $_POST['body'] ); 
  $body = str_replace( "\r\n", '_CRLF_', $body );  
  $tmp = explode( '¤', $file[$number] ); 
  $file[$number] = $tmp[0].'¤'.$title.'¤'.$body.NEW_LINE; 
  // Перезаписываем файл 
  if ( $fp = fopen('news.txt', 'w') ) { 
    if (flock($fp, LOCK_EX)) { 
      foreach ( $file as $line ) fwrite($fp, $line); 
      flock($fp, LOCK_UN); 
    } 
    fclose($fp); 
  } 
  header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
  die(); 


function deleteNews() 

  if ( !isset( $_SESSION['auth'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=loginForm' ); 
    die(); 
  } 
  if ( !isset( $_GET['number'] ) ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  }  
  $number = (int)$_GET['number']; 
  // Получаем из файла news.txt новость для удаления 
  $file = file( 'news.txt' ); 
  $cnt = count( $file ); 
  if ( $number < 0 or $number >= $cnt ) { 
    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
    die(); 
  } 
  // Удаляем новость 
  unset($file[$number]); 
  // Перезаписываем файл 
  if ( $fp = fopen('news.txt', 'w') ) { 
    if ( flock($fp, LOCK_EX) ) { 
      foreach ( $file as $line ) fwrite( $fp, $line ); 
      flock($fp, LOCK_UN); 
    } 
    fclose($fp); 
  } 
  header( 'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' ); 
  die(); 



?>

<html>
<head><title>Вход в Администраторкий центр</title>
Powered by <a href="http://hotforexnews.ru">Hotforexnews</a>
</head>
</html>


Так вот ребят помогите пожалуйста сделать такую функцию чтобы например через 10 новостей автоматически старые новости поподали в архив.
Срочно нужно.
Всем заранее спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0658 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.