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

Форум АНТИЧАТ (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=66464)

InfernoNet 05.04.2008 13:54

Добавление инфы
 
Нужно скрипт в котором будет три файла: назовем их add.php, info.php и base.txt.
add.php должен добавлять информацию в base.txt, а info.php должен считывать инфу из base.txt и выводить её в виде таблицы.
В add.php должно быть 4 поля:
Картинка:
Название статьи:
Информация:
Ссылка откуда взято:

А в info.php должно это отображаться в таблице:
Картинка | Название статьи | Информация | Ссылка

И нужно, чтоб при клике на заголовок "Название статьи" эти все статьи выстраивались в алфавитном порядке.

Пример на картинках:

add.php:
http://up.li.ru/files/2008/04/05/346861.jpg;add.jpg

info.php:
http://up.li.ru/files/2008/04/05/346862.jpg;info.jpg

NOmeR1 05.04.2008 14:20

add.php
Код:

<?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
Код:

<?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>');
        }
?>

Вроди всё. Я не проверял и фильтров никаких не делал. Надо будет - сделаешь.

InfernoNet 05.04.2008 14:28

add.php выдаёт:
Parse error: syntax error, unexpected T_VARIABLE in www/csmaps/add.php on line 3

Kaimi 05.04.2008 14:52

Попробуй это (все одним файлом):
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

InfernoNet 05.04.2008 14:57

Kaimi, спасибо. Самое оно.
Не хватает только, чтоб при клике на заголовок "Название статьи" эти все статьи выстраивались в алфавитном порядке.
И если не затруднит, то запаролить как-нибудь index.php?add.

Kaimi 05.04.2008 15:03

С паролем будет так:
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>';

    }
?>


InfernoNet 05.04.2008 15:14

Всё прекрасно, но опять же не хватает только, чтоб при клике на заголовок "Название статьи" эти все статьи выстраивались в алфавитном порядке.
Жду абдейта)))

Kaimi 05.04.2008 15:47

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($array0,$lowest_id), array_slice($array$lowest_id+1));
        }
        return 
$temp_array;
    }
?>


InfernoNet 06.04.2008 16:21

А какой код и куда нужно добавить, чтоб статьи отображались в противоположном порядке их добавления?
Т.е. последняя статья которую добавили расположена в самом верху.

И нужно в колонки "ссылка" сделать так, чтоб если ссылка длинее заданного параметра, то её имя сокращалось.
Пример:
Код HTML:

<a href="http://ssika.tut/index.php">ssilka.tut/ind...</a>

InfernoNet 11.04.2008 23:55

Цитата:

Сообщение от InfernoNet
А какой код и куда нужно добавить, чтоб статьи отображались в противоположном порядке их добавления?
Т.е. последняя статья которую добавили расположена в самом верху.

И нужно в колонки "ссылка" сделать так, чтоб если ссылка длинее заданного параметра, то её имя сокращалось.
Пример:
Код HTML:

<a href="http://ssika.tut/index.php">ssilka.tut/ind...</a>

Не учёл. Теперь ещё нужно, чтоб по 20 новостей было на одной страничке.
Help me.


Время: 14:51