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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека самых бесполезных кусков кода, или как не стоит писать на РНР 
:(
    Опции темы
smartov
Дата 8.10.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Что-то пост не совсем по теме. Описки бывают. Бывает что сидишь и тупо не видишь что ошибся в написании
Тут тема не про это.
PM MAIL   Вверх
mr.fox
Дата 8.10.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



smartov, ну я не знаю, такое не заметить очень уж сложно
PM MAIL WWW ICQ   Вверх
AztEK
Дата 25.10.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Недавний прикол с bash.org.ru :
Цитата

<Шелезяка[work]> подскажите плиз как проверить существует ли таблица в базе mysql
<Есть> if (mysql_query('DROP TABLE таблица')) echo "таблица существовала";


Не совсем в тему, но поржал  smile  smile 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Ground
Дата 29.10.2006, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 27.2.2006
Где: Комсомольск

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



Подскажите как можно упрощать такой код:

Код

function view() {
    echo ('<p align = "center"><b>'.$row["name"].'</b></p>'.$row["rasskaz"].'<p>Автор: '.$row["author"].'</p>');}

    if (isset($_GET['id'])) {

        switch($id) {
            case 1:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 0,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 2:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 1,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 3:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 2,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 4:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 3,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 5:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 4,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 6:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 5,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 7:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 6,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 8:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 7,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 9:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 8,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 10:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 9,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 11:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 10,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 12:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 11,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 13:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 12,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 14:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 13,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 15:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 14,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 16:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 15,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 17:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 16,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 18:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 17,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 19:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 18,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            case 20:
                $sql = 'SELECT * FROM `rasskaz` LIMIT 19,1';
                $result = mysql_query($sql, $connect);
                while ($row = mysql_fetch_assoc($result)) {view();}
            break;
            default:
             echo("Рассказ не обнаружен");
            }}


PM MAIL ICQ   Вверх
Vaulter
Дата 29.10.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Ground, скрепя зубами... smile


--------------------
PM MAIL WWW ICQ   Вверх
клоп
Дата 30.10.2006, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

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



Решил написать свой пост тут, т.к. не уверен в правильности своего решения.

Делаю скрипт онлайн матча 2х команд.

Файл 1 , доступен по паролю (статист в онлайне сидит и забивает результаты в форму)
Код

// кусок PHP кода

//-----------------------------------------------------
// Запись очков команды A
//-----------------------------------------------------
    
$data_score_a = ".htscore_a";
$fp_score_a=@fopen($data_score_a,"w");
flock($fp_score_a, LOCK_EX);
fwrite($fp_score_a,"$score_a_1|$score_a_2|$score_a_3|$score_a_4|$score_a_1ot|$score_a_2ot");
flock($fp_score_a, LOCK_UN);
fclose($fp_score_a);

//-----------------------------------------------------
// Запись очков команды Б
//-----------------------------------------------------
    
$data_score_b = ".htscore_b";
$fp_score_b=@fopen($data_score_b,"w");
flock($fp_score_b, LOCK_EX);
fwrite($fp_score_b,"$score_b_1|$score_b_2|$score_b_3|$score_b_4|$score_b_1ot|$score_b_2ot");
flock($fp_score_b, LOCK_UN);
fclose($fp_score_b);

// кусок XTML блока

<td bgcolor=#fff3ce class="c" width="26"><input type=text size=1 name="score_a_1" value="<?echo $_POST['score_a_1']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#fff3ce class="c" width="26"><input type=text size=1 name="score_a_2" value="<?echo $_POST['score_a_2']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#fff3ce class="c" width="26"><input type=text size=1 name="score_a_3" value="<?echo $_POST['score_a_3']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#fff3ce class="c" width="26"><input type=text size=1 name="score_a_4" value="<?echo $_POST['score_a_4']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#fff3ce class="c" width="26"><input type=text size=1 name="score_a_1ot" value="<?echo $_POST['score_a_1ot']?>" maxlength=3 class="txtinpyellow"></td>
<td bgcolor=#fff3ce class="c" width="26"><input type=text size=1 name="score_a_2ot" value="<?echo $_POST['score_a_2ot']?>" maxlength=3 class="txtinpyellow"></td>
------------------------
------------------------
<td bgcolor=#dee7ef class="c" width="26"><input type=text size=1 name="score_b_1" value="<?echo $_POST['score_b_1']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#dee7ef class="c" width="26"><input type=text size=1 name="score_b_2" value="<?echo $_POST['score_b_2']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#dee7ef class="c" width="26"><input type=text size=1 name="score_b_3" value="<?echo $_POST['score_b_3']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#dee7ef class="c" width="26"><input type=text size=1 name="score_b_4" value="<?echo $_POST['score_b_4']?>" maxlength=3 class="txtinp"></td>
<td bgcolor=#dee7ef class="c" width="26"><input type=text size=1 name="score_b_1ot" value="<?echo $_POST['score_b_1ot']?>" maxlength=3 class="txtinpblue"></td>
<td bgcolor=#dee7ef class="c" width="26"><input type=text size=1 name="score_b_2ot" value="<?echo $_POST['score_b_2ot']?>" maxlength=3 class="txtinpblue"></td>
-----------------------
-----------------------
<input name='check'  type='submit' class='buttinp' value='Обновить статистику'></td>


Файл 2 , доступен всем (обновляется через определенное время)
Код

<META http-equiv=refresh content="10;">

// кусок кода показывающего результат

<td bgcolor=#fff3ce class="c" width="26">
<?php
$score_file_a = @fopen("data/.htscore_a", "r"); 

         $line  = fgets($score_file_a);
         $arr_score_a = explode("|", $line);
         if($arr_score_a[0] == ""){$arr_score_a[0] = "-";}
         echo "$arr_score_a[0]";

@fclose($score_file_a);
?>
</td>
<td bgcolor=#fff3ce class="c" width="26">
<?php
$score_file_a = @fopen("data/.htscore_a", "r"); 

         $line  = fgets($score_file_a);
         $arr_score_a = explode("|", $line);
         if($arr_score_a[1] == ""){$arr_score_a[1] = "-";}
         echo "$arr_score_a[1]";

@fclose($score_file_a);
?>
</td>
<td bgcolor=#fff3ce class="c" width="26">
<?php
$score_file_a = @fopen("data/.htscore_a", "r"); 

         $line  = fgets($score_file_a);
         $arr_score_a = explode("|", $line);
         if($arr_score_a[2] == ""){$arr_score_a[2] = "-";}
         echo "$arr_score_a[2]";

@fclose($score_file_a);
?>
</td>
--------------------
--------------------

И так далее ....


Как видете, чтоб показать какой либо результат, а их может быть не один десяток и находиться они могут в разных местах страницы (файл 2) приходиться каждый раз открывать файл и считывать, что не есть хорошо как мне кажется. Как быть?
--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
smartov
Дата 30.10.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Ground
Цитата(Ground @  29.10.2006,  07:05 Найти цитируемый пост)
Подскажите как можно упрощать такой код:

Лёгко. Смотри. У тебя повторяются одни и те же строки 20(!!) раз. Извеняются только границы выборки. 
Логично что надо просто организовать условие и всё.

Код
function view() 
{
    echo '<p align = "center"><b>'.$row["name"].'</b></p>'.$row["rasskaz"].'<p>Аффтар: '.$row["author"].'</p>';
}
    
if (!isset($_GET['id']))
{
    echo "Это типо захачить хотел?";
    exit;
}

if ($id > 20)
{
    echo("Рассказ не обнаружен");
    exit;
}

$sql = 'SELECT * FROM `rasskaz` LIMIT '.($id-1).',1';
$result = mysql_query($sql, $connect);
while ($row = mysql_fetch_assoc($result)) 
{
    view();
}




клоп, навскидку (писал по быстрому. может ошибки будут, но думаю смысл поймешь)
Файл 2 будет таким
Код

<META http-equiv=refresh content="10;">
// кусок кода показывающего результат
<?

if (!file_exists("data/.htscore_a"))
{
    echo "Извините. Произошла офигенная ошибка.";
    exit;
}

$arr_score_a = file("data/.htscore_a");//весь файл массивом строк

foreach ($arr_score_a as $line)
{
$line_array = explode("|", $line);//строка массивом scores
foreach ($line_array as $score)
    echo '<td bgcolor=#fff3ce class="c" width="26">'.($score ? $score : '-').'</td>';
}

?>

PM MAIL   Вверх
клоп
Дата 30.10.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 28.2.2006
Где: г. Череповец

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



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

foreach ($arr_score_a as $line)
{
$line_array = explode("|", $line);//строка массивом scores
foreach ($line_array as $score)
    echo '<td bgcolor=#fff3ce class="c" width="26">'.($score ? $score : '-').'</td>';
}

--------------------
Всякая чепуха посещает голову, когда она пуста ....
PM MAIL WWW   Вверх
smartov
Дата 30.10.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



клоп, тебе нужна только первая строчка из файла? Ну тогда читай только ее. Одним циклом меньше.
PM MAIL   Вверх
Vaulter
Дата 5.11.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

$inArray = array("'", ";", "/**/", "/UNION/", "/SELECT/", "AS ");
if (strpos($_SERVER['PHP_SELF'], "trackback") === false) {
    foreach($inArray as $res) {
        if(stristr($_SERVER['QUERY_STRING'], $res)) {
            die("Access denied.");
        }
    }
}

вчитайтесь внимательно. особенно "Access denied."!!!
однако: www.e107.org !!!


--------------------
PM MAIL WWW ICQ   Вверх
smartov
Дата 5.11.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Vaulter, я подобное видел в коде phpbb. Методы защиты конечно так себе.
PM MAIL   Вверх
Mystery_of_being
Дата 8.11.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне кажется он просто полный новичок. Я когда только учил тоже был упорным типам.  )) Вы когда начинали глупочти не делали ??


Я вот писал  

If( ... )
{

Делам что-то

}
else
{

А тут пусто. Думал если не будет Элс то будет ошибка ))) 

}

Это сообщение отредактировал(а) Mystery_of_being - 8.11.2006, 00:58
PM MAIL WWW ICQ   Вверх
smartov
Дата 8.11.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Mystery_of_being, к чему ты это написал? Представленный Вольтером код писал не новичок однозначно.
По крайней мере не настолько новичок чтобы думать что если else не написать то будет ошибка.
PM MAIL   Вверх
BuShaRt
Дата 29.11.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: -1
Всего: 6



Mystery_of_being
Почему не писал так?

Код

if ($var) {
    //---
} elseif ($var) {
    //---
} else {
    //---
}


Это сообщение отредактировал(а) BuShaRt - 29.11.2006, 14:09
PM MAIL   Вверх
coyl
Дата 4.1.2007, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Жесть конечно все это, но я вот сейчас получил проект. Посмотрев на код, я понял, что дал бы ему максимум 15 штук рублей за и то только за то, что время потратил на написание 5 мегов кода.
Когда я стал углубляться, чтобы внести срочные изменения, я просто проклял его (все вышеперечисленные ошибки там были, структурирование, видимо було для него незнакомым словом ифы и элсы, содержащие по 300 строк кода ит.д. ит.п.) и понял, что не дал бы ему и 15 штук...
Так вот представьте мой ужОс, когда я узнал, что этот "кодер" получил за написание этой системы (внимание внимание) 170 000 рублей. Поприветствуем его заказчиков)))
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




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


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

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