[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    А причем здесь "submit"? он никогда не будет иссет это ведь кнопка,проверяй на иссет $_POST['a']
     
  2. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    А не подскажите как написать скрипт который допустим будет запускатся раз в 4 дня и чистить таблицу MySQL от записей которые старее 3дней (в таблице есть поле date)


    И ещё вопрос есть массив $a=array(1,2,3,0,0);
    Как можно очистить его от нулей?
     
    #7882 Byrger, 27 Jan 2009
    Last edited: 27 Jan 2009
  3. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    данеужели?
    чтото мне так не кажется :D
     
    2 people like this.
  4. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    +1, если у сабмита будет value и name , то value передасца
     
    1 person likes this.
  5. kevmen

    kevmen Member

    Joined:
    29 Oct 2008
    Messages:
    147
    Likes Received:
    23
    Reputations:
    0
    m0nsieur,спасибо)проверил по другому
    Создал 2файла
    один с htmlentities,другой без, ввел
    Первый вывел : Проверка
    Второй Проверка да еще +выполнился скрипт)
     
    1 person likes this.
  6. kevmen

    kevmen Member

    Joined:
    29 Oct 2008
    Messages:
    147
    Likes Received:
    23
    Reputations:
    0
    rudvil,Я проверяю нажата ли кнопка!!!


    Да,тут все просто))если она есть)то не выдается форма,если нет,то выдается форма,это обычная перменная!
     
    #7886 kevmen, 27 Jan 2009
    Last edited: 27 Jan 2009
  7. m0nsieur

    m0nsieur Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    223
    Likes Received:
    69
    Reputations:
    10
    1. Повесь скрипт на cron который будет вызываться каждые 4 дня.

    2. Попробуй так.
    PHP:
    $a=array(1,2,3,0,0);
    $b = array();
    $i=0;
    foreach (
    $a as $value) {
        if(
    $value != 0) {
             
    $b[$i] = $value;
             
    $i++;
        }
    }
    print_r($b);
     
  8. oRb

    oRb Elder - Старейшина

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Неее, пробовать не надо)
    Правильно так:
    PHP:
    <?php
    $a 
    = array(12300);
    foreach(
    $a as $key => $value)
        if(
    $value == 0)
            unset(
    $a[$key]);
    var_dump($a);
    ?>
     
  9. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Зачем выдумывать велосипед, когда за вас уже всё выдумали:

    PHP:
    function non_zero($var) {
        return (
    $var != 0);
    }


    $array = array(12300);

    print_r(array_filter($array"non_zero"));
     
    2 people like this.
  10. rudvil

    rudvil Elder - Старейшина

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Ой точно, вот намутил... извиняюсь. =[
     
  11. ANTIJABBER

    ANTIJABBER New Member

    Joined:
    6 Jan 2009
    Messages:
    36
    Likes Received:
    0
    Reputations:
    0
    Ребята, как сделать рандомное 16 символьное выражение? из букв и цифр?
     
  12. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    function genPass($len$mix ''

        
    $alpha 'qwertyuiopasdfghjklzxcvbnm1234567890';    #алфавит 
        
    $result '';                                       #результат 
         
        
    $alpha .= $mix#добавляем доп. символы 
         
        
    for($i 0$alphlen strlen($alpha); $i $len$i++) #добавляем в цикле случайные символы 
            
    $result .= $alpha{mt_rand(0$alphlen 1)};     #случайное число из алфавита 
         
        
    return $result#возвращаем результат 
    }
    echo 
    genPass(16);
     
  13. prescott

    prescott Elder - Старейшина

    Joined:
    28 Jul 2008
    Messages:
    132
    Likes Received:
    43
    Reputations:
    5
    PHP:
    function random_word($count)  {
        
    $arr = array('a','b','c','d','e','f',
                     
    'g','h','i','j','k','l',
                     
    'm','n','o','p','r','s',
                     
    't','u','v','x','y','z',
                     
    'A','B','C','D','E','F',
                     
    'G','H','I','J','K','L',
                     
    'M','N','O','P','R','S',
                     
    'T','U','V','X','Y','Z',
                     
    '1','2','3','4','5','6',
                     
    '7','8','9','0');
        
        
    $word "";
        for(
    $i 0$i $number$i++)
        {
          
    $index rand(0count($arr) - 1);
          
    $word .= $arr[$index];
        }
        return 
    $word;
      }

    echo 
    random_word(16);
    Не самое красивое решение, зато простое и интуитивно понятное, щас дам еще второй вариант.

    UPD: опоздал, но сейчас все равно напишу второй вариант, самому пригодится.

    PHP:
    <?php
    function random_word($count) {

    $word="";

        for (
    $i=0$i<$count$i++) {
            do {
            
    $rand=mt_rand(0,66)+65;
            if (
    $rand>122$rand=$rand-74;
            } while (
    $rand>90 && $rand<97);

            
    $word.=chr($rand);
        }
        
    return 
    $word;
    }

    echo 
    random_word(100);
    ?>
    В процессе написания понял, что этот вариант будет сложнее, но тоже рабочий =)
     
    #7893 prescott, 27 Jan 2009
    Last edited: 27 Jan 2009
    1 person likes this.
  14. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Ре адепты!
    Помогите плиз с пхп кодом!
    Кароче цель такова:
    На главную страницу сайта выводятся "краткие новости"
    Мне нужно, чтобы при нажатие на ссылку "подробнее" выводилась полная новость, ну думаю вы поняли о чем я...
    И так, мои дейстия:
    делаю ссылку в цикле главной страници:
    PHP:
    <?
    include
    "config.php";
    {
    $query "SELECT * FROM news order by id desc LIMIT 0,100000"$result mysql_query($query);
    while (
    $row mysql_fetch_array($result)) :
    print
    '<table style="border: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
    <tbody><tr> 
    <td align="center" background="images/button.jpg" height="22">
    <table style="border-bottom: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
    <tbody><tr> 
    <td width="100%" align="left"><CENTER><b>'
    .$row['name'].'</b></CENTER></b></td>
    </tr>
    </tbody></table>
    </td>
    </tr>
    <tr> 
    <td colspan="2" style="padding: 4px;"><noindex><center><tr> 
    <td colspan="2" style="padding: 4px;">
    '
    .$row['text'].'
    <div align="right">
    <div>&nbsp;</div>
    <div>&nbsp;</div>
    Автор:
    <b>bug1z</b>&nbsp;|&nbsp;
    <a href="news.php?id='
    .$row['id'].'"><b>подробнее</b></a>
    </div></td></center></td>
    </tr>

    <tr> 
    <td colspan="2" style="padding: 4px;">
    <div align="right">
    </div></td>
    </tr>
    </tbody></table>
    <div>&nbsp;</div>'
    ;
    endwhile;
    }
    ?>
    затем создаю файл news.php с циклом следуйщего содержания:
    PHP:
    <?
    include
    "config.php";
    $id=$GET['id']; {
    if(
    $id
    echo 
    $news
    $query "SELECT * FROM news where id=".$id$result mysql_query($query);
    while (
    $row mysql_fetch_array($result)) :
    print
    '<table style="border: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
    <tbody><tr> 
    <td align="center" background="images/button.jpg" height="22">
    <table style="border-bottom: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
    <tbody><tr> 
    <td width="100%" align="left"><CENTER><b>'
    .$row['name'].'</b></CENTER></b></td>
    </tr>
    </tbody></table>
    </td>
    </tr>
    <tr> 
    <td colspan="2" style="padding: 4px;"><noindex><center><tr> 
    <td colspan="2" style="padding: 4px;">
    '
    .$row['text2'].'
    <div align="right">
    <div>&nbsp;</div>
    <div>&nbsp;</div>
    Автор:
    <b>bug1z</b>&nbsp;|&nbsp;
    </div></td></center></td>
    </tr>

    <tr> 
    <td colspan="2" style="padding: 4px;">
    <div align="right">
    </div></td>
    </tr>
    </tbody></table>
    <div>&nbsp;</div>'
    ;
    endwhile;
    }
    ?>
    В итоге не выводится ни новость, ни таблица :(
    В чем проблема?
    Зарание спасибо!
     
  15. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    Ошибка в том что $_GET["id"] а не $GET["id"]
     
    2 people like this.
  16. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    2 -m0rgan-
    Первый код полностью рабочий! Если нет смотри подключение к базе.
    Он не может ничего не выводить, что то должен либо верно, либо ошибку, так вот вопрос КАКУЮ ошибку у тебя выводит?
    Второй код ошибка ммм... скорее оЧеПятка :) вот тут
    PHP:
    $id=$GET['id'];
    нужно
    PHP:
    $id=$_GET['id'];
    Потом не совсем ясно зачем у тебя СРАЗУ за этой строкой открыта скобка {
    Если по логике она должна быть после
    if ($id) {
    Ну и последнее, я конечно не знаю что у тебя в config.php
    но откуда у тебе берется значение переменной
    $news в строке echo $news;
    если не откуда то выдаст ошибку
    Notice: Undefined variable: news in ...
     
    1 person likes this.
  17. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    На будущее при компилировании выводи все промежуточные данные.Сразу будешь видеть где ошибка
     
    1 person likes this.
  18. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Не помогло=(
    Первый код пашет, все там гуд :)
    А вот во втором ошибку ни какую не выводит,там, вапше ничего не выводит, ни новости, ни таблички, в которой должна выводтися овость, такое впечетление, что цыкл вапще не обрабатуется :(
    Конфиг:
    PHP:
    <?
    $link mysql_connect(localhostbug1ztest) or die('Не возможно соединиться с базой ('.mysql_error().')'); 
    mysql_select_db(arthacking) or die('Нельзя выбрать базу ('.mysql_error().')');  
    ?>
     
  19. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    Выводи значения $id и строку для скул запроса и убедись что нет ошибок.
     
    2 people like this.
  20. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    include"config.php"
    {
    PHP:
    include"config.php"
    $id=$GET['id']; {
    PHP:
    endwhile; 
    }
    Это чо за скобочки фигурные??? К чему они относятся?

    http://ru.php.net/while

    +

    в начало каждого кода вставь:

    PHP:
    @ini_set("display_errors","1");
     
    #7900 Pashkela, 27 Jan 2009
    Last edited: 27 Jan 2009
Thread Status:
Not open for further replies.