Want some programming help? [close]

NanoDano's blog

Process Form Inputs with PHP

An essential task for most web applications is the ability to take user input. We will look at several common tasks in PHP like:

  • How to access GET query parameters from the URL
  • How to use forms to submit GET and POST values
  • Understanding the security implications of accepting user data and how to protect yourself
  • Creating a form to submit GET or POST requests
  • Handling checkbox and multi-select fields
  • Handing file uploads

HTTP Basic Authentication with PHP

There many ways of performing authentication over the web. You can use a token and pass it as a special header. This is commonly done with API tokens. You can also use a cookie to store a session token. This is common for webservers that have a database session in the backend.

One simple method is to use HTTP Basic Access Authentication. This involves adding a header that contains your username and password. The proper format for the header is:

Authorization: Basic XXXXXX

Where XXXXXX is your credentials in the form of username:password with base64 encoding.

PHP automatically decodes and splits the username and password into special named constants:

  • PHP_AUTH_USER with the username as a plain-text string
  • PHP_AUTH_PW with the password as a plain-text string

We will look at how to restrict a page using HTTP basic authentication in PHP.

Cron Job Examples and Tip

Cron jobs are useful for scheduling commands to run periodically. For example:

  • Every 15 minutes
  • Once per month

In this guide I will show you several common cron tasks and tips that I use including:

  • Common scheduling examples
  • Chaining together multiple programs
  • Redirecting output
  • Checking logs
  • Running a script from a Python virtual environment

Cron is good for programs that run and then complete, like generating a report, but cron is not for services that stay running forever like a web server. If you want to have a program that continuously runs and you want to ensure the program stays running even if it crashes or the server restarts, you want to setup a service. Check out my tutorial on how to do that: Creating Systemd Service Files.

Cron is available in Linux and Mac operating systems, but not Windows.

How to Specify SSH key for Git repository

If you are using SSH keys with Git to clone and pull your repositories, you may have to manage several SSH keys. For example, it is common to setup a "deploy key" in GitHub (Repository | Settings | Deploy Keys) that has read-only rights. GitHub also forces you to use unique SSH deploy keys for each repository, so you have to create a unique SSH keys when you have multiple repositories.

This example shows you how to use specific SSH keys for each remote repository.