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

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

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

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Вот код:
    PHP:
    // если есть переменная search_p (поиск)
    if(isset($_GET['search_p']) && !is_array($_GET['search_p'])){
        
    $tns_title="Результат поиска";
        
    $search_p substr(htmlspecialchars(urldecode(trim($_GET['search_p'])), ENT_QUOTES), '0''1000');
        echo 
    $search_p;
        if(
    $a_a==0){
            if(
    mb_strlen($_GET['search_p'])>2){
                
    //echo mb_strlen($_GET['search']);        
                
    $result mysql_query("SELECT * FROM `base_` WHERE `show`='1' AND `channel` LIKE '%".$search_p."%' OR `description_rus` LIKE '%".$search_p."%' OR `description_eng` LIKE '%".$search_p."%' OR `site` LIKE '%".$search_p."%' OR `tags` LIKE '%".$search_p."%' ORDER BY `channel` ASC");        
            }
        }
        if(
    $a_a==1){
            
    $result mysql_query("SELECT * FROM `base_` WHERE `show`='1' AND `channel` LIKE '%".$search_p."%' OR `description_rus` LIKE '%".$search_p."%' OR `description_eng` LIKE '%".$search_p."%' OR `site` LIKE '%".$search_p."%' OR `tags` LIKE '%".$search_p."%' OR `url` LIKE '%".$search_p."%' ORDER BY `channel` ASC");
        }
    }
    PHP:
    <input type="text" name="search_p" value="<?php echo $search_p?>" style="width:100%;" class="search" />
    :confused: :confused: :confused:
     
  2. SHAXID

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

    Joined:
    13 Dec 2007
    Messages:
    24
    Likes Received:
    17
    Reputations:
    -6
    Вообщем есть форма, с таким кодом:

    HTML:
    <html>  
    <center>  
    <head>    	
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />    	
    <title>Форма подачи заявки</title>   
     </head>   
     <body>   
     <h3>Форма подачи заявки</h3>   
     <form action="save_form.php" method="post">  
    <table border="1" cellpadding="0" cellspacing="0">  
     <tr>    
    <td colspan="2" align="center">
    <strong>Оформление заявки</strong></td></tr>   
    <tr>   
    <td width="150">ФИО преподавателя:</td>    
    <td><input type="text" name="fio" maxlength="30" /></td>   </tr>   
    <tr>    
    <td width="150">Наименование ПО:</td>    
    <td><input type="text" name="po" maxlength="30" /></td>   </tr>  
    <tr> <td width="150">Аудитория:</td>    
    <td><select onchange="document.getElementById('id_1').innerHTML=this.options[this.selectedIndex].value;" name="audit">  <option value="1" selected="selected">6-317  </option> 
     <option value="2">6-319  </option>  
    <option value="3">6-310  </option>  
    <option value="4">6-217  </option>  
    <option value="5">6-217а  </option>  
    <option value="6">6-215  </option>  </select></td>   </tr>   <tr>   
     <td width="150">Неделя:</td>    
    <td><textarea name="nedelya"></textarea></td>   </tr>   <tr>    
    <td colspan="2" align="center">     
    <input type="submit" class="buttons" value="Отправить запрос" />     
    <input type="reset" class="buttons" value="Очистить" />    </td>   </tr>  </table>  </form>      
    <form action="view_data.php" method="post" name="view_result">  
    <table>
    <tr>    
    <td align="center"><input type="submit" class="buttons" value="Посмотреть ранее сохраненные данные" /></td>   </tr>  </table>  </form>    
    <form action="del_data.php" method="post" name="delete_data">  
    <table>
    <tr>
    <td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td>   </tr>  </table>  </form>    <form action="update_data.php" method="post" name="update_data">  
    <table>  
    <tr>   
    <td align="center"><input type="submit" class="buttons" value="Редактирование и обновление данных" /></td> </tr>  </table>  
    </form>  
      </body>  
    </center>  
    </html>
    И, чтобы добавить запись в бд, используется вот этот скрипт:

    PHP:
    <html>  
    <head>  
    <title>Добавление новой записи</title>  </head>  
    <body>  
    <?php  
    $fio 
    $_POST['fio'];  
    $po $_POST['po'];  
    $audit $_POST['audit']; 
    $nedelya $_POST['nedelya']; 
     if (!
    $fio || !$po || !$audit || !$nedelya)    
     die (
    "Не все данные введены.<br> Пожалуйста, вернитесь назад и закончите ввод");  
    $fio trim $fio );   
    $po  trim $po ) ;   
    $fio addslashes $fio );  
    $po  addslashes $po ) ;   
    $db "sample";  
    $link mysql_pconnect(); 
    if ( !
    $link ) die ("Невозможно подключение к MySQL");  mysql_select_db $db ) or die ("Невозможно открыть $db");  $query "INSERT INTO $table SET name='".mysql_real_escape_string($_POST['test_name'])."' ( '".$fio."', '".$po."', '"  .$audit."', '".$nedelya."')";  
    $result mysql_query $query ); 
    if (
    $result) echo "Запись добавлена в базу данных.";  mysql_close $link );  ?>  
    </body>  
    </html>
    Когда уже нажимаю отправить запрос, то появляется ошибка:
    "Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\localhost\www\forma2\save_form.php on line 19
    Невозможно подключение к MySQL"

    Помогите, пожалуйста, подправить код. )
     
    #16722 SHAXID, 29 Oct 2010
    Last edited: 29 Oct 2010
  3. [GF]

    [GF] New Member

    Joined:
    7 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Есть ссылка http://site.ru/user_group_manage.php?group_id=469&&in_smoothbox=true
    нужно выполнить get запрос (в данном случае вступление в группу)
    делаю так:
    PHP:
    $res=get('http://site.ru/user_group_manage.php?group_id='.$group.'&&in_smoothbox=true');
    но мне выдаёт ошибку
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /путь до скрипта/script.php.Подскажите в чём проблема?
     
    #16723 [GF], 29 Oct 2010
    Last edited: 29 Oct 2010
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    [GF] Проблема в том, что вы не пишете что за ошибка. А теперь допишите ошибку до конца, то бишь номер строки, и напишите строки предшествующие ей. То есть, если ошибка в 6 строке напишите 3-6 строки. И ищите потеряную точку/незакрытую скобку.

    SHAXID Неправильный пароль при доступе к базе. Точнее вы не задаете соединение вообще и используется дефолтные параметры. Гуглите как подключаться к СУБД MySQL. Заодно удостоверьтесь, что вы этот самый сервер установили и он работает

    mff проверьте весь код на вхождение подстроки "search_p", чего то вы не нашли. Заодно проверьте не включен ли на сервере/htaccess Register_Globals
     
    _________________________
    #16724 Gifts, 29 Oct 2010
    Last edited: 29 Oct 2010
    1 person likes this.
  5. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    [GF], что за функция get() ?
    Если твоя, то приведи код.
    А вообще есть file_get_contents или сокеты
     
  6. [GF]

    [GF] New Member

    Joined:
    7 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    функция
    PHP:
    function get($g_url) {
    $ch=curl_init();
    curl_setopt($chCURLOPT_URL,$g_url);
    curl_setopt($chCURLOPT_GET1);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    $res curl_exec($ch);
    curl_close($ch);
    }
    потом идёт

    PHP:
    $res=enter('http://site.ru/user_group_manage.php?group_id='.$group.'&&in_smoothbox=true');
    вот тут у меня и ошибка которую я написал на предыдущей странице.
     
  7. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    [GF] в этой строке не может быть ошибки, т.к. тут сохраняеться результат функции в переменную, возможно ошибка в самой функции enter() но тогда бы интерпретатор ругался бы на строку в теле функции а не на строку вызова функции. Выложи поболее шматок коденга)))
    Подозреваю что в строке выше забыл закончить строку сиволом ;
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    [GF] Надеюсь, вы заметили, что на предыдущей и текущей страницах - разный код? В одном месте используется функция get() в другом enter(). В строке ошибки указывается скрипт и номер строки, где произошла ошибка. Найдите эти строки и скопируйте строку с ошибкой и несколько предшествующих. Обычно достаточно 5 строк.
     
    _________________________
  9. [GF]

    [GF] New Member

    Joined:
    7 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    короче весь код:
    PHP:
    <?php
    $login
    =' ';
    $pass=' ';
    $ip=' ';
    $group=' ';

    function 
    get($url) {
    $ch=curl_init();
    curl_setopt($chCURLOPT_URL,$url);
    curl_setopt($chCURLOPT_GET1);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");
    $res curl_exec($ch);
    curl_close($ch);
    return 
    $res;
    }
    function 
    post($zapros){
    $ch=curl_init();
    curl_setopt($chCURLOPT_URL,'http://socialzet.ru/login.php');
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
    curl_setopt($chCURLOPT_TIMEOUT0);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
    curl_setopt($chCURLOPT_HTTPHEADER, array('Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*''Accept-Language: ru-RU''Content-type: application/x-www-form-urlencoded''Accept-Encoding: gzip, deflate''Connection: Keep-Alive''Cache-Control: no-cache'));
    curl_setopt($chCURLOPT_REFERER'http://socialzet.ru/home.php');
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS,$zapros);
    $res curl_exec($ch);
    curl_close($ch);
    return 
    $res;
    }
    function 
    enter($g_url) {
    $ch=curl_init();
    curl_setopt($chCURLOPT_URL,$g_url);
    curl_setopt($chCURLOPT_GET1);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    $res curl_exec($ch);
    curl_close($ch);
    }
    $res=get('http://socialzet.ru/home.php');

    $res=post('email='.$login.'&password='.$pass.'&task=dologin'.'&ip='.$ip');

    $res=enter('
    http://socialzet.ru/user_group_manage.php?group_id='.$group.'&&in_smoothbox=true');
     
  10. [GF]

    [GF] New Member

    Joined:
    7 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    >В одном месте используется функция get() в другом enter()
    Я просто хотел чтоб понятнее было,а получилось только хуже :)
     
  11. h00lyshit!

    h00lyshit! [From Nobody To Root]

    Joined:
    10 Sep 2009
    Messages:
    289
    Likes Received:
    290
    Reputations:
    195
    Code:
    $res=post('email='.$login.'&password='.$pass.'&task=dologin'.'&ip='.$ip');
    
    Кавычка после $ip лишняя
     
  12. [GF]

    [GF] New Member

    Joined:
    7 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Redwood,спасибо=)
    Стоило убрать кавычку как весь скрипт заработал))
     
  13. [GF]

    [GF] New Member

    Joined:
    7 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Столкнулся с другой проблемой,для начала дам код:
    PHP:
    function enter($g_zapros) {
    $ch=curl_init();
    curl_setopt($chCURLOPT_URL,'http://socialzet.ru/user_group_manage.php');
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS,$g_zapros);
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
    curl_setopt($chCURLOPT_REFERER'http://socialzet.ru/user_group_manage.php?group_id='.$group.'&&in_smoothbox=true');
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    $res curl_exec($ch);
    curl_close($ch);
    вобщем там в рефере где group_id='.$group.' нужно чтоб полсе id= подставлялось число,но оно не подставляется в чём проблема?
     
  14. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Большое спасибо! фильтрация была позже вывода. :)
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    [GF] переменной $group - не существует в данной области видимости. Пару страниц назад был такой же вопрос. В начале функции пропишите global $group;
    PHP:
     function enter($g_zapros) { 
    global 
    $group;
    // дальше остальной код
     
    _________________________
  16. bjong

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

    Joined:
    26 Jul 2003
    Messages:
    41
    Likes Received:
    12
    Reputations:
    18
    Прошу помощи)
    есть скрипт:
    PHP:
    <?
    include (
    'config.php');
    $query "SELECT price FROM forex";
    $result mysql_query($query);
    while (
    $row mysql_fetch_array($result)) {
    $price $row['price'];
    $time file_get_contents('http://www.site.com/script.php?price='.$price.'');
    }
    mysql_close($query);
    ?>
    В таблице price цены, 1,5,10,20,21,3324 и.т.д.
    В результате работы парсер выдает на каждую цену свое время.
    Надо взять это время и записать рядом с ценой..понимаю что запрос выглядит примерно так:
    UPDATE price SET time = ".$time." WHERE price = ".$price." LIMIT 1

    Но как выглядит скрипт целиком, не могу понять...что то не работает..(
     
    #16736 bjong, 31 Oct 2010
    Last edited: 31 Oct 2010
  17. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    PHP:
    while($data mysql_fetch_array($result))
    {
        
    mysql_query("UPDATE price SET time =$time  WHERE price ='$data[price]' LIMIT 1");
    }
    как-нибудь так
     
    1 person likes this.
  18. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Это очень плоxо, надо так:

    PHP:
    while($data mysql_fetch_array($result)){
    mysql_query('UPDATE `price` SET time =\''.$time.'\'  WHERE price =\''.$data['price'].'\' LIMIT 1');
    }
     
    1 person likes this.
  19. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    PHP:
    <?php
    include ('config.php'); 
    $query "SELECT price FROM forex"
    $result mysql_query($query$link); 
    while (
    $row mysql_fetch_array($result)) { 
    $price $row['price']; 
    $time file_get_contents('http://www.site.com/script.php?price='.$price.''); 
    mysql_query("UPDATE price SET time = '".$time."'  WHERE price ='".$price."' LIMIT 1");

    mysql_close($link); 
    ?>
     
    1 person likes this.
  20. bjong

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

    Joined:
    26 Jul 2003
    Messages:
    41
    Likes Received:
    12
    Reputations:
    18
    Спасибо! работает :)
     
Thread Status:
Not open for further replies.