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

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

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

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

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Ошибку не какю не выводит... но функцию удаления скрипт не выполняет....

    Есть файл tags.php
    И есть скрипт который по имени ссылки должен её стерать...
    Если мы в форму вводим имя этой ссылки "Добавление контента", то скрипт её стирет

    Но если мы введем имя этой ссылки "Настройка граббинга RSS (автонаполнение)", то скрипт её не стирает

    Сам код

    PHP:

    <?php
    if (isset($_POST['butdel']))
    {

        
    $filename=trim($_POST['istagdel']);
       
    preg_match('#<a href="(.+)">'.$filename.'<\/a>,#',  file_get_contents('tags.php'),$res);
        
    $url=$res[1];
        
    $filelinks=file('linklist.txt');
        
    $filelinks=str_ireplace($url,null,$filelinks);
        foreach(
    $filelinks as $filelink)
        {
         if(
    strlen($filelink)>5$goodwr[]=$filelink;
        }

        
    $goodwr=implode("",$goodwr);
        
    $goodlinks fopen("linklist.txt""w");
        
    fwrite($goodlinks$goodwr);
        
    fclose($goodlinks);


        
    $filetags=file('tags.php');
        
    $filetags=preg_replace('#<a href=\"(.*?)\">'.$filename.'</a>,#is',null,$filetags);
        foreach(
    $filetags as $filetag )
        {
        if(
    strlen($filetag)>8$files[]=$filetag;
            }
        
    $files=implode("",$files);
        
    $goodtag fopen("tags.php""w");
        
    fwrite($goodtag$files);
        
    fclose($goodtag);

        


    }
    ?>
    Т.е. если имя ссылки имеет скобки скрипт не хочет работать корректно и удалять нужную ссылку из файла...
     
  2. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    А где нибудь по другому?
    Не рассматриваем процессы и потоки.

    P.s. А при ООП нельзя даже сказать, что будет сначала выполняться - какой класс и т.д. - все нелинейно.
     
    1 person likes this.
  3. SSB1981

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

    Joined:
    7 Jan 2008
    Messages:
    108
    Likes Received:
    9
    Reputations:
    0
    Zircool, если тока в скобках проблема, то используй str_replace("что менять","на что менять","где менять"), а если что-то типа такого !"№;%:?*()_+/@#$^&*()', то пока не знаю буду думать.
     
  4. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    пока не выполнится первая комманда, вторая не будет выполнятся..

    поржал. А типа в других языках всё выполняется в хаотичном порядке? Кто как хочет так и выполняется, да?
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Zircool, учим функцию preg_quote
     
    _________________________
  6. Кубик Рубик

    Joined:
    10 Apr 2008
    Messages:
    48
    Likes Received:
    0
    Reputations:
    0
    Какая функция нужна, чтобы при вводе значения которого нет в БД через GET - например, name=asasas , выводило сообщение о том, что такое имя в Бд не найдено? Спасибо.
     
  7. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    PHP:
    if(!$result){echo"Такое имя в Бд не найдено";}
     
  8. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Подскажите скрипт загрузки картинок как в ворд пресе, нужно чтобы он уменьшал размеры и делал 3 копии, большую, среднюю и малую.
     
  9. SSB1981

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

    Joined:
    7 Jan 2008
    Messages:
    108
    Likes Received:
    9
    Reputations:
    0
    Или quotemeta(), которая возвращает строку, где перед символами
    .\ + * ? [ ^ ] ( $ ) ставится обратный слеш.
     
  10. emik

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

    Joined:
    20 Dec 2007
    Messages:
    57
    Likes Received:
    18
    Reputations:
    2
    $s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');

    if ($s == '' ) { echo 'такого значения нет'};

    логика думаю должна быть понятна, но в синтаксисе ошыбки есть
     
  11. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    if ($s == '' )
    жесть, смотри чё mff написал
    if (!$s)
     
  12. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Какая разница?
     
  13. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Не не не,
    if(!mysql_num_rows($s)) echo 'такого значения нет';
    И ваще почему у тебя ; стоит после }
     
    5 people like this.
  14. emik

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

    Joined:
    20 Dec 2007
    Messages:
    57
    Likes Received:
    18
    Reputations:
    2
    я же написал:
     
  15. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    $s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = "'.mysql_real_escape_string($_GET['name']).'");

    if(!$s) echo 'такого значения нет';
     
    #5335 Doom123, 12 Sep 2008
    Last edited: 12 Sep 2008
  16. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    .:EnoT:. используй ф-ции imagecreatefrom*
     
  17. ++Norton++

    ++Norton++ Elder - Старейшина

    Joined:
    20 Nov 2006
    Messages:
    167
    Likes Received:
    39
    Reputations:
    0
    А на счет getimagesize, imagesX и imagesY, если нужно получить высоту и ширину, то скорее всего на какие-то доли секунды быстрее работает первая. А на счет безопасности мне кажется без разницы.
     
  18. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Какой ужос...
    Дня начала, после mysql_query делай выводи echo mysql_error(); он тебе скажит чё нетак
    Но ща я скажу

    $s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
    Нарк? Если юзаеш переменные, надо юзать " а не '

    $s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
    Нарк?! Вот тут синтаксическая ошибка, ковычки друг другу мешают

    $s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
    Нарег?! В `` беруться название таблиц, колонок, БД и всего такого, значения веруться в '' (две одинарные ковычки)

    $s = mysql_query('SELECT * FROM `nazva_stolbca` where `nazva_stolbca` = `$_GET['name']`');
    Дураг?! Этоже SQL Inj! Нужна фильтрация!

    Короче вариант вот такой, юзай:
    $name = mysql_real_escape_string($_GET['name']);
    $s = mysql_query("SELECT * FROM `nazva_tablici` where `nazva_stolbca` = '$name'");

    Что за бред?!
    Яже уже показывал!
    if(!mysql_num_rows($s)) echo 'такого значения нет';

    Вот пробуй свой способ
    PHP:
    $q mysql_query('SELECT * FROM `mysql`.`user` WHERE 1=2');
    if(!
    $q) echo 'error'; else echo 'ok';
    Это запрос ничего не вернёт, но скрипт выведет OK т.к. переменная $s существует и она содержит информацию (пустую, но содержит)
    Такчто ни в коем случае нельзя юзать if(!$q)
    !$q сработает только если mysql_query вызвало ошибку
     
    #5338 Ponchik, 12 Sep 2008
    Last edited: 12 Sep 2008
    1 person likes this.
  19. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Ага, а ты об оперативной памяти подумал? Данная функция подгружает весь файл в память, затем создаёт на его основе новую картинку...

    imagesX() и imagesY() определённо работают быстрее, плюс не забивают память всякой чепухой, как это делает getimagesize()
     
    #5339 [х26]VОLАND, 12 Sep 2008
    Last edited: 12 Sep 2008
    4 people like this.
  20. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    Это не пхп, а простой JS...

    PHP:
    function openEx(url

      
    window.open(); 
      
    w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">'); 
      
    w.document.close(); 
      return 
    false
    Заменяешь ссылку на вот это:

    <span onclick="return openEx('http://www.ссылка.ru');">www.ссылка.ru</span>

    Функция openEx(), открывающая новое окно, не передаёт реферрер...

    //Мда, людской ламеризм порой поражает. Тут даже JS знать не надо - тупо заглянуть в сорц....
     
    #5340 [х26]VОLАND, 12 Sep 2008
    Last edited: 12 Sep 2008
Thread Status:
Not open for further replies.