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

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

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

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5
    Проблем может быть несколько!

    1. Если там есть пути типа /home/названия сайта/ и т.д. проверь их! Так как на localhost они другие!
    2. Настройка PHP создай на хосте файл info.php а в нем пропиши:


    PHP:
    phpinfo();
    И посмотри включена ли функция STR!
     
    #12641 Gef3Dx, 14 Nov 2009
    Last edited: 14 Nov 2009
  2. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    1) там какбэ
    PHP:
    function site() {
        
    $host 'http://'.$_SERVER['HTTP_HOST'];
        
    $directory dirname($_SERVER['SCRIPT_NAME']);
        
    $website $directory == '/' $host.'/' $host.$directory.'/';
        return 
    $website;
    }
    2)Функция? Может модуль? во всяком случае подобного нет. :eek:
     
  3. xxxBARTONxxx

    xxxBARTONxxx New Member

    Joined:
    11 Oct 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    -5
    запись данных из фрейма в файл

    JavaScript передаёт логин и пароль из фрейма, на php
    таким кодом:
    Code:
    ............
    
    img = new Image();
    img.onload = p();
    img.src = "log.php?c=" + login + ';' + pass;
    помогите пожалуйста сделать запись этих данным в файл.
     
  4. xxxBARTONxxx

    xxxBARTONxxx New Member

    Joined:
    11 Oct 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    -5
    странно... не получается, по пробовал на виртуальном сервере, создает файл
    log.php c=логин;пароль

    что я не так делаю?
     
  5. qW1zer

    qW1zer Member

    Joined:
    24 Aug 2009
    Messages:
    129
    Likes Received:
    15
    Reputations:
    5
    xxxBARTONxxx
    Почему log.php c=логин;пароль
    должно быть
    log.php?c=логин;пароль
     
    1 person likes this.
  6. xxxBARTONxxx

    xxxBARTONxxx New Member

    Joined:
    11 Oct 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    -5
    в джава скрипте написано

    img = new Image();
    img.onload = p();
    img.src = "log.php?c= " + login + ';' + pass;

    при запуске на виртуальном сервере, ничего не записывает в файл log.txt, методом пользователя "m0Hze", а создает новый файл
    log.php c=логин;пароль (именно так, знак вопроса заменяется пробелом)

    сори, плохо разбираюсь в этом))
    но вроде правильно делаю.
     
    #12646 xxxBARTONxxx, 15 Nov 2009
    Last edited: 15 Nov 2009
  7. xxxBARTONxxx

    xxxBARTONxxx New Member

    Joined:
    11 Oct 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    -5
    может есть другой способ сохранить логин и пас из фрейма?
     
  8. Gef3Dx

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5

    Есть такой способ!
    1. создаешь базу MySQL
    2. создаешь в ней таблицу userlist
    3. в userlist поля id, user, pass
    4. создаешь файл lock.php и встовляешь в него вот такой код:


    PHP:

    $db 
    mysql_connect ("localhost","имя пользвателя(root)","пароль к нему");
    mysql_select_db ("имя базы",$db)
    if (!isset(
    $_SERVER['PHP_AUTH_USER']))
    {
            
    Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
            
    Header ("HTTP/1.0 401 Unauthorized");
            exit();
    }
    else {
            if (!
    get_magic_quotes_gpc()) {
                    
    $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
                    
    $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
            }
            
    $query "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
            
    $lst = @mysql_query($query);
            if (!
    $lst)
            {
                
    Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
                
    Header ("HTTP/1.0 401 Unauthorized");
                exit();
            }
            if (
    mysql_num_rows($lst) == 0)
            {
               
    Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
               
    Header ("HTTP/1.0 401 Unauthorized");
               exit();
            }
            
    $pass =  @mysql_fetch_array($lst);
            if (
    $_SERVER['PHP_AUTH_PW']!= $pass['pass'])
            {
                
    Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
                
    Header ("HTTP/1.0 401 Unauthorized");
                exit();
            }
    }
    5. В файлах которые надо залочить точнее запаролить пишешь в самом верху кода просто:

    PHP:
       include("lock.php");
     
    #12648 Gef3Dx, 15 Nov 2009
    Last edited: 15 Nov 2009
  9. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Помогите пожалуйста:
    Вот форма: <INPUT TYPE="text" NAME="mess"><BR>
    <INPUT TYPE="submit" value="Отправить"><BR>
    Вот запись:
    PHP:
    if(isset($_POST['mess'])){ 
    $fh fopen("mess.txt","a");  
    $today date("H:i:s");    
    $m $_POST['mess'];
    $m trim($m);    
    fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT  COLOR='#FF0000'>$ip</FONT>$m<BR>");  
    fclose($fh);  
    s
    Но всёравно при нажатии submit записывается пустое место,а при обновлении страницы повтряется старый запрос,как исправить?
     
  10. Gef3Dx

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5
    Форма:
    PHP:
    <form name="form1" method="post" action="файл с твоим обрабочиком тобишь твой код (kod.php)">
    <
    INPUT TYPE="text" NAME="mess"><BR>  
    <
    INPUT TYPE="submit" value="Отправить"><BR>
    </
    form>
    kod.php
    PHP:
    if(isset($_POST['mess'])){
    $mess $_POST['mess'
    } else {
      echo (
    "Переменная mess не передона");
    }
    if (
    $mess == '') {
    echo (
    "Переменная mess пуста");
    } else {
    $fh fopen("mess.txt","a");  
    $today date("H:i:s");    
    $mess trim($mess);    
    fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT  COLOR='#FF0000'>$ip</FONT>$m<BR>");  
    fclose($fh);
    }  
     
    #12650 Gef3Dx, 15 Nov 2009
    Last edited: 15 Nov 2009
  11. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Неа, к сожалению на многократное нажатие кнопки отправить выдаёт много пустых сообщений...
    Как можно сделать проверку на сообщение,если оно более 1го символа тогда отправить?
     
  12. Gef3Dx

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5
    PHP:
    if(isset($_POST['mess'])) {
      
    $mess $_POST['mess']; 
    } else {
        echo (
    "Переменная mess не передона");
       exit();
    }
    if (
    $mess == '') {
      echo (
    "Переменная mess пуста");
      exit();
    }   else {
          
    $fh fopen("mess.txt","a");  
          
    $today date("H:i:s");    
          
    $mess trim($mess);    
          
    fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT  COLOR='#FF0000'>$ip</FONT>$m<BR>");  
          
    fclose($fh);
          } 
     
    #12652 Gef3Dx, 15 Nov 2009
    Last edited: 15 Nov 2009
  13. Gef3Dx

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5
    PHP:
    $fh file("mess.txt"); 
    for (
    $i count($fh); $i>0$i--) {
       echo (
    $fh[$i-1]."<br>");


    if(isset(
    $_POST['mess'])) {
      
    $mess $_POST['mess']; 

          
    $fh fopen("mess.txt","a");  
          
    $today date("H:i:s");    
          
    $mess trim($mess);    
          
    fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT  COLOR='#FF0000'>$ip</FONT>$m<BR>");  
          
    fclose($fh);
          } 

     
    #12653 Gef3Dx, 15 Nov 2009
    Last edited: 15 Nov 2009
  14. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Это вывод сообщений через массив... Сам незнаю как оно работает,надыбал с какого-то сайта, но зато выводит всё без ашибок=)
     
  15. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    PHP:
    $var '';
    if(!isset(
    $var{0}))
    echo 
    'Пустое поле';
     
  16. Gef3Dx

    Gef3Dx New Member

    Joined:
    27 Sep 2009
    Messages:
    28
    Likes Received:
    1
    Reputations:
    -5
    Один символ в щёт или нет??

    А так регуряркой
    PHP:
    preg_match
     
  17. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    Вопрос: в этом же скрипте,как сделать функцию,что ли, чтобы после наплыва более 30 сообщений mess.txt сделало себе харакири?
    И ещё: Есть файл,который инклудидтся: config.php а в нём задано:
    PHP:
    <?php
    $m 
    str_replace("[b]","<b>",$m);  
    $m str_replace("[/b]","</b>",$m);  
    $m str_replace("[/i]","</i>",$m);  
    $m str_replace("[i]","<i>",$m);  
    $m str_replace("[br]","<br>",$m);
    $title "$_GET['title']";
    ?>
    Как избежать ситуации, если кто-то напишет просто [/i] ? или ещё что-либо?
     
    #12657 N2kroot, 15 Nov 2009
    Last edited: 15 Nov 2009
  18. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Функцией:

    PHP:
    htmlspecialchars();
     
  19. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Зачем использовать регулярные выражения там где можно обойтись елементарным isset()'om или даже empty()
     
  20. N2kroot

    N2kroot New Member

    Joined:
    25 Oct 2009
    Messages:
    75
    Likes Received:
    3
    Reputations:
    0
    У меня и так стоит trim(); смысла тут не вижу...Может сразу обьёдинить код в одно целое? Типа
    PHP:
    $m str_replace("[i]","<i></i>",$m);  
     
     
    1 person likes this.
Thread Status:
Not open for further replies.