Нужно скрипт в котором будет три файла: назовем их add.php, info.php и base.txt. add.php должен добавлять информацию в base.txt, а info.php должен считывать инфу из base.txt и выводить её в виде таблицы. В add.php должно быть 4 поля: Картинка: Название статьи: Информация: Ссылка откуда взято: А в info.php должно это отображаться в таблице: Картинка | Название статьи | Информация | Ссылка И нужно, чтоб при клике на заголовок "Название статьи" эти все статьи выстраивались в алфавитном порядке. Пример на картинках: add.php: info.php:
add.php Code: <?php $file = 'base.txt'; $a = $_POST['picture']; $b = $_POST['article']; $c = $_POST['info']; $d = $_POST['link']; if(!$a || !$b || !$c || !$d) { echo('<style> input[type="text"] { width: 300px; } </style> <title>Добавление статей</title> <form method="POST"> <table> <tr><td><b>Картинка</b></td><td><input type="text" name="picture"></td></tr> <tr><td><b>Название статьи</b></td><td><input type="text" name="article"></td></tr> <tr><td><b>Информация</b></td><td><input type="text" name="info"></td></tr> <tr><td><b>Ссылка</b></td><td><input type="text" name="link"></td></tr> </table> <input type="submit" value="Создать"> </form>'); } else { $fopen = fopen($file, 'a'); $boolean = fwrite($fopen, base64_encode($a).' | '.base64_encode($b).' | '.base64_encode($c).' | '.base64_encode($d)); fclose($fopen); if((bool)$boolean == true) { echo('<title>Статья успешно добавлена</title><b>Статья успешно добавлена</b>'); } else { echo('<title>Статья не добавлена</title><b>Статья не добавлена</b>'); } } ?> info.php Code: <?php $file = file_get_contents('base.txt'); if($file) { echo('<title>Статейки</title><table><tr><td>Картинка</td><td>Название статьи</td><td>Информация</td><td>Ссылка</td></tr>'); foreach(explode("\n", $file) as $article) { list($a, $b, $c, $d) = explode(" | ", $article); $a = base64_decode($a); $b = base64_decode($b); $c = base64_decode($c); $d = base64_decode($d); echo('<tr><td><img src="'.$a.'"></td><td>'.$b.'</td><td>'.$c.'</td><td>'.$d.'</td></tr>'); } echo('</table>'); } else { echo('<title>Статей нет</title><b>Статей нет</b>'); } ?> Вроди всё. Я не проверял и фильтров никаких не делал. Надо будет - сделаешь.
Попробуй это (все одним файлом): PHP: <? if(isset($_GET['add'])) { print ' <form method="post"> <table border="1"> <tr> <td>Картинка</td> <td><input type="text" name="pic"></td> </tr> <tr> <td>Название статьи</td> <td><input type="text" name="sname"></td> </tr> <tr> <td>Информация</td> <td><input type="text" name="info"></td> </tr> <tr> <td>Cсылка</td> <td><input type="text" name="link"></td> </tr> </table> <input type="submit" value="Создать"> </form> '; } if(isset($_POST['pic']) && isset($_POST['sname']) && isset($_POST['info']) && isset($_POST['link'])) { $pic = $_POST['pic']; $sname = $_POST['sname']; $info = $_POST['info']; $link = $_POST['link']; $fh = fopen('base.txt', 'a') or die("Can't open file"); fwrite($fh,$pic.";;".$sname.";;".$info.";;".$link."\n"); fclose($fh); } if(isset($_GET['show'])) { print ' <table border="1"> <tr> <th>Картинка</th> <th>Название статьи</th> <th>Информация</th> <th>Ссылка</th> </tr> '; $data = file('base.txt'); foreach($data as $line) { list ($pic, $sname, $info, $link) = explode(";;",$line); echo '<tr><td><img src="'.$pic.'"></td><td>'.$sname.'</td><td>'.$info.'</td><td><a href="'.$link.'">'.$link.'</a></td></tr>'; } echo '</table>'; } ?> Соответственно для добавления пишешь script.php?add, а для отображения ?show
Kaimi, спасибо. Самое оно. Не хватает только, чтоб при клике на заголовок "Название статьи" эти все статьи выстраивались в алфавитном порядке. И если не затруднит, то запаролить как-нибудь index.php?add.
С паролем будет так: PHP: <? $name='21232f297a57a5a743894a0e4a801fc3'; // admin $pass='21232f297a57a5a743894a0e4a801fc3'; // admin if(isset($_GET['add'])) { if (!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER'])!=$name || md5($_SERVER['PHP_AUTH_PW'])!=$pass) { header("WWW-Authenticate: Basic realm=\"Google\""); header("HTTP/1.0 401 Unauthorized"); exit("<b><a href=http://google.com>Google</a> : Access Denied</b>"); } print ' <form method="post"> <table border="1"> <tr> <td>Картинка</td> <td><input type="text" name="pic"></td> </tr> <tr> <td>Название статьи</td> <td><input type="text" name="sname"></td> </tr> <tr> <td>Информация</td> <td><input type="text" name="info"></td> </tr> <tr> <td>Cсылка</td> <td><input type="text" name="link"></td> </tr> </table> <input type="submit" value="Создать"> </form> '; } if(isset($_POST['pic']) && isset($_POST['sname']) && isset($_POST['info']) && isset($_POST['link'])) { $pic = $_POST['pic']; $sname = $_POST['sname']; $info = $_POST['info']; $link = $_POST['link']; $fh = fopen('base.txt', 'a') or die("Can't open file"); fwrite($fh,$pic.";;".$sname.";;".$info.";;".$link."\n"); fclose($fh); } if(isset($_GET['show'])) { echo ' <table border="1"> <tr> <th>Картинка</th> <th>Название статьи</th> <th>Информация</th> <th>Ссылка</th> </tr> '; $data = file('base.txt'); foreach($data as $line) { list ($pic, $sname, $info, $link) = explode(";;",$line); echo '<tr><td><img src="'.$pic.'"></td><td>'.$sname.'</td><td>'.$info.'</td><td><a href="'.$link.'">'.$link.'</a></td></tr>'; } echo '</table>'; } ?>
Всё прекрасно, но опять же не хватает только, чтоб при клике на заголовок "Название статьи" эти все статьи выстраивались в алфавитном порядке. Жду абдейта)))
PHP: <? $name='21232f297a57a5a743894a0e4a801fc3'; // admin $pass='21232f297a57a5a743894a0e4a801fc3'; // admin if(isset($_GET['add'])) { if (!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER'])!=$name || md5($_SERVER['PHP_AUTH_PW'])!=$pass) { header("WWW-Authenticate: Basic realm=\"Google\""); header("HTTP/1.0 401 Unauthorized"); exit("<b><a href=http://google.com>Google</a> : Access Denied</b>"); } print ' <form method="post"> <table border="1"> <tr> <td>Картинка</td> <td><input type="text" name="pic"></td> </tr> <tr> <td>Название статьи</td> <td><input type="text" name="sname"></td> </tr> <tr> <td>Информация</td> <td><input type="text" name="info"></td> </tr> <tr> <td>Cсылка</td> <td><input type="text" name="link"></td> </tr> </table> <input type="submit" value="Создать"> </form> '; } if(isset($_POST['pic']) && isset($_POST['sname']) && isset($_POST['info']) && isset($_POST['link'])) { $pic = $_POST['pic']; $sname = $_POST['sname']; $info = $_POST['info']; $link = $_POST['link']; $fh = fopen('base.txt', 'a') or die("Can't open file"); fwrite($fh,$pic.";;".$sname.";;".$info.";;".$link."\n"); fclose($fh); } if(isset($_GET['show'])) { echo ' <table border="1"> <tr> <th>Картинка</th> <th><a href="?show&sort">Название статьи</a></th> <th>Информация</th> <th>Ссылка</th> </tr> '; $data = file('base.txt'); foreach($data as $line) { list ($pic, $sname, $info, $link) = explode(";;",$line); $array[] = array("pic" => $pic, "sname" => $sname, "info" => $info, "link" => $link); } if(isset($_GET['sort'])) {$array = msort($array, "sname");} foreach($array as $key) { list ($pic, $sname, $info, $link) = $key; echo '<tr><td><img src="'.$key[pic].'"></td><td>'.$key[sname].'</td><td>'.$key[info].'</td><td><a href="'.$key[link].'">'.$key[link].'</a></td></tr>'; } echo '</table>'; } function msort($array, $id="id") { $temp_array = array(); while(count($array)>0) { $lowest_id = 0; $index=0; foreach ($array as $item) { if (isset($item[$id]) && $array[$lowest_id][$id]) { if ($item[$id]<$array[$lowest_id][$id]) { $lowest_id = $index; } } $index++; } $temp_array[] = $array[$lowest_id]; $array = array_merge(array_slice($array, 0,$lowest_id), array_slice($array, $lowest_id+1)); } return $temp_array; } ?>
А какой код и куда нужно добавить, чтоб статьи отображались в противоположном порядке их добавления? Т.е. последняя статья которую добавили расположена в самом верху. И нужно в колонки "ссылка" сделать так, чтоб если ссылка длинее заданного параметра, то её имя сокращалось. Пример: HTML: <a href="http://ssika.tut/index.php">ssilka.tut/ind...</a>
Делай как я: собирай все новости в массив, затем юзай функцию array_chunk(), а доступ делай примерно такой: $array_news[$_GET['page']-1].