Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2007, 12h15   #1
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 0
Points : 0
Par défaut [Configuration] Caractères accentués avec SVN

Bonjour à tous,

Je suis en train de créer un projet permettant d'utiliser SVN à travers une interface web. Je suis parti de websvn 2.0.

L'idée est de créer un dossier "working_copies" adossé à un repository sur le serveur d'y copier les fichiers uploadé avec un classique formulaire et de lancer un 'svn add' puis un 'svn commit' par le biais de la fonction shell_exec de php.

Cela fonctionne bien pour les fichiers sans accents mais dès que le nom du fichier ou le message de log contient un caractere accentué ça ne marche plus. Pourtant j'ai tout essayé en terme de conversion en ut8, ... Je précise que ce sont les commandes passées via shell_exec qui ne fonctionnent pas car le fichiers lui est correctement copié dans le répertoire.

error.log de apache retourne quelque chose comme "svn: can't convert string to utf8 encoding'.

Un autre problème qui est peut etre lié: quand j'ajoute "à la main" un fichier avec un accent dans le repository via le shell, websvn affiche à la place du é ?\195?\169 par exemple.

Je ne sais plus quoi faire?

(J'ai mis en place une conversion des caractere accentué en non accentué mais bon ça ne me satisfait pas vraiment, surtout pour les messages de log)
gcolmetdaage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 14h48   #2
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Le fichier doit être également converti pas seulement les caractères...
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 11h44   #3
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 0
Points : 0
Je pense pas que ce soit un problème d'encodage du fichier car le problème est le même lorsqu'il s'agit d'un fichier binaire. (.pdf par exemple)
Je pense que c'est un problème avec la fonction shell_exec....

C'est peut être un problème comme celui-ci http://groups.google.com/group/fr.co...83a07a32d8d7af

J'ai l'impression qu'éxécuter une script via shell_exec n'est pas tout à fait équivalent à l'exécuter via le terminal. non? La configuration est sans doute différente en terme d'encodage des caractères, reglage des locales...

Pour vous faire une idée voici un extrait de mon code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
<?php
 
//upload.php
 
function replaceSpecialChar($texte){	
	$texte = str_replace(" "," ", $texte);
	$texte = str_replace("\'", " ", $texte);
	$texte = str_replace("é","e", $texte);
	$texte = str_replace("è","e", $texte);
	...
return $texte;
}
session_start();
$login = $_SESSION['login'];
 
$log  = $_POST['log'];
 
if( isset($_POST['upload']) ) // si formulaire soumis
{
 
	//On fixe le repertoire où sera placé le fichier
	$content_dir = '/var/www/working_copies/monprojet/';
 
	$tmp_file = $_FILES['fichier']['tmp_name'];
 
	if( !is_uploaded_file($tmp_file) )
	{
		exit("Le fichier est introuvable");
	}
 
	/*//On vérifie maintenant l'extension
	$type_file = $_FILES['fichier']['type'];
 
	if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
	{
		exit("Le fichier n'est pas une image");
	}*/
 
	//On copie le fichier dans le dossier de destination
	$name_file = $_FILES['fichier']['name'];
 
	//On remplace les caractères speciaux par des entities, PARCEQUE SINON LES ACCENTS FONT TOUT FOIRER
	$name_file = replaceSpecialChar($name_file);
	$log = replaceSpecialChar($log);
 
	if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
	{
		exit("Impossible de copier le fichier dans $content_dir");
	}
 
	//On modifie les droits d'accès au dossier et au repository
	chmod("/var/www/working_copies/monprojet", 0777);
	chmod("/var/www/repositories/monprojet", 0777);
 
	//On met le fichier sous le régime de controle de version via la commande add de svn
 
	$script_add = "svn add";
	$com_add = "$script_add /var/www/working_copies/monprojet/$name_file";
	shell_exec($com_add);
 
 
	//On fait un commit pour faire créer une nouvelle révision en passant le login en argument de --username
	$script_commit = "svn --username $login commit -m '$log'";
	$com_commit = "$script_commit /var/www/working_copies/monprojet";
	shell_exec($com_commit);
 
	//on remet les droit (755)
	chmod("/var/www/working_copies/monprojet", 0755);
	chmod("/var/www/repositories/monprojet", 0755);
 
	//Redirection
	header("Status: 301 Moved Permanently", false, 301);
	header("Location: http://127.0.0.1/");
	exit();
 
 
}
?>
Voilà ou j'en suis...
gcolmetdaage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 10h05   #4
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 0
Points : 0
Personne n'a la moindre idée? Connaissez vous un site ou je puisse trouver des infos très détaillé sur la fonction shell_exec?
gcolmetdaage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2007, 16h38   #5
Membre confirmé
 
Inscription : juillet 2007
Messages : 201
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 201
Points : 227
Points : 227
shell-exec
acirfa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 10h04   #6
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 0
Points : 0
Merci pour toutes vos réponses mais je n'arrive toujours pas à régler ce problème.
Quelqu'un peut il essayer de faire
Code :
1
2
3
<?php
shell_exec(mkdir 'chemin quelconque'/oké);
?>
Dites moi si le répertoire est bien créé avec l'accent?

Je pense que le problème vient d'apache et de la configuration des locales.
Avez-vous des infos au sujet de la configuration des locales dans apache?
gcolmetdaage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h43.


 
 
 
 
Partenaires

Hébergement Web