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

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

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

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

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    PHP:
        function checkInputHost($host){
            
    preg_match("/^(http:\/\/)?([^\/]+)/i"$host$matches);
            return 
    $matches[2];
        }
    оч кайфовая регулярка. потом к возвратившейся переменной просто добавляешь http:// и все
     
  2. mixkorshun

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

    Joined:
    7 Sep 2008
    Messages:
    39
    Likes Received:
    4
    Reputations:
    0
    подожди немного - напишу
     
  3. mixkorshun

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

    Joined:
    7 Sep 2008
    Messages:
    39
    Likes Received:
    4
    Reputations:
    0
    kraken
    Code:
    for($i=0; $i<100; $i++)
      {
      $k = strpos($url[$i],"www.mysite.com");
          if($k === false)
           {
            $k = strpos($url[$i], "/");
            $k--;
            //не нашел функцию ответственную за склейку, поройся plz в документации))
            //а так после $k символа надо вставить http://www.mysite.com
           }
      }
    
     
  4. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Имеется такой скрипт:

    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>

    <head>
        <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
        <meta name="author" content="" />

        <title>qwe</title>
    </head>

    <body>

    <?php
        
        
        $sposod 
    "1";
        switch (
    $sposob)
        { 
        case 
    "1"
        echo 
    "<p>9999";
        break;

        case 
    "2":
        echo 
    "<p>8888";
        break;

        case 
    "3":
        echo 
    "<p>7777";
        break;

        default:
        echo 
    "<p>0000";
        break;
        
    }
        
        
    ?>

    </body>
    </html>
    вроде нигде не выдает ошибку, но все равно всегда пишет по дефолту(((
    че за фигня?
    я уже замучился ...
    мб что-то в кодировке??
     
    #8164 MaTpOc, 4 Feb 2009
    Last edited: 4 Feb 2009
  5. Chrek625

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

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    ошибка в строчке $this->$objectId = $this->generateId();
    и выдвёт Fatal error: Cannot access empty property in /home/chrek625/public_html/classes/DBObject.php on line 66
     
  6. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    Вопрос ставлю другим образом.Почему неработает?
    PHP:
    function BG($url)
     {

      if (
    strpos($url,"http://www.site.ru")===false$url="http://www.site.ru".$url;

        return 
    $url;
     }
     
    2 people like this.
  7. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    PHP:
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>

    <head>
        <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
        <meta name="author" content="" />

        <title>qwe</title>
    </head>

    <body>

    <?php
     
    if (isset($_GET['1'])){

        
    $sposob $_GET['1'];
        switch (
    $sposob)
        {
        case 
    "1":
        echo 
    "<p>9999";
        break;

        case 
    "2":
        echo 
    "<p>8888";
        break;

        case 
    "3":
        echo 
    "<p>7777";
        break;

        default:
        echo 
    "<p>0000";
        break;

    }
    }

    ?>

    </body>
    </html> 
    Вот пробуй
     
    #8167 mailbrush, 4 Feb 2009
    Last edited: 4 Feb 2009
    2 people like this.
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    MaTpOc Читай внимательно код - у тя две разных переменных sposob и sposod
     
    _________________________
  9. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Во 1 не ГБ а ГД(GD)

    ВО 2 http://il2.php.net/manual/ru/function.imagecreatefromjpeg.php
     
    1 person likes this.
  10. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Уважаемое сообщество, возникла очередная проблема, написал скрипт суть которого в следующем, берется текстовый файл записывается в переменную (файл увесистый около 2Мб) делится на 10 равных частей и записывается в 10 разных файлов, столкнулся с такой проблемой переполнения памяти, подскажите где утечка.
    Code:
    <?
    $f=fopen("base.txt","r+");
    while(!feof($f))
    $text.=fgets($f);
    fclose($f);
    $len=strlen($text);
    $part=(int)(len/10);
    $pos=0;
    $index=(int)(sizeof($topic)/10);
    for($i=0;$i<$len;$i+=$part){
    $parts[]=substr($text,$pos,$i);
    $pos=$i;
    }
    foreach($parts as $key=>$val){
    $file=fopen("/index/".$key.".txt","w+");
    fwrite($file,$val);
    fclose($file);
    }
    ?>
    
     
  11. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Gin

    $part=(int)($len/10);

    $index=(int)(sizeof($topic)/10);
     
    1 person likes this.
  12. Dimaus

    Dimaus Banned

    Joined:
    7 Nov 2008
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Помогите с кодом:
    файл guest2.php
    Code:
    <html>
    <head>
    </head>
    <body bgcolor="#FFFFFF">
    <?php
    $file_array=file("datat.txt");
    echo "<table border=\"1\" width=\"100px\">";
    foreach($file_array as $a)
    {
    
    $data_array=explode("|||",$a);
    echo "<tr><td>".$data_array[0]."</td>
    <td>".$data_array[1]
    ."</td></tr><tr><td colspan=2>".$data_array[2]."</td></tr>";
    }
    echo "</table>";
    
    ?>
    <strong>Добавить сообщение:</strong><br>
    <form method="post" action="<?php
    $fp=fopen("datat.txt", "a+");
    $new=fread($fp,filesize("datat.txt"));
    
    $new=$_POST['mess'];
    $new=fwrite($fp,$la);
    fclose($fp);
    
    ?>">Имя:<input type="text"  name="name">
    Время:<input type="text"  name="nale"><BR>
    Сообщение:<br><textarea name="mess" rows="5" cols="43">
    </textarea>
    <br>
    <input type="hidden" name=ferstname value="<?php echo $_POST['mess']; ?>" >
    <input type="submit" value="Отправить"></form>
    </body>
    </html>
    Файл datat.txt :
    Code:
    пользователь|||контакты|||запись
    дата|||время суток|||количество посещения
    сообщение|||город|||адрес
    Суть дела такова: типа простейшей гостевухи, в форме ввожу текст в текстовые поля(поля назвал произворльно) этот текст записывается в файл datat.txt с разделителями и затем выводится перед формой...помогите:)
     
    #8172 Dimaus, 5 Feb 2009
    Last edited: 5 Feb 2009
  13. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Dimaus,
    должно быть:

    Дальше :
    Переменной $la нет, есть переменная $a. Это не скрипт гостевухи, ето Адронный Калайдер, дальше разбираться не захотел.
     
    1 person likes this.
  14. Корвин

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

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    недавно сам писал гостевуху вот код тока SQL запросы подправь под себя и путь к базе пропиши нужный, ну там лог и пасс

    ну и так там переделать по мелочи обработку возвращаемых из SQL данных, и пути к картинкам переделать

    PHP:


    <?

    function ms_connect($server,$login,$pass,$db)
    {

      mysql_connect($server,$login,$pass);
      mysql_select_db($db);

    }


    if($_POST)
    {

    $server = "localhost";
    $user = "*******";
    $pass = "*******";
    $db = "*******";

    ms_connect($server,$user,$pass,$db);
    echo mysql_error();

     $dt=date('Y-m-d H:i:s');
        mysql_query('insert into /*название твоей таблицы*/ values( "", "'.$_POST['name'].a'","'.$_POST['mail'].'","'.$dt.'","'.$_POST['comment'].'", "1");');
        echo mysql_error();        Header('Location: /guest_book/');
    }
    ?>

    <table height="100%" width="100%">
        <tr>
            <td height="1%" align="left" valign="top" class="textcontent" style="padding:0px;">
            <?=$content->body?><br><br>        <hr style="height:1px; color:#3e3d30;" noshade>
            </td>
        </tr>
        <tr>
            <td align="left" valign="top" height="1%">
    <span class="pizzatitle">Последние отзывы</span><br><br>
    <?
        $commarr = array();
         $res = mysql_query('SELECT * FROM /*название твоей таблицы*/ WHERE is_visible=1 ORDER BY date DESC;');

        while($item = $dbconn->fetch_array($res)) {
            $commarr[] = $item;
        }      
        for($i=0; $i<count($commarr); $i++)
        {
    ?>           
    <table>
        <tr>
            <td>
            <span class="textcontent" style="padding:0px;"><b><?=$commarr[$i]['name'].'</b> - <i>'.$commarr[$i]['date']?></i></span>
            </td>
        </tr>
        <tr>
            <td class="textcontent" style="padding:5px;padding:5px;background-color:#dfaf76;font-size:15px;">
            <i><?=$commarr[$i]['comment']?></i>
            </td>
        </tr>
    </table>
    <?
        }    
    ?>
            </td>
        </tr>
        <tr>
            <td align="left" valign="top" height="98%"><br><br>
            <span class="docomment"><span onclick="hideshow('comm');">Оставить отзыв</span></span><br><br>
            <form method="POST" name="comments">
            <table id="comm" style="display:none;">
                <tr>
                    <td class="textcontent" style="padding:0px;" align="right" valign="top">
                    Ваше имя:
                    </td>
                    <td>
                    <input class="textcontent" style="padding:0px;border:1px solid:#3e3d30;" type="text" name="name">
                    </td>        
                </tr>
                <tr>
                    <td class="textcontent" style="padding:0px;" align="right" valign="top">
                    Ваш E-mail:
                    </td>
                    <td>
                    <input class="textcontent" style="padding:0px;border:1px solid:#3e3d30;" type="text" name="mail">
                    </td>        
                </tr>
                <tr>
                    <td class="textcontent" style="padding:0px;" align="right" valign="top">
                    Ваш отзыв:
                    </td>
                    <td>
                    <textarea class="textcontent" style="width:300px; height:100px; padding:0px; border:1px solid:#3e3d30;" name="comment"></textarea>
                    </td>        
                </tr>
                <tr>
                    <td>
                    &nbsp;    
                    </td>
                    <td>
                    <img src="/img/send_button.gif"
                     onclick="document.forms.comments.submit(); return false;"
                     onmouseover="this.src='/img/send_button-push.gif'"
                     onmouseout="this.src='/img/send_button.gif'">
                    </td>        
                </tr>
            </table>
            </form>
            </td>
        </tr>
    </table>

    вот тут пример работы
     
  15. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Корвин, скрипт твой дырявый. Если нa сервере не будет включён magic_quotes_gpc, то любой может провести инъекцию в INSERT запросе, со всеми вытекающими - активная XSS и т.д. Один хрен ты данные только выводишь, что мешало делать по ним htmlspecialchars($_POST['blahblahblah'], ENT_QUOTES)?
     
    1 person likes this.
  16. Корвин

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

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    groundhog, сделаю проверку каждого поля, чтобы туда ничо лишнего не вводили
     
    1 person likes this.
  17. c0m

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

    Joined:
    26 Jan 2007
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    помогите с небольшим загрузчиком
    PHP:
    <form ENCTYPE= "multipart/form-data" action="dbch3.php" method="post"><input name="file" type="file"><input type="submit"></form><?php if (copy ($file"$file")) print ("Успешно загруженн на сервер<br>"); ?>
    не заливает файлы
    safe_mode Off
     
  18. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Это бред. Почитай:

    http://ru.php.net/manual/ru/features.file-upload.php
     
  19. c0m

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

    Joined:
    26 Jan 2007
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    спасибо
    попробывал
    PHP:
    <form enctype="multipart/form-data" action="_URL_" method="post">
     <
    input type="hidden" name="MAX_FILE_SIZE" value="30000" />
     
    Отправить этот файл: <input name="userfile" type="file" />
     <
    input type="submit" value="Send File" />
    </
    form>
    и др.
    все равно не заливается
    з.ы. заливаю через пхпмайадмин
    select '' into outfile ''
    пробывал через инклуд, видимо он отключен
    Code:
    Warning: include() [function.include]: URL file-access is disabled in the server configuration in C:\Program Files (x86)\VertrigoServ\www\forum\dbcn1.php on line 1  Warning: include(http://site/engine/data/xfields1.txt) [function.include]: failed to open stream: no suitable wrapper could be found in C:\Program Files (x86)\VertrigoServ\www\forum\dbcn1.php on line 1  Warning: include() [function.include]: Failed opening 'http://site/engine/data/xfields1.txt' for inclusion (include_path='.;C:\Program Files (x86)\VertrigoServ\Smarty') in C:\Program Files (x86)\VertrigoServ\www\forum\dbcn1.php on line 1
     
    #8179 c0m, 5 Feb 2009
    Last edited: 5 Feb 2009
  20. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Покажи код формы + обработчик формы, которым ты пытаешься залить файл. То, что ты писал ранее - никакого отношения к заливке файлов не имеет. Я тебе кинул ссылку где можно прочитать про форму отправки файлов и функции работы с загруженными файлами на удалённом хосте. Покажи код.
     
Thread Status:
Not open for further replies.