У кого какие есть примеры различных интересных кусков кода на языке php.Например обращение напрямую к TCP портам, SMTP,чтение через POP3 или еще что нибудь.Дабы не марать тему прошу выкладывать куски кода поменьше и по существу.Скажем мой сендмеил,который работает через GET Post include() весит всего менее 50 строчек,зато отправляет всё! goshala и goshalev -одночеловеческие клоны!
Кстати глицин помогает,воспаления органа программирования-должен сказать не очень приятно но вроде проходит
Чтобы не быть голословным мааленький но сцуко работоющий сендмаил на php PHP: <?php header("Cache-control:no-cache"); require_once("../settings/host.php"); require_once("../settings/smtp.php"); if(isset($_GET["to"]))$to=$_GET["to"]; if(isset($_GET["subject"]))$subject=$_GET["subject"]; if(isset($_GET["body"]))$body=$_GET["body"]; if(isset($_POST["to"]))$to=$_POST["to"]; if(isset($_POST["subject"]))$subject=$_POST["subject"]; if(isset($_POST["body"]))$body=$_POST["body"]; if((!isset($body))||(!isset($to))||(!isset($subject))){ echo(0); exit; }; $m=fsockopen($smtp_server,25); fputs($m,"ehlo $hostname \r\n"); fputs($m,"AUTH LOGIN \r\n"); fputs($m,base64_encode($smtp_login)."\r\n"); fputs($m,base64_encode($smtp_pass)."\r\n"); fputs($m,"mail from:<".$smtp_email."> \r\n"); fputs($m,"RCPT TO:<$to> \r\n"); fputs($m,"DATA \r\n"); fputs($m,"From: $smtp_username <$smtp_email> \r\n") ; fputs($m,"To:<$to> \r\n") ; fputs($m,"Subject: $subject \r\n\r\n"); $body=str_replace("\r\n"."."."\r\n","\r\n",$body); fputs($m,"$body"."\r\n"."."."\r\n"); fputs($m,"QUIT"); $a=""; while(!feof($m)){ $a=$a.fgets($m,1000);}; $b=0; if(strpos($a,"Data received OK.")>0)$b++; if(!isset($notecho))echo($b); ?>
Это соотвественно имя хоста и прочие настройки,файлы настроичные я туда почти ничего не клал,кроме имени хоста и прочего.Вообще проще htaccess нормально настроить,но тогда это не были бы уже трюки на php а стандартная функция mailЕсть еще пара непредсказуемых глупостей,благодаря которым наш народ непобедим
Насчёт задачи по шифрованию.Там значит от 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! возможных кодировок и ни один суперкомп такое не расшифрует!
Насчёт обратной функции md5.Берем первый символ строки,от него абсолютное значение синуса.Меняем местами 5 7 3 1 цифры синуса-это ппц какой рандом!Далее получаем новый символ random(256)*sin(xXx) и записываем на место старого.В общем тут можно такое наплодить,такой рандом,что математически такое не восстанавливается
http://vkontakte.ru/app1766791_270173 Предлагаются задачи на спички вконтакте http://vkontakte.ru/note270173_9702391 Собственно прога считает какие спички ужно убрать,очень кстати я там таким макаром очков набрал,прикольно,просто мозгом тяжелее,все равно мозгом получается тупой перебор
PHP: <?php $r=time(); function random($to){ global $r; $s=abs(sin($r)).""; $r=$s[6].$s[4].$s[5]; return round(($r/1000)*$to); }; $x=0;$y=0;$z=0; for($i=0;$i<10000;$i++){ $a=random(2); if($a==0)$x++; if($a==1)$y++; if($a==2)$z++; }; echo("x=".$x."y=".$y."z=".$z); ?> Тот самый рандом через синус...получилось что 60 на 40 в общем точно не 50 на 50,хотя по идее странно как то
А кстати комп хорошо играет в палочки,с очень умным видом! <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>
айловый менеджер-прикольно позволяет менеджерить файлы! <?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>
Угадай что??? <?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); ?>
igordata В конфиге апача Код (Text): AddType application/x-httpd-php-source .phps скрипт сохранить как .phps =)
У меня был такой 1 - не будет работать если сервак не держит SMTP Pipelining (надо не только отправлять на порт данные но и считывать ответ) 2 - надо проверять входящие данные (или просто запаролить его) иначе им могут воспользоваться спамеры
Ensiferum Elkaz Отправлять заголовок из скрипта тут бесполезно, откуда в выводе взяться исходному коду?