Ressources dev:PHP

De Ressources pour développeurs - The Roxane Company.
(Différences entre les versions)
Aller à : Navigation, rechercher
(Encoder en UTF-8)
(Changer de certificat sur OVH)
 
(12 révisions intermédiaires par 4 utilisateurs sont masquées)
Ligne 1 : Ligne 1 :
Intro
+
== encodeURIComponent ==
 +
encodeURIComponent(texte)
  
== Encoder en UTF-8 ==
+
== PHP: mb_substr à la place de substr pour l’UTF-8 ==
1 - Modifier l’en-tête HTML
+
  
<syntaxhighlight lang="html4strict">
+
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…).
<!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">
+
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:
<head>
+
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
<syntaxhighlight lang="php">
<title>…</title>
+
$new_string = mb_substr($string, $start, $end, 'UTF-8');
</head>
+
 
</syntaxhighlight>
 
</syntaxhighlight>
  
2 - Modifier l’encodage des fichiers avec NotePad++
+
[http://www.d-sites.com/2009/07/23/php-mb_substr-a-la-place-de-substr-pour-lutf-8/]
  
3 - Modifier l’encodage au niveau des tables dans PhpMyAdmin
+
== Avant de passer un projet en production ==
  
4 - Juste en dessous de la connexino MySql ajouter
+
- Supprimer les display_error / error_reporting
 +
 
 +
- Retirer les "or die()" en MySQL
 +
 
 +
 
 +
== 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 :
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
$this->mysqli->query("SET NAMES 'utf8'") or die ('error');
+
ini_set('display_errors','on');
 +
error_reporting(-1);
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Sous titre 2 ==
 
blablablabla
 
  
 +
== 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 :
  
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
<?php
+
header('P3P: CP="CAO PSA OUR"');
    $v = "string";   // sample initialization
+
?>
+
html text
+
<?
+
    echo $v;        // end of php code
+
?>
+
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Autre solution :
 +
 +
<syntaxhighlight lang="php">
 +
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
 +
</syntaxhighlight>
 +
 +
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