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

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

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

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Фаза, судя по этой строке:
    PHP:
    if(move_uploaded_file($_FILES['file']['tmp_name'], getcwd().'/'.$name))
    имя файла берется из переменной $name = 'shell.php';
     
    1 person likes this.
  2. Ro Man

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

    Joined:
    4 Jun 2007
    Messages:
    30
    Likes Received:
    16
    Reputations:
    0
    нашел лажу, нужно было перевести значение в стринг))эта херня убила у меня целую ночь)
     
  3. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    если это 1 строка, то делай urlencode.
    если массив, то или запиши как массив
    array('key1' => 'val1', ... )
    или записывай в виде
    param=val1&param2=val2
    где с каждым val делай urlencode
     
  4. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    как запереть файл

    PHP:

    <?php
     
    if (version_compare(phpversion(), "5.3.0"">=") == 1)
      
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
     else
      
    error_reporting(E_ALL & ~E_NOTICE);

    $zapros=$_POST['zapros'];
    $zapros str_replace("\r\n",'',$zapros);
    $zapros str_replace("\n",'',$zapros);
    $zapros str_replace("|",'',$zapros);
    $zapros str_replace("",'сайт',$zapros);
    $zapros str_replace(")",'',$zapros);
    $zapros str_replace("(",'',$zapros);
    $zapros str_replace("www.",'',$zapros);
    $zapros str_replace("*",'',$zapros);
    $zapros str_replace("+",'',$zapros);
    $zapros str_replace("-",'',$zapros);
    $zapros str_replace('"','',$zapros);
    $zapros str_replace('.ru','',$zapros);
    $zapros str_replace('.','',$zapros);
    if (
    strlen($zapros) < 5) die("стоять");
    $poisksis=$_POST['poisksis'];
    $prixod=$_POST['prixod'];
    $pprixod=$_POST['pprixod'];
    if (
    $pprixod=="/"){$pprixod='';}
    $ogranishenie=100;
    $nedobovlyat=0;
    $zapros iconv('utf-8''utf-8'$zapros);
      if(
    $poisksis==2){
        
    $filename="./yandex.txt";
         if( !
    file_exists($filename)) {
               
    $ft=fopen($filename"w");
               
    fclose ($ft);
           }
          
    $file_arrey=file($filename);
          
    $prov=0;
         for(
    $i=0$i<=count($file_arrey); $i++){
             if(
    preg_match("/".$prixod."/i"$file_arrey[$i])){
                  
    $ser=ereg_replace("/","\/",$prixod.$pprixod);
                 
    $serv=ereg_replace("\?","\?",$ser);
                  if(!
    preg_match("/".$serv."\/\">".$zapros."<\/a>/si"$file_arrey[$i])){
                     
    $pieces explode("|"$file_arrey[$i]);

                     if(
    count($pieces)>=$ogranishenie){
                      
    $file_arrey[$i]="";
                      
    $newb=count($pieces)-1;
                      for(
    $if=0$if<$newb$if++){
                          if(
    $if==0){
                           
    $file_arrey[$i]=$file_arrey[$i].$pieces[$if];
                           }
                         else{
                           
    $file_arrey[$i]=$file_arrey[$i]."|".$pieces[$if];
                         }
                      }
                      
    $ni=$i+1;
                      if(
    $file_arrey[$ni]!=''){
                      
    $file_arrey[$i]="<a href=\"http://".$prixod.$pprixod."/\">".$zapros."</a>|".$file_arrey[$i]."\r"."\n";
                      }
                      else{
                      
    $file_arrey[$i]="<a href=\"http://".$prixod.$pprixod."/\">".$zapros."</a>|".$file_arrey[$i];
                      }
                     }
                     else{
                     
    $file_arrey[$i]="<a href=\"http://".$prixod.$pprixod."/\">".$zapros."</a>|".$file_arrey[$i];
                     }
                  }

              
    $prov=1;

             }
         }
         if(
    $prov==0){
          
    $ip=count($file_arrey);
          if(
    $ip==0){$file_arrey[$ip]="<a href=\"http://".$prixod.$pprixod."/\">".$zapros."</a>";}
          else{
          
    $file_arrey[$ip]="\r"."\n"."<a href=\"http://".$prixod.$pprixod."/\">".$zapros."</a>";}
         }
         
    $f_open=fopen($filename,'w');
         
         for(
    $i=0$i<=count($file_arrey); $i++){
          
    fwrite($f_open$file_arrey[$i]);
          }
         
    fclose($f_open);

     }
    ?>


    как применить функцию flock() чтобы запереь файл в тот момент пока в него идет 1 обращение

    немогу решить проблемы - иногда в базу попадают пустые запросы и пишуться в тхт файл

    грешу уже на то что не используеться запипание flock()

    помогите встваить в код эту функцию или пожскажите где еще может быть ошибка :)
     
  5. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Подскажите в чем проблема.
    Выполняю вот такой код.
    Code:
      if(isset($_POST["get_clan"])) {
      	 $query = "SELECT auth_id FROM userlist WHERE clan='".$_POST['get_clan']."'";
      	 echo $query;
       	 $resurs = mysql_fetch_assoc(mysql_query($query));
       	 print_r($resurs);
      }
    
    В итоге запрос получается вот такой
    Code:
    SELECT auth_id FROM userlist WHERE clan='0'
    В этой таблице 2 значения с таким условием. Но скрипт выводит только одно! В чем ошибка?!
    Причем если выполняю этот же запрос через PHPMyAdmin то выводиться 2 значения.
     
  6. FindeR

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

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20

    Code:
      if(isset($_POST["get_clan"])) {
      	 $query = "SELECT auth_id FROM userlist WHERE clan='".$_POST['get_clan']."'";
    	 $query = mysql_query($query);
      	 while ($resurs = mysql_fetch_assoc($query))
    	 {
    		echo $resurs['auth_id'] . '<br />'
    	 }
      }
    
    Если clan числовое поле, то зачем кавычки ? intval($_POST['get_clan'])
     
  7. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Допустим, есть $text а в ней содержимое:
    bla-bla*blabla*sdffsfdsdfewfjwefewfejjewlfelkfjekfewlfjwekjfewjfl
    надо чтобы другой переменной присвоилось значение то, что между * и *, то есть blabla, и причём заметьте, что текст между * и * меняется, как такое реализовать?

    А, ну в принципе preg_match щас заюзаю)
     
  8. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    если разделитель всегда *
    то можно
    explode('*',$text)
     
    1 person likes this.
  9. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Да, всегда :) Спасибо большое))
    Что-то я сам не догадался, что разделитель можно юзать...
     
  10. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    как напписать условие что если в $zapros попадает например слово или фраза в котором есть части слов например www. и .ru то выполнение скрипта прекратить?


    ченить типа if (.........) die("стоп");
     
  11. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    ufaclub, preg_match, strchr, strpos
     
  12. ufaclub

    ufaclub New Member

    Joined:
    13 Jul 2010
    Messages:
    204
    Likes Received:
    0
    Reputations:
    0
    да знаю я какие функции нужно использовать :( у меня проблемы с синтаксисом. мне б готовое выражение :)
     
  13. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    if (preg_match("#w{3}\.|\.ru#", $zapros)) die("стоп");
     
  14. Ro Man

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

    Joined:
    4 Jun 2007
    Messages:
    30
    Likes Received:
    16
    Reputations:
    0
    подскажите как записать в файл значения что бы каждый начинался с новой строки
    PHP:
    <?
    $d ="niga"//текст для шифрования
    $t strlen($d);
    $w = -1;
    $file fopen("mass.txt","w");
    while(++
    $w <= $t)
    {
    $mass[$w] = substr($d,$w,1);
    }
    $nw = -1;
    while(++
    $nw <= $t)
    {
    $mass[$nw] = ord($mass[$nw]);
    }
    $n2w = -1;
    while(++
    $n2w <= $t)
    {
    $mass[$n2w] = $mass[$n2w]*sin(1);
    fputs $file$mass[$n2w]);
    echo(
    $mass[$n2w]); echo("<br>");
    }
    ?>
     
  15. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    fputs ( $file, $mass[$n2w] . "\r\n");
     
    1 person likes this.
  16. Ro Man

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

    Joined:
    4 Jun 2007
    Messages:
    30
    Likes Received:
    16
    Reputations:
    0
    ешё 1 вопрос ... при дешифрации текста получаеться файл видимо с неверной кодировкой. при выводе в браузер - все отлично, но когда записываеться в файл там "渀杩a" Зашифрованно "niga"
    PHP:
    <?php 
    $file 
    file("mass.txt");
    $file2 fopen("otvet.txt","w");
    $lines count($file);
    $i=-1;
    while(++
    $i <= $lines)
    {
    $new[$i] = $file[$i]/sin(1);
    //echo($new[$i]);echo("<br>");
    }
    for (
    $d=-1$d <= $lines;$d++)
    {
    settype($new[$d],string);
    $otvet[$d] = chr($new[$d]);
    echo(
    $otvet[$d]);
    fputs $file2$otvet[$d]);
    }
    ?>
    upd: прчем не которыми текстами работает нормально ... " че за ***ня " в файле получилось) только почему то есть пробел перед 1 сиволом и после последнего... %) в браузере такого нет при выполнении
    PHP:
    echo($otvet[$d]);
    причем ешё заметил всегда последний сивол верный ... %)
    upd: echo(mb_detect_encoding($new[0]));
    говорит что это ASCII
    попорбывал так -
    PHP:
    fputs($file2iconv("ASCII""UTF-8"$otvet[$d]));
    не чего не получаеться %)
     
    #19876 Ro Man, 19 Jan 2012
    Last edited: 19 Jan 2012
  17. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Подскажите кто сможет.
    Задача. Добавить в базу Mysql год,дату,число,время на 1 месяц в перед.
    Это сделано с помощью функции
    Code:
    function time_add($month) {
    	$d=date('Y-m-d H:i:s');
    	$date = new DateTime($d);
    	$date->modify("+".$month." months");
    	$date = $date->format('Y-m-d H:i:s');
    	return $date;
    }
    
    Далее необходимо взять текущую дату и вычесть из той что в базе. И если эта дата уже прошла то вернуть False;

    P.S. Все уже не надо. Надо было просто перевести в timestamp и вычесть одно из другого. И если число отрицательное то эта дата уже прошла.
     
    #19877 Rastamanka, 19 Jan 2012
    Last edited: 19 Jan 2012
  18. spiderbuber

    spiderbuber New Member

    Joined:
    20 Oct 2010
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Как сократить и упростить код

    Задача: создать 2 файла, записать в каждый свой текст, вывести результат работы, протачить одной датой.
    Решаю через Ж..
    PHP:
    <?php
    $h 
    fopen("file1.php","w");
    $text "text1";
    if (
    fwrite($h,$text)) 
    echo 
    "file1 - ok";
    else
    echo 
    "file1 - error";
    fclose($h);
    touch ("file1.php"strtotime("2012-12-12 12:12:12"));

    $h1 fopen("file2.php","w");
    $text "text2";
    if (
    fwrite($h1,$text)) 
    echo 
    "file2 - ok";
    else
    echo 
    "file2 - error";
    fclose($h1);
    touch ("file2.php"strtotime("2012-12-12 12:12:12"));
    ?>
    Как можно сделать проще и красивей?
     
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    spiderbuber что вы понимаете под "проще и красивее"?

    Ro Man
    Определять кодировку по одному байту - бессмысленная затея. Причину объяснять нужно?
     
    _________________________
    1 person likes this.
  20. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    opendir()

    Наговнокодил небольшой скрипт, помогите дописать плиз:
    PHP:
    <?php
    if ($handle opendir('/home/www/site/multimedia/video/BharatiMj')) {
        while (
    false !== ($file readdir($handle))) { 
            if (
    $file != "." && $file != "..") {
                
    $namearr[] = $file;
            }        
        }
        
    closedir($handle); 
    }
    print_r ($namearr);
    ?>
    Скрипт возвращает все имена видеофайлов из директории /home/www/site/multimedia/video/BharatiMj/
    Задача получить имена видеофайлов из раздела /home/www/site/multimedia/video/ и всех подразделов (папок, которые будут в папке video).
    Подскажите, как правильно сделать?
     
Thread Status:
Not open for further replies.