Submitted content ends up with garbage quotes and backslashes : \"\\ "\\\\ etc. A magic_quotes_gpc issue
Symptoms
When saving content (through pretty much any form) that contains either single or double quotes, the data that lands in the system is the "escaped" version of those characters.
Re-saving the save content again can multiply the problem by repeatedly re-escaping the escaped stuff and you end up with strings like<a href=\"\\"\\\\"\\\\\\\\"\\... !!
Short answer
The PHP magic_quotes_gpc value has to be off. And it's not. Really. Even though your phpinfo may say it is!
Normally:
Drupal PHP system requirements for server setup recommend/require it be off - but if not, Drupal tries to work around the problem.
Drupal would prefer magic quotes to be off globally. But when taking form submissions, it checks that flag. If it finds magic quotes are in fact on, it repairs the form input appropriately and carries on.
That usually worked - until recently.
The Gotcha
The Drupal .htaccess file tries to disable the magic_quotes_gpc flag at runtime, but this is not allowed by all configurations and all versions of PHP.
Magic quotes is being deprecated and support for it is going away. Control of it may be troublesome.
Debian 6, Ubuntu 10.04, and Ubuntu 12.04 LTS
Configurations
As the title states, I've installed the module under 3 system configurations :
- Debian 6 / PHP 5.3 / Virtualmin on a private server
- Ubuntu 10.04 LTS / PHP 5.3 on a development workstation
- Ubuntu 12.04 LTS / PHP 5.4 on a development workstation
Installation
Downloadprogress beind installed by PECL, the first step is to install pecl. In both distributions it's included in the php-pear package. So :sudo apt-get install php-pear
In the two operational configurations, the package was already installed ; as a basic component in the Ubuntu WS and as part of Virtualmin auto-installation on the Debian server.
At this stage, pecl is installed but it will need to compile the downloadprogress module as a step of the installation process. So more resources are needed before pecl can be invoked.sudo apt-get install php5-dev
Accept the required dependeces and let apt-get do it's job.
Ubuntu 12.04 (LTS):
build-essentialis another required package, otherwise the install will fail:
sudo apt-get install build-essential
Then pecl can be invoked :sudo pecl install uploadprogress
Local multi-site installation of Drupal 7 on Linux
Drupal allows you to run multiple sites from a single Drupal code installation -- each with its own modules, content, theme, etc. For instance, you can run:
- Multiple sites on your local computer
- Multiple domains in a single hosting account
- Multiple sub-domains
- Multiple sub-directory sites
For a live multi-site installation, see Multisites Using Drupal 7.
This page describes one way to run multiple test sites on your local computer with Drupal 7 on Ubuntu 10.10, Ubuntu 11.04 and Mandriva 2010.2. But the method probably works with little modifications for other distributions. Purposedly, we only present one way to do that, in details, and we try to explain a bit what we're doing. We're not sure whether this procedure contains mistakes or not, and we think it probably contains useless things.
Note: if you are creating multiple sites, it is desirable to make a list of the desired sites before reading through these instructions completely. Some steps can be done in bulk to save time.
Read more