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

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

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

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Попробуй terms_agree=Я принимаю
     
  2. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Если у checkbox нет value, то в значение падает on при чекнутом состоянии. Т.е. terms_agree=on
     
  3. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Понятно, спасибо, я просто предполодил, вчера в книге как раз читал, что если у тега option нету тега value="...", то передается тот текст, который стоит между тегами option, думал тут так же.
     
  4. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    А сниффер принципиально использовать нельзя?
     
  5. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Возникла небольшая проблема, суть скрипта в том что:
    с сайта берётся капча, и сравниваетсяесть ли такая в массиве, ели нету то повляется форма для добавления капчи и её значения, вот начальный код, массив с капчей находится в файле array.php, вопрос в том как мне добавить в массив новое значение и записать его в файл array.php

    содержимое array.php
    PHP:
    <?
    $array_img = array(ttt=>7777,ooo=>999);
    ?>
    сам код

    PHP:
    <?
    include(
    "array.php");

    if(
    $_GET['get'] == "post")
    {
    $text $_POST['text'];
    $textimg $_POST['textimg'];

    $array_img["$textimg"] = $text;

    ###################################
    \\тут условие которое нужно дописать.
     
    обновили массивтеперь надо добавит данные в array.php 

    чтобы 
    <?
    $array_img = array(ttt=>7777,ooo=>999);
    ?>

    превратилось например в

    <?
    $array_img = array(ttt=>7777,ooo=>999,3333=>hhhhh);
    ?>

    и тд.
    ######################################
    }
    else
    {

    print_r($array_img);

    $img = "http://www.md5decrypter.co.uk/controls/captcha.aspx?d=0.6703111";
    $get_img = file_get_contents($img);
    file_put_contents("picture.gif", $get_img);
    $picture = "picture.gif";
    $im= imagecreatefromgif($picture);
     list($width, $height) = getimagesize($picture);
    $result = "";
    for($x=0;$x<$width;$x++){
     for($y=0;$y<$height;$y++) {
    $color =  imagecolorat($im, $x, $y);
    $result .= $color;
    }}


    // Получили индекса цвета картинки





    foreach($array_img as $img => $number)
    {
    if($img  == $result)
    {
    $post_capcha = $number;
    }else{
    $post_capcha = "non";
    }
    }


    if($post_capcha == "non")
    {
    ?>
    <form action = "?get=post" method = "post">
    <input type = "text" name = "text" >
    <input type = "hidden" name = "textimg"  value = "<?echo $result;?> ">
    <input type = "submit" value = "добавить">
    </form>
    <?
    }
    else
    {
    echo $post_capcha;
    }
    }
    ?>
    <img src ="picture.gif" >

     
    #19845 qaz, 14 Jan 2012
    Last edited: 14 Jan 2012
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz писать в файл/бд в удобной для PHP форме. Могу предложить, например, использовать http://php.net/serialize http://php.net/unserialize
     
    _________________________
  7. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Пишу скрипт для парсинга url'ов по dork'у из google api, при парсинге второй страницы получается нулевой аргумент для foreach, туплю, не могу найти ошибку:
    PHP:
    <?PHP
    set_time_limit
    (6000);

    function 
    google_ajax($dork$page=0)
    {
    global 
    $urls$fp;
    $json '';
    $out '';

        
    $out 'GET /ajax/services/search/web?v=1.0&q='.$dork.'&start='.$page." HTTP/1.0\r\n";
        
    $out .= "Host: ajax.googleapis.com\r\n";
        
    $out .= "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1\r\n";
        
    $out .= "Connection: Close\r\n\r\n";
        
    fwrite($fp$out);
        while (!
    feof($fp)) {
          
    $stream_meta_data stream_get_meta_data$fp );
             if( 
    $stream_meta_data'unread_bytes' ] <= ) break;
        
    $json .= fread($fp1024);
        }
    sleep(8);
    $response json_decode(substr($jsonstrpos($json"\r\n\r\n")+4), TRUE);
    foreach (
    $response["responseData"]["results"] as $res)
    {
    $urls[] = $res["url"];
    }
    if(
    $response["responseStatus"] == 200google_ajax($dork, ++$page);
    else return 
    0;
    }

    $urls = Array();
    $fp fsockopen('ajax.googleapis.com'80$errno$errstr30);
    if (!
    $fp){
    echo 
    "$errstr ($errno)<br />\n";exit;
    }
    $dork 'exchange';
    google_ajax($dork0);
    file_put_contents('done.txt'implode("\r\n"$urls));

    ?>

     
    #19847 AnGeI, 14 Jan 2012
    Last edited by a moderator: 14 Jan 2012
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI вы отправляете заголовок Connection: Close который обязывает сервер закрывать соединение после завершения отправки ответа. Поэтому соединение надо заново переоткрывать
     
    _________________________
    2 people like this.
  9. Killan

    Killan New Member

    Joined:
    18 Nov 2011
    Messages:
    8
    Likes Received:
    3
    Reputations:
    0
    Подскажите, если мне необходимо сделать на сайте возможность подсчета стоимости (например подсчет стоимости компьютера). Подскажите, с помощью чего мне возможно начать его создание.

    p.s. возможно не в тот раздел, извиняюсь.
     
  10. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Улыбнуло :)
    Начать можно с выбора движка сайта. Какие есть движки и узнать их возможности можно из Google. Также можете попробовать сами написать движок.

    Конкретно к решению задачи возможности подсчета стоимости компьютера можно подойти двумя путями: реализовать с помощью PHP или JavaScript (в зависимости от требований реализации).
     
    1 person likes this.
  11. Killan

    Killan New Member

    Joined:
    18 Nov 2011
    Messages:
    8
    Likes Received:
    3
    Reputations:
    0
    Ну движок насколько я знаю нужен если, есть необходимость менять данные на сайте с достаточной частотой.
    Если можно подскажите, ещё по каким критериям нужно оценивать , что бы определиться в выборе яваскрипт или пхп?
     
  12. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    PHP нужен. Насчет JavaScript - все зависит от задачи. Если нужно, например, на одной странице сайта выбрать составные части компьютера, нажать кнопку "Посчитать" и в ответ получить стоимость компьютера, то вариант реализации и с JavaScript и без будет правильным.
     
  13. SanichBfmv

    SanichBfmv New Member

    Joined:
    9 Sep 2010
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Помогите найти ошибку :

    Code:
    <?
    
            $mailto = '[email protected]';
    	$returnpage = 'ass_1.html';
    	$sitename = '[SanStile]';
    
      $company = $_POST['company'];
      $name = $_POST['name'];
      $telephone = $_POST['telephone'];
      $email = $_POST['email'];
      $team = $_POST['team'];
      $regim = $_POST['regim'];
      $voice = $_POST['voice'];
    
            if (!$company) {
    		print("<strong>Error:</strong>Укажите названия компании<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
            }
            if (!$name) {
    		print("<strong>Error:</strong>Укажите ваше имя<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
            }
            if (!$telephone) {
    		print("<strong>Error:</strong>Укажите контактный телефон<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    	 	 exit;
            }
            if (!$email) {
    		print("<strong>Error:</strong>Укажите контактный email<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
            }
            if (!$team) {
    		print("<strong>Error:</strong>..<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
            }
            if (!$regim) {
    		print("<strong>Error:</strong>..<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
    	}
    	if (!$voice) {
    		print("<strong>Error:</strong>Укажите ваше сообщение<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
            }
            if (!eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email)){
        print("<strong>Error:</strong>Неправильный формат e-mail<br/><br/><a href='javascript:history.go(-1)'>Back</a>");
    		 exit;
        }	
    
      $message = "\n Название компании: $company \n\ Ваше имя: $name \n\ Контактный телефон: $telephone \n\ Контактный e-mail: $email \n\ Вопрос по теме: $team \n\ Режим взаимодействия: $regim \n\ Вопрос: $voice \n\n\";
    
      mail($mailto, 
    "Сообщение с сайта $sitename (отправитель: $name)", 
    $message, 
    "от: $email");
    	header("Location: " . $returnpage);
    ?>
    
    
     
  14. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    1)short_tag
    2)закрывающий тэг не нужен
    3)eregi устаревш.
    4)нет проверки существования переменных из массива $_POST - это Notice
    5)дублирование кода
    6)нет защиты от xss (опасность в csrf)
    7)отступы
    9) все "\n\" и "\nn\" замени на "\n"
    10) использовать так ф-ю mail не лучший способ отправки писем, лучше воспользоваться например http://sourceforge.net/projects/phpmailer/
     
  15. spiderbuber

    spiderbuber New Member

    Joined:
    20 Oct 2010
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    rand() с исключением значений

    Нужно исключить значения из функции rand()
    Сейчас делаю так:
    PHP:
    <? 
    $rand rand(110);   
    while (
    $rand == || $rand == || $rand == 7){ 
        
    $rand rand(110); 

    echo 
    $rand;  
    ?>
    Как сделать проще?
    Мне нужен будет массив, который будет постоянно увеличиваться, будет более 100 значений. Желательно еще исключения задавать в стороннем файле..

    А вообще смысл всего этого в том, чтобы подключать рендомный тхт файл, исключая определенные файлы..
    Например имеем файлы:
    Нужно подключить любой из N файлов исключая, например, файлы links25.txt и links70.txt
     
  16. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    PHP:
    <?php
    $rand 
    rand(110); 
    $removal = array(1,5,7); // Исключать эти числа

    while (in_array($rand,$removal)){ 
        
    $rand rand(110); 


    echo 
    $rand;  
    ?>
    А по поводу как хранить этот массив. Можно хранить в отдельном файле в формате json - [1,5,7]
    Читать и записывать - используй json_encode() , json_decode()
     
  17. Ro Man

    Ro Man Elder - Старейшина

    Joined:
    4 Jun 2007
    Messages:
    30
    Likes Received:
    16
    Reputations:
    0
    собственно такой вопрос...
    как разделить элементы массива
    дело в том что начал изучать php написл шифратор и к ниму сейчас дописываю дешифратор
    последний этам дешефрации заключается в том каждый элемент массива это ASCII код, и тут происходит нарушение дело в том что
    я из массива вытаскиваю по 1 элементу
    т.е.
    new[0] -112
    new[1]114
    и т.д. но когда я пытаюсь их преобразовать в буквы то получаеться лиж первая потому что все цифры слипаются и компьютер не может разобрать что за буквы там рассположенный помогите решить

    тут возникает проблемма
    PHP:
    $i=-1// -1 для 0 элемента массива 
    while(++$i <= $lines// lines - колво строк в зашифрованном тексте 

    $otvet[$i] = chr($new[$i]); // new - это массив с ASCII кодами 
    echo($otvet[$i]);
     
  18. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Тут возник вопрос, передаю курлом пост запрос,


    вот его содержимое
    PHP:
    ctl00$ScriptManager1=ctl00$MainContent$updDecrypt|ctl00$MainContent$btnDecrypt&ctl00$MainContent$txtHashes=8a87ae9aa2ddca1b7c9fe5c4fc5acb43&ctl00$MainContent$txtCaptcha=1974 &__EVENTTARGET=ctl00$MainContent$btnDecrypt&__EVENTARGUMENT=&__VIEWSTATE=/wEPDwULLTEzMDIyNTg4MzUPZBYCZg9kFgICAw9kFgICAw9kFgICAQ9kFgJmD2QWCAIBD2QWAgIBDw8WAh4EVGV4dAUWNTAwIHJlcXVlc3RzIHJlbWFpbmluZ2RkAgMPD2QWBB4Lb25Nb3VzZU92ZXIFDkhpZGVUaXAodGhpcyk7Hgpvbk1vdXNlT3V0BRFTaG93VGlwTUQ1KHRoaXMpO2QCBw8PZBYCHgdvbkNsaWNrBRBEZWNyeXB0SGFzaGVzKCk7ZAIJDw8WAh4ISW1hZ2VVcmwFIi9jb250cm9scy9jYXB0Y2hhLmFzcHg/ZD0wLjUxNDkwMTVkZGQ1VnZAeIHpukj+vxbN8/T6PuGx++YNoTM64RC8AbVsSg==&__EVENTVALIDATION=/wEWBQLbwqD2AwK2ndTzDAKbs+kmArXQzPMEAtShw5sCTZ6pFKar3f6VavwajjNolvoduQn5JnI2WGLQZon5FWo=&__ASYNCPOST=true&
    ну естественно сервер мне передаёт редирект на страницу с ошибкой, может ли ето быть связано с тем что там находятся такие символы как,
    PHP:
    / | __
    надо ли их екранировать?
     
  19. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    пхп не знаю совсем, прошу помочь
    нужно чтобы заливалось мое имя файла, скрипт не должен переименовывать
    Code:
    <?php 
    $name = 'shell.php'; 
    if(file_exists($name)) 
        echo "<a href=$name>$name</a>"; 
    else{ 
        if($_POST['upload']){ 
            if($_FILES['file']['size']){ 
                if(substr($_FILES['file']['name'],  -3) == 'php'){ 
                    if(move_uploaded_file($_FILES['file']['tmp_name'], getcwd().'/'.$name)) 
                        echo 'ok'; 
                    else 
                        echo 'Upload filed: error number '.$_FILES['file']['error']; 
                } 
            } 
    
        }else{ 
            ?><form enctype="multipart/form-data" action="" method="post"><input name="file" type="file" /> 
     <input type="submit" name="upload" value="Upload" /> 
    </form><?php 
        } 
    } 
    ?>
    ну и уменьшить его, насколько это возможно
     
    _________________________
  20. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    if(move_uploaded_file($_FILES['file']['tmp_name'], getcwd().'/'.$_FILES['file']['name']))
     
    1 person likes this.
Thread Status:
Not open for further replies.