За последние 24 часа нас посетили 60488 программистов и 1751 робот. Сейчас ищут 769 программистов ...

Если есть свободное время гляньте ;)

Тема в разделе "Вопросы от блондинок", создана пользователем nayre, 17 дек 2008.

  1. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    Если есть свободное время гляньте ;)
    можно ли оптимизировать или же изящней написать?????

    сильно не критикуйте я ведь только учусь!!!
    <?php
    if (isset($_GET['subcategories'])) {$subcategories=$_GET['subcategories'];}
    if (isset($_GET['categories'])) {$categories=$_GET['categories'];}
    if (isset($_GET['articles'])) {$articles=$_GET['articles'];}





    /* если не выбрана категория */
    if (!isset($categories))
    {
    echo "<p><a href='new_cat.php'>Создайте категорию...</a></p>";
    echo "<p>или выберите существующую!</p>";
    $resultCategories=mysql_query ("SELECT id,name FROM categories");
    $myrowCategories=mysql_fetch_array($resultCategories);
    do
    {
    /* Выводим категории */
    printf ("<p><a href='edit_post.php?categories=%s'>%s</a></p>",$myrowCategories["id"],$myrowCategories["name"]);
    }
    while ($myrowCategories=mysql_fetch_array($resultCategories));
    }
    /* если не выбрана подкатегория */
    if (isset($categories)&&!isset($subcategories))
    {
    echo "<p><a href='add_subcat.php'>Создайте подкатегорию...</a></p>";
    echo "<p>или выберите существующую!</p>";
    $resultSubCategories=mysql_query ("SELECT id,class FROM subcategories WHERE categories=$categories");
    $myrowSubCategories=mysql_fetch_array($resultSubCategories);
    do
    {
    /* Выводим подкатегории */
    printf ("<p><a href='edit_post.php?categories=$categories&subcategories=%s'>%s</a></p>",$myrowSubCategories["id"],$myrowSubCategories["class"]);
    }
    while ($myrowSubCategories=mysql_fetch_array($resultSubCategories));
    }
    /* если не выбрана статья */
    if (isset($subcategories)&&!isset($articles))
    {
    echo "<p><a href='new_post.php'>Создайте статью...</a></p>";
    echo "<p>или выберите существующую!</p>";
    $resultArticles=mysql_query ("SELECT id,name FROM articles WHERE class=$subcategories");
    $myrowArticles=mysql_fetch_array($resultArticles);
    do
    {
    /* Выводим статьи */
    printf ("<p><a href='edit_post.php?categories=$categories&subcategories=$subcategories&articles=%s'>%s</a></p>",$myrowArticles["id"],$myrowArticles["name"]);
    }
    while ($myrowArticles=mysql_fetch_array($resultArticles));
    }
    /* когда выбрана конкретная статья */
    if (isset($articles)&&isset($subcategories)&&isset($categories))
    {
    $result=mysql_query ("SELECT * FROM articles WHERE id=$articles");
    $myrow=mysql_fetch_array($result);
    /* Выводим конкретную стать. */
    echo "<h2 align='center'>Редактирование статьи такой то!!!</h2>";

    print <<<HERE
    <form name="form1" method="post" action="!update_post.php">
    <p>
    <label>Введите название статьи(не более 20 символов оно необходимо для подменю!)<br>
    <input value="$myrow[name]" type="text" name="name" id="name">
    </label>
    </p>
    <p>
    <label>Введите краткое описание статьи для поисковика<br>
    <input value="$myrow[meta_d]" type="text" name="meta_d" id="meta_d">
    </label>
    </p>
    <p>
    <label>Введите ключевые слова статьи для поисковика<br>
    <input value="$myrow[meta_k]" type="text" name="meta_k" id="meta_k">
    </label>
    </p>
    <p>
    <label>Введите полный текст статьи с HTML тегами абзацев<br>
    <textarea value="$myrow[text]" name="text" cols="40" rows="20" id="text"></textarea>
    </label>
    </p>
    <p>
    <label>Введите название страницы отображаемое в заголовке баузера<br>
    <input value="$myrow[title]" type="text" name="title" id="title">
    </label>
    </p>
    <p>
    <label>Выберите подкатегорию статьи<br>
    <select name="class">
    HERE;
    do
    {
    printf ("<option value='%s'>%s</option>",$myrowSubCategories['id'],$myrowSubCategories['class']);
    }
    while($myrowSubCategories = mysql_fetch_array($resultSubCategories));
    echo" </select>
    </label>
    </p>
    <p>
    <label>Выберите категорию статьи<br>
    <select name='categories'>";
    do
    {
    printf ("<option value='%s'>%s</option>",$myrowCategories['id'],$myrowCategories['name']);
    }
    while($myrowCategories = mysql_fetch_array($resultCategories));
    echo" </select>
    </label>
    </p>
    <p>
    <input name='submit' type='submit' value='Занести в базу' id='submit' />
    </p>
    </form>";
    }
    ?>
    [/php]
     
  2. ShamahN

    ShamahN Активный пользователь

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Можно хотя бы подсветить
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Жесть какая-то.

    Пережитки школьных учительниц.

    :?
     
  4. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Женечка Попоф?
     
  5. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    Да Женечка, вернее попытка отойти от его метода, не увенчавшаяся успехом, так как из за неодстатка знаний код вырос в разы...
    Код то рабоочий, только как то коряво...
    Подсвечивать...да тут все подсвечивать можно...
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Подсветка делается выделением php-кода в форме ответа на тему и нажатием кнопки
    PHP:
    1.  в той же форме.
     
  7. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Индусы?
     
  8. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Евгеша;)
     
  9. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    "Психи! - решил первый.
    Вяжем! - отозвался второй."

    Как-то интересно Женя объясняет про конструкции if. Т.е. if объясняет, а про else не рассказывает....
    Про magic_quotes, проверку данных и циклы, такое впечатление, что ВООБЩЕ никто из его учеников не знает...
     
  10. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
     
  11. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    этой фразой вы все обьяснили и мне сразу стало ВСЕ ПОНЯТНО,
    критиковать других проще а самим как по букварю сложно пошагово ошибки указать
     
  12. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    ТАК ОБЬЯСНИТЕ НА ПРИМЕРЕ КОНКРЕТНОМ!!!
    ТОЛЬКО ДОСТУПНО КАК БЛИН ШКОЛЬНИКУ,
    Я ЖЕ НЕ ПРОГРАММЕР СО СТАЖЕМ,
    месяц всего изучаю
    Я НЕ ТОЛЬКО ЭНДИ ХАРРИСА прочитал почти то же самое, УСТАРЕВШЕЕ НА 3 ГОДА
    ВЫ В СОСТОЯНИИ ПРИМЕР СОВРЕМЕННЫМ КОДОМ ИЗОБРАЗИТЬ!!!!! ;)
    ЖЕНЯ хоть и на примитивном но зато на доступном уровне истины разжевывает , что "вода блин не только течет, но и замерзает, и не надо стирать boot.ini на диске С:"
     
  13. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
  14. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    nayre
    Ну например
    Пишется без do вот так:
    PHP:
    1. <?
    2. while ($myrowArticles=mysql_fetch_array($resultArticles)) {
    3.  /* Выводим статьи */
    4.  printf ("<p><a href='edit_post.php?categories=$categories&subcategories=$subcategories&articles=%s'>%s</a></p>",$myrowArticles["id"],$myrowArticles["name"]);
    5. }
    Вместо
    Лучше писать так:
    PHP:
    1. ?>
    2. </select>
    3. </label>
    4. </p>
    5. <p>
    6. <input name='submit' type='submit' value='Занести в базу' id='submit' />
    7. </p>
    8. </form>
    Ну и т.д.
    В разделе "Прочие вопросы по PHP" есть список рекомендуемой литературы.

    ЗЫ. Подсветка у тебя не сработала, потому что ПЕРЕД кодом нет
    PHP:
    1. .
     
  15. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Хорошо. Объясняю. Хотя бы эта строчка

    Во-первых. Никогда не верь данным, пришедшим от пользователя!
    Если уж хочется напрямую передавать $_GET, то предлагаю сделать так:

    Т.о. мы проверили, что переданные данные являются десятичным числом, больше нуля.

    Во-вторых. Выводить данные ф-ями echo и print можно ,конечно. Но тогда php будет обрабатывать еще и html, а это дополнительные затраты.

    Поэтому проще будет сделать, как написали выше -

     
  16. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
  17. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    СПАСИБО!!! Вот это уже ответ ПРОФЕССИОНАЛА ньюбу-новичку!!!
     
  18. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Пожалуйста...
    Только я не профи)))
    А новичками все были когда-то)) Успехов в программировании)
     
  19. Тигренок

    Тигренок Активный пользователь

    С нами с:
    29 дек 2008
    Сообщения:
    133
    Симпатии:
    0
    Адрес:
    ты такой нарисовался?
    Кто такой Женя Попов? (ну или что такое?) ) На форуме это имя уже несколько раз "обругали", интересно)
     
  20. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
  21. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Да так, задница какая-то.
     
  22. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    Вот ведь , бывает час пытаюсь понять в чем фишка, но ко не работает...
    Взято с ресурса - http://www.ibm.com/developerworks/ru/edu/os-phptut1/section5.html
    Код:
    PHP:
    1.  
    2. <?php
    3.  
    4.  
    5. function validate($allSubmitted){
    6.  
    7.     $message = "";
    8.  
    9.     $passwords = $allSubmitted["pword"];
    10.     $firstPass = $passwords[0];
    11.     $secondPass = $passwords[1];
    12.     $username = $allSubmitted["name"];
    13.  
    14.     if ($firstPass != $secondPass) {
    15.         $message = $message."Passwords don't match<br />";
    16.     }
    17.     if (strlen($username) < 5 || strlen($username) > 50){
    18.         $message = $message."Username must be
    19.        between 5 and 50 characters<br />";
    20.     }
    21.  
    22.     if ($message == ""){
    23.         $message = "OK";
    24.     }
    25.  
    26.     return $message;
    27.  
    28. }
    29. function db_connect($user='wfuser',
    30.                     $password='wfuser', $db='workflow'){
    31.  
    32.   mysql_connect('localhost', $user, $password)
    33.        or die('I cannot connect to db: ' . mysql_error());
    34. }
    35.  
    36.     foreach ($_POST as $key=>$value) {
    37.        echo "<p>".$key." = " . $value . "</p>";
    38.     }
    39.  
    40.     $passwords = $_POST["pword"];
    41.     echo "First password = ".$passwords[0];
    42.     echo "<br />";
    43.     echo "Second password = ".$passwords[1];
    44.  
    45.     if (validate($_POST) == "OK") {
    46.         echo "<p>Thank you for registering!</p>";
    47.        
    48.         db_connect();
    49.  
    50.       $sql = "select username from users where username='".$_POST["name"]."'";
    51.       $result = mysql_query($sql);
    52.       if (!$result) {
    53.  
    54.          $sql = "insert into users (username, email, password) values
    55.       ('".$_POST["name"]."', '".$_POST["email"]."', '".$passwords[0]."')";
    56.          $result = mysql_query($sql);
    57.  
    58.          if ($result){
    59.              echo "It's entered!";
    60.          } else {
    61.              echo "There's been a problem: ".mysql_error();
    62.          }
    63.       } else {
    64.  
    65.          echo "There is already a user with that name: <br />";
    66.          $sqlAll = "select * from users";
    67.          $resultsAll = mysql_query($sqlAll);
    68.          $row = mysql_fetch_array($resultsAll);
    69.          while ($row) {
    70.  
    71.               echo $row["username"]." -- ".$row["email"]."<br />";
    72.  
    73.            $row = mysql_fetch_array($result);
    74.          }
    75.  
    76.       }
    77.       mysql_close();
    78.     } else {
    79.         echo "<p>There was a problem with your registration:</p>";
    80.         echo validate($_POST);
    81.         echo "<p>Please try again.</p>";
    82.     }
    83.  
    84.  
    85.  
    86. ?>
    У меня упорно пишет что такой пользователь в базе есть, хотя ну НЕТ ЕГО ТАМ!!!!
    Уже раза 3 с начала начинал.
    Даже по англицкой версии...
    В 72 там опечатка была ;) вроде серьезный ресурс....
    Вот и думаю может где еще ошибка просто из-за нехватки опыта не вижу.....
     
  23. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    Все работает пока не вставляю код проверки уникальности с 50 стр по 52 и 63 по 69, то есть косяк здесь зарыт ....
    Но в чем хоть убейте не пойму, синтаксис верен..., однако при уникальном имени пишет, нифига мол, оно не уникально и выводит в качестве примера 1 запись в базе....
     
  24. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Значит, он там есть....
     
  25. nayre

    nayre Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    29
    Симпатии:
    0
    ДАаа...Риторический ответ.
    Просто моих знаний не хватает что бы увидеть где, вот и спрашиваю...
    На РУ сайте IBM были опечатки, а когда трижды код проверял их исправил, работать не стало проситал EN версию того же мануала, хоть убейте не вижу что мешает...