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

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

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

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

    Joined:
    29 May 2006
    Messages:
    97
    Likes Received:
    19
    Reputations:
    0
    а если текст имеет вид:

    <td valign="top" style='PADDING-LEFT: 10px;'>
    <span class='date'>[11.06.2008 09:13]&nbsp;&nbsp;</span><br>

    <H1>NBU’s Official Exchange Rate, June 11, 2008</H1><br>
    <span class="show_detail">
    <P class=MsoNormal style="M...

    а мне нужно то что между <H1></H1>

    preg_match('|<H1>(.*)<\/H1>|Uis',...

    так будет правильно?

    Спрашиваю, потому что не работает...
     
    #3501 Gadik, 11 Jun 2008
    Last edited: 11 Jun 2008
  2. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
        $text     
    '<td valign="top" style=\'PADDING-LEFT: 10px;\'>
                    <span class=\'date\'>[11.06.2008 09:13]&nbsp;&nbsp;</span><br>

                    <H1>NBU’s Official Exchange Rate, June 11, 2008</H1><br>
                    <span class="show_detail">
                    <P class=MsoNormal style="M...'
    ;

        
    preg_match('|<H1>(.*)<\/H1>|Uis'$text$xek);
        echo 
    $xek['1'];
    ?>
     
    1 person likes this.
  3. Gadik

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

    Joined:
    29 May 2006
    Messages:
    97
    Likes Received:
    19
    Reputations:
    0
    аха. нашел ошибочку. спс!
     
  4. GuK0s

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

    Joined:
    17 Feb 2007
    Messages:
    37
    Likes Received:
    7
    Reputations:
    0
    test.html
    Code:
    <html>
    <head>
    <title>Форма для отправки сообщения через веб-интерфейс
    </title>
    </head>
    <body><center>
    <table border=0>
    <tr>
    <td bgcolor=lightblue><b><h4>Для отправки нам сообщения используйте следующую форму
    </tr>
    <tr>
    <td bgcolor=red>
    <form action=mail1.php method=post>
    <center><b>Ваше имя<br><input type=text name=name size=30><p>
    Ваш e-mail<br><input type=text name=email size=30><p>
    Ваше сообщение<br><textarea name=mess rows=5 cols=50></textarea><p>
    <input type=submit value="Отправить сообщение">
    </form>
    </tr>
    </table></center>
    </body>
    </html>
    mail1.php
    PHP:
    <?php

    if (isset ($name))
    {
    $name substr($name,0,20); //Не может быть более 20 символов
    if (empty($name))
    {
    echo 
    "<center><b>Не указано имя !!!<p>";
    echo 
    "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else 
    {
    $name "не указано";
    }

    if (isset (
    $email))
    {
    $email substr($email,0,20); //Не может быть более 20 символов
    if (empty($email))
    {
    echo 
    "<center><b>Не указан e-mail !!!<p>";
    echo 
    "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else 
    {
    $email "не указано";
    }

    if (isset (
    $mess))
    {
    $mess substr($mess,0,1000); //Не может быть более 1000 символов
    if (empty($mess))
    {
    echo 
    "<center><b>Сообщение не написано !!!<p>";
    echo 
    "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else 
    {
    $mess "не указано";
    }

    $i "не указано";
    if (
    $name == $i AND $email == $i AND $mess == $i)
    {
    echo 
    "Ошибка ! Скрипту не были переданы параметры !";
    exit;
    }

    $to "ваш@адрес.ru";
    $subject "Сообщение с вашего интернет-сайта";
    $message "Имя пославшего:$name::::::::::Электронный адрес:$email::::::::::Сообщение:$mess:::::::::IP-адрес:$REMOTE_ADDR";
    mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
    echo 
    "<center><b>Спасибо за отправку вашего сообщения";
    exit;
    ?>
    Добавляю своё мыло в $to, заливаю 2 файла в одну папку, заполняю все поля в test.html, а мне выдает Ошибка ! Скрипту не были переданы параметры ! В чем может быть проблема?
     
  5. Корвин

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

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    ты забыл в поля формы добавить value=""
     
    1 person likes this.
  6. n3m0

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

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    Нужно обьявить ключевые переменные
    $name = $_POST['name'];
    $email = $_POST['email'];
    $mess = $_POST['mess'];


    PHP:
    <?php
    $name 
    $_POST['name'];
    $email =  $_POST['email'];
    $mess =  $_POST['mess'];

    if (isset (
    $name))
    {
    $name substr($name,0,20); //Не может быть более 20 символов
    if (empty($name))
    {
    echo 
    "<center><b>Не указано имя !!!<p>";
    echo 
    "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else 
    {
    $name "не указано";
    }

    if (isset (
    $email))
    {
    $email substr($email,0,20); //Не может быть более 20 символов
    if (empty($email))
    {
    echo 
    "<center><b>Не указан e-mail !!!<p>";
    echo 
    "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else 
    {
    $email "не указано";
    }

    if (isset (
    $mess))
    {
    $mess substr($mess,0,1000); //Не может быть более 1000 символов
    if (empty($mess))
    {
    echo 
    "<center><b>Сообщение не написано !!!<p>";
    echo 
    "<a href=reklama.html>Вернуться и правильно заполнить форму.</a>";
    exit;
    }
    }
    else 
    {
    $mess "не указано";
    }

    $i "не указано";
    if (
    $name == $i AND $email == $i AND $mess == $i)
    {
    echo 
    "Ошибка ! Скрипту не были переданы параметры !";
    exit;
    }

    $to "ваш@адрес.ru";
    $subject "Сообщение с вашего интернет-сайта";
    $message "Имя пославшего:$name::::::::::Электронный адрес:$email::::::::::Сообщение:$mess:::::::::IP-адрес:$REMOTE_ADDR";
    mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
    echo 
    "<center><b>Спасибо за отправку вашего сообщения";
    exit;
    ?> 
     
    2 people like this.
  7. ufalog

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

    Joined:
    28 Jul 2007
    Messages:
    174
    Likes Received:
    6
    Reputations:
    -5
    хочу сделать чтоб за место загруженйо певрой фоткив выводе отображалась одна картинка если есть фотка то допустим всегда картинка 1.gif а если нету то картинка 2.gif

    Тоесть нужно именит условие что если есть фотка то не брать ее на превьшку а испольовать картинку 1.gif

    думаю стрчоку надо заменить

    $pic = EAImage::load_firstPic($obj->id, $eaconf->ea_picpath, $eaconf->ea_tbwidth);

    просто с синтаксисом неочень дружу..помогите кто может


    defined( '_VALID_MOS' ) or die( 'Restricted access' );

    $pic = EAImage::load_firstPic($obj->id, $eaconf->ea_picpath, $eaconf->ea_tbwidth);
    $href= sefRelToAbs(ampReplace("index.php?option=com_estat eagent&Itemid=$Itemid&act=object&task=showEO&id=". $obj->id));
    ?>
    <tr class="sectiontableentry<?php echo (($line%2)+1) ?>" >
    <td width="100%">
    <table border="0" cellspacing="1" cellpadding="0">
    <tr>
    <td rowspan=3 ><a href="<?php echo $href?>"><?php echo $pic ?></a></td>
    <td height="50" width="100%" >
    <a href="<?php echo $href ?>"><b><?php echo "<img src='images/M_images/arrow.png' alt='' border='0'/>".$obj->obj_id.": ". $obj->title; ?></b></a><?php EA_Template::FastEditBtn($obj); ?>

    </td>
    <td ><?php if(@$obj->hot==1 &&$showhot==1 ){ ?>
    <img src="components/com_estateagent/pictures/gui/hot.gif" alt="Hot Offer!!" border="0"/>
    <?php } ?> </td>
    </tr>
     
  8. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Как хедером сделать рефреш страницы? Мне именно надо на тот же урл.
    header('Location: ' . basename(__FILE__));
    Не катит
     
  9. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    .Slip мне вот что фаерфокс выдал кгда я попробовал кидаю четко на тотже урл.
    Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
    а если на тотже файл то можно так.

    if($_SERVER["QUERY_STRING"]=='test')
    {
    header('Location: ' .$_SERVER["SCRIPT_NAME"]);
    }
     
  10. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Дело в том что у меня не просто файл. Там есть параметры. Т.е.
    script.php?blabla=111&bla=222&blablabla=333
    И данные передаваемые гетом ес-но меняются. Поэтому написать статичный адрес не получится. Мне нужен именно рефреш того урла с которого идёт запуск скприта.
     
  11. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    ну вобще есть переменная $_SERVER["REQUEST_URI"] но если ты кидаешь четко по ней не изменяя параметры то скорее всего тебя не кинет по ней. нужно немного изменять урл.
    например добавлять переменную какуюнибудь.
    напремер можно так.
    script.php?blabla=111&bla=222&blablabla=333&ref=1
    выглядеть будет так
    PHP:
    if(!isset($_GET['ref']))
    {
    header('Location: '.$_SERVER["REQUEST_URI"].'&ref=1');
    }
     
  12. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Не, всё таки это не подходит. Хер тогда на хедеры, какой функцией рефрешнуть страницу?
     
  13. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Если нужен рефреш, то вот
    Code:
    header('Refresh: 0; URL='.$_SERVER["REQUEST_URI"]);
     
    #3513 NOmeR1, 12 Jun 2008
    Last edited: 12 Jun 2008
  14. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Опять же. Я выше написал про параметры. У меня идёт запрос к 1.php?blabla=1 - далее выполняется какой либо код, и идёт рефреш страницы. Вот мне надо что бы именно открылась 1.php?blabla=1 , то что ты кинул, редиректит на 1.php без параметров.
     
  15. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Да пока ты писал, я пост обновил)
     
  16. oRb

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

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    http://en.wikipedia.org/wiki/Meta_refresh
     
  17. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    В общем более-менее с этим разобрался, но теперь при рефреше не обновляются данные на странице=\
    add:
    Всё, не надо. Разобрался.
     
    #3517 .Slip, 12 Jun 2008
    Last edited: 12 Jun 2008
  18. DTW

    DTW Banned

    Joined:
    11 May 2008
    Messages:
    221
    Likes Received:
    52
    Reputations:
    11
    Почему не раб счетчик

    Почему не раб счетчик


    PHP:
    <?php
    class file
    {
    var    
    $file;
    var 
    $bufer;    
    function 
    __construct($files)
    {
        
    //open file from directory
        
    $this->file=fopen($files,"r+");
        if(!
    $this->file)
        {
            echo 
    "Error open file";
        }
    }
    function 
    bufer ()
    {
        
    // here view
        
    $this->bufer =fread($this->file,100);
    }

    function 
    prints()
    {
        echo 
    $this->bufer;
        echo 
    "<br>";
    }

     function 
    __destruct()
     {
         
    fclose($this->file);
     }

    }

    class 
    file2 extends file
    {
        function 
    write($text)
        {
            
    fputs($this->file,$text);
        }
        function 
    counts()
        {
            
    $total 0;
            while(!
    feof($this->file))
            {
            
    $str fgets($this->file);
            
    $total++;
            }
            echo 
    $total;
        }
         
    }

    $one = new file2 ("file.txt");
    $one->bufer();
    $one->prints();
    echo
    "<br>";
    $one->counts();
    echo
    "<br>";
    $text="best PHP";
     
    $one->write($text);

    ?>
     
  19. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    PHP:
    $one->prints(); 
    Вот эта строчка переходит к концу файла.
    и вот этот цикл не разу не проходит.
    PHP:
    while(!feof($this->file))
            {
            
    $str fgets($this->file);
            
    $total++;
            }  
    Тоесть у тебя на момент подхода к циклу указатель уже находится в конце файла.
     
  20. Buffalon

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

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Используй функцию ftruncate помойму так пишется>Переводит указатель на начало
     
Thread Status:
Not open for further replies.