Ressources dev:PHP

De Ressources pour développeurs - The Roxane Company.
(Différences entre les versions)
Aller à : Navigation, rechercher
(Gestion des sessions avec Internet Explorer et Safari)
(Changer de certificat sur OVH)
 
(6 révisions intermédiaires par 4 utilisateurs sont masquées)
Ligne 1 : Ligne 1 :
Intro
+
== encodeURIComponent ==
 +
encodeURIComponent(texte)
  
 +
== PHP: mb_substr à la place de substr pour l’UTF-8 ==
  
== Avant de passer un projet en production ==
+
Si vous utilisez un hébergement mutualisé pour quelconque site ou service, lors du développement, tout doit être encodé de la même manière. Comme je le conseil dans l’article concernant les problèmes d’encodage, utiliser UTF-8 avec PHP n’est pas toujours facile, surtout quand c’est PHP lui-même qui vous transforme vos chaines de caractère UTF-8 en ISO-8859-1 (si c’est l’encodage de caractère utilisé sur le serveur…).
  
- Supprimer les display_error / error_reporting
+
C’est en effet le cas de la fonction substr qui converti les chaines de caractères. Comprendre d’où vient l’erreur d’encodage sans penser que ça pourrait être PHP lui-même, c’est dur… Donc, pour spécifier l’encodage à utiliser pour substr, il faut utiliser la fonction mb_substr et lui ajouter un argument comme ceci:
  
- Retirer les "or die()" en MySQL
+
<syntaxhighlight lang="php">
 +
$new_string = mb_substr($string, $start, $end, 'UTF-8');
 +
</syntaxhighlight>
  
 +
[http://www.d-sites.com/2009/07/23/php-mb_substr-a-la-place-de-substr-pour-lutf-8/]
  
== Encoder en UTF-8 ==
+
== Avant de passer un projet en production ==
- Modifier l’en-tête HTML
+
  
<syntaxhighlight lang="html4strict">
+
- Supprimer les display_error / error_reporting
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
+
<head>
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
<title>…</title>
+
</head>
+
</syntaxhighlight>
+
  
- Modifier l’encodage des fichiers avec NotePad++
+
- Retirer les "or die()" en MySQL
  
- Modifier l’encodage au niveau des tables dans PhpMyAdmin
 
 
- Juste en dessous de la connexion MySql ajouter :
 
<syntaxhighlight lang="php">
 
$this->mysqli->query("SET NAMES 'utf8'") or die ('error');
 
</syntaxhighlight>
 
  
 
== Afficher les messages d’erreur ==
 
== Afficher les messages d’erreur ==
Ligne 57 : Ligne 48 :
  
 
A placer juste en dessous de "session_start()"
 
A placer juste en dessous de "session_start()"
 +
 +
== Changer de certificat sur OVH ==
 +
Le certificat doit être renouvelé tous les ans, il a normalement été reçu par email.
 +
 +
1 - Uploader le certificat sur le serveur OVH, dossier/etc/httpd/conf
 +
 +
2 - Editer le fichier /etc/httpd/conf/httpd.conf et remplacer le nom des certifs
 +
 +
2 - Relancer Apache et tester
 +
 +
Source : http://www.tbs-certificats.com/FAQ/fr/93.html
 +
 +
EDIT JK : chemin du fichier httpd.conf : /usr/local/apache/conf/httpd.conf

Version actuelle en date du 16 avril 2013 à 17:35

Sommaire

[modifier] encodeURIComponent

encodeURIComponent(texte)

[modifier] PHP: mb_substr à la place de substr pour l’UTF-8

Si vous utilisez un hébergement mutualisé pour quelconque site ou service, lors du développement, tout doit être encodé de la même manière. Comme je le conseil dans l’article concernant les problèmes d’encodage, utiliser UTF-8 avec PHP n’est pas toujours facile, surtout quand c’est PHP lui-même qui vous transforme vos chaines de caractère UTF-8 en ISO-8859-1 (si c’est l’encodage de caractère utilisé sur le serveur…).

C’est en effet le cas de la fonction substr qui converti les chaines de caractères. Comprendre d’où vient l’erreur d’encodage sans penser que ça pourrait être PHP lui-même, c’est dur… Donc, pour spécifier l’encodage à utiliser pour substr, il faut utiliser la fonction mb_substr et lui ajouter un argument comme ceci:

$new_string = mb_substr($string, $start, $end, 'UTF-8');

[1]

[modifier] Avant de passer un projet en production

- Supprimer les display_error / error_reporting

- Retirer les "or die()" en MySQL


[modifier] Afficher les messages d’erreur

Par défaut, les messages d'erreur ne sont pas affichés sur OVH. Pour y remédier, placer le code suivant en haut de page :

ini_set('display_errors','on');
error_reporting(-1);


[modifier] Gestion des sessions avec Internet Explorer et Safari

Source : http://bit.ly/n75we3

Les variables sessions ne fonctionnent pas sur IE si le nom de domaine (ServerName) contient des caractères spéciaux (notamment "_" ou "-")

La solution :

header('P3P: CP="CAO PSA OUR"');

Autre solution :

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');

A placer juste en dessous de "session_start()"

[modifier] Changer de certificat sur OVH

Le certificat doit être renouvelé tous les ans, il a normalement été reçu par email.

1 - Uploader le certificat sur le serveur OVH, dossier/etc/httpd/conf

2 - Editer le fichier /etc/httpd/conf/httpd.conf et remplacer le nom des certifs

2 - Relancer Apache et tester

Source : http://www.tbs-certificats.com/FAQ/fr/93.html

EDIT JK : chemin du fichier httpd.conf : /usr/local/apache/conf/httpd.conf

Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Boîte à outils