Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2013, 21:08   #1
ken_ukeng
Новичок
Джуниор
 
Регистрация: 06.01.2013
Сообщений: 2
По умолчанию Редактирование

Есть исходный код.

Как переделать код так,что б статью можно было редактировать надав на заголовок статьи,а не на ссылку "ред",как реализовано в коде.

PHP код:
 <?php
define
'LOGIN''mylogin' );
define'PASSWORD''mypassword' );
define'NEW_LINE'"\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 ) {
    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";
  } 
}
ken_ukeng вне форума Ответить с цитированием
Старый 06.01.2013, 21:09   #2
ken_ukeng
Новичок
Джуниор
 
Регистрация: 06.01.2013
Сообщений: 2
По умолчанию Продолжение кода

PHP код:
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 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');
  
$title trim$_POST['title'] );
  
$body trim$_POST['body'] );
  if ( 
$fp fopen('news.txt''a') ) {
    if ( 
flock($fpLOCK_EX) ) {
      
fwrite$fp$date.'¤'.$title.'¤'.$body.NEW_LINE );
      
flock$fpLOCK_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'];
  
$file file'news.txt' );
  
$cnt count$file );
  if ( 
$number 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 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'];
  
$file file'news.txt' );
  
$cnt count$file );
  if ( 
$number 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($fpLOCK_EX)) {
      foreach ( 
$file as $line fwrite($fp$line);
      
flock($fpLOCK_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'];
  
$file file'news.txt' );
  
$cnt count$file );
  if ( 
$number or $number >= $cnt ) {
    
header'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' );
    die();
  }
  unset(
$file[$number]);
  if ( 
$fp fopen('news.txt''w') ) {
    if ( 
flock($fpLOCK_EX) ) {
      foreach ( 
$file as $line fwrite$fp$line );
      
flock($fpLOCK_UN);
    }
    
fclose($fp);
  }
  
header'Location: '.$_SERVER['PHP_SELF'].'?action=newsList' );
  die();
}
?> 
ken_ukeng вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
редактирование таблицы marales Помощь студентам 0 12.03.2011 08:21
Редактирование БД в Access Апотамкин Помощь студентам 2 01.03.2011 06:00
Редактирование БД son_of_koshi Помощь студентам 5 05.08.2010 11:31
Редактирование Valera24 Помощь студентам 9 11.06.2009 19:41
Редактирование AntiZero Помощь студентам 2 12.11.2007 18:02