LA GLOBULE

Inscris le 25/09/2002 à 10:40
  • Site web
  • Nombre de sujets
    47
  • Nombre de messages
    8 345
  • Nombre de commentaires
    142
  • Nombre de news
    8 346
  • Niveau en PHP
    Excellent

Ses derniers messages sur les forums

LA GLOBULE
le 29/07/2009 à 15:35
caractéres spéciaux
Enfin pour le 5), il faut le faire juste une fois par session de communication avec MySQL.


Donc ce set names, tu as à le faire qu'une fois, idéalement juste après ton mysql_connect.

Ensuite, pour tes smileys, sache que beaucoup de fonction de chaine de caractères ne sont pas compatibles UTF-8 dans PHP. PHP6 corrigera ce soucis.
Je te suggere de lire le manuel PHP concernant l'extension mbstring.

En effet, beaucoup de fonction de PHP se basent sur des octets et nom les caractères pour faire des calculs. Comme en UTF-8 un caractère peut être encodé sur 2 octets, ces fonctions retourneront un résultat faux.

Exemple :
<?php
$str = 'école';
echo strlen($str);
echo mb_strlen($str);
?>


Si tu es en UTF-8, le premier echo affichera 6, le deuxième 5.

Et aussi si tu utilises les fonctions mbstring, il te faudra configurer l'environnement pour dire à mbstring que tu travailles en UTF-8 (tout est expliqué dans la doc).
LA GLOBULE
le 29/07/2009 à 12:34
caractéres spéciaux
Le fait que tu n'ais pas compris le 2) et ta fonction caractere_speciaux me font douter sur le fait que tu ais compris le problème.

Tes caractères louches ne sont pas des "caractères spéciaux" comme tu le dis, mais des caractères comme les autres.
Seulement, tu les affiches "mal".

Si tu prend le caractère 'é' encodé en ISO-8859-1, celui ci prendra 1 octet en mémoire.
Le même catactère 'é' encodé en UTF-8 prendra 2 octets en mémoire et il s'affichera 'é' sur une page UTF-8, et il s'affichera 'é' sur une page ISO-8859-1 (les 2 octets).

Le 'é' est juste la représentation ISO-8859-1 du caractère UTF-8 'é'.

Sinon, pour en revenir au 2), moi mon éditeur de texte a dans ses options un truc qui dit "utiliser l'encodage de caractère ... pour sauvegarder les fichiers" et je choisis UTF-8 (c'est ton éditeur qui va encoder tes 'é' sur 2 octets, automatiquement).

Pour le 3), il te suffit de faire un header('Content-type: text/html; charset=utf-8'); avant d'afficher ton html.

Enfin pour le 5), il faut le faire juste une fois par session de communication avec MySQL.
LA GLOBULE
le 29/07/2009 à 00:04
caractéres spéciaux
Marrant, je ne connaissais pas cette fonction :)

Comme quoi, avec preque 9 ans de PHP dans les dents ben on en apprend encore.
LA GLOBULE
le 28/07/2009 à 20:59
Script pour fusionner deux images
Si c'est un homme d'affaires qui n'y connait rien à PHP, je pense qu'il préfère 100 fois dépenser 45 €


Je suis d'accord. Mais ... :)

1) Je doute que birdy soit un homme d'affaire (un homme d'affaire ne dirait pas "j'ai que 45 euros sur mon compte")
2) Y'a rien de plus chiant que le GD, pas que ce soit compliqué en soit, mais parce que les install de GD sont souvent bancales, tous les formats d'image ne sont pas supportés, etc.
3) Le 2) implique un certain support (qui vaudrait plus que 45 euros, mais le client lui, il s'en cogne, il a payé, il veut que son script fonctionne, même lors d'une mise à jour du serveur)
4) si 1) et 3) sont réunis, alors la, c'est le drame. Car cela veut souvent dire travail au noir. Et un non professionnel ne fera que de te harceler en gueulant qu'il faut que tu répares le script (alors qu'il a marché un jour et que la maj de PHP ou de GD fait en sorte qu'il ne marche plus), alors qu'un pro aurait plus tendance à essayer d'arranger le problème, quitte à signer un contrat de maintenance

Enfin personnellement, pour 45 euros, je ne mets meme pas mon reveil à sonner (sauf ci ce script débouche de meilleures opportunités).
LA GLOBULE
le 28/07/2009 à 20:18
caractéres spéciaux
Alors, c'est simple, tu as un problème de charset.

Voici ce qu'il faut faire :
1) choisir un charset :p (UTF-8 ou ISO-8859-1 ou ce que tu veux)
2) une fois le charset choisi, il faut configurer ton éditeur de texte pour utiliser ce charset
3) Il faut faire en sorte de dire à apache de servir tes pages avec le charset que tu as choisis (tu peux utiliser la fonction header de php pour cela)
4) Configurer ta base SQL en utilisant les collate appropriées à ce charset
5) Quand tu initialises ta connexion SQL, il te faut dire à MySQL quel charset tu comptes utiliser, pour cela, tu peux faire un mysql_query de la requete "SET NAMES 'utf8'" et de "SET CHARACTER SET utf8" (si tu souhaites utiliser l'UTF-8)).

Alors bien sur, cela peu paraitre chiant, et toutes ces vérifications ne sont pas necessaires (certains trucs par defaut peuvent faire que ton code fonctionne, mais il vaut mieux tout vérouiller).
LA GLOBULE
le 26/07/2009 à 13:04
Info d'un cookie session_start()
T as essayé de debuguer ?

Est ce que ton cookie existe ? (il faut savoir que quand on initialise un cookie, il n'existe réellement que lors de l'appel d'une seconde page).
Si oui, affiche le contenu de ton cookie pour voir ce qu'il contient, ca devrait deja t'aider.

PS : il faut handler le fait que mysql_query puisse retourner false.
LA GLOBULE
le 25/07/2009 à 18:59
Info d'un cookie session_start()
C'est normal de tester le cookie $_COOKIE['test_cookie'], puis d'utiliser le cookie $_COOKIE['bachatissus'] ?

A priori, c'est $_COOKIE['test_cookie'] que tu dois utiliser.
LA GLOBULE
le 24/07/2009 à 17:59
Control contenu table si faux insertion
Je me suis gourré, ce n'est pas mysql_real_escap_string mais mysql_real_escape_string.

PS : pense au BB-Code stp quand tu colles du code sur le forum... Et check tes mysql_query.
LoadingChargement en cours