Page 1 sur 2
code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 03:11
par stefane321
Bonjour,
J'ai un client qui m'a imposer d'héberger son site sur le serveur de son ami qui roule en IIS WINDOWS
Bizarre, jai du code qui marche très bien sur linux mais que sur le windows sa marche pas
En voici un qui me donne la vie dure
$delete_file=unlink("".$pathImg."photos/img_prod/".$row["image"]."");
L'erreur que je reçoit
Code : Tout sélectionner
Warning: unlink(\D:\inetpubhosts\brodepromochic.com\httpdocs\photos\img_prod\47.jpg) [function.unlink]: Invalid argument in D:\inetpub\vhosts\brodepromochic.com\httpdocs\photos\supprime_photos.php on line 20
Pouvez-vous m'aider svp?
Merci
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 03:17
par AB
Peut-être les séparateurs de dossiers qui sont "/" avec UNIX et "\" avec windows ?
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 03:29
par stefane321
bien comme tu peux voir, je lai modifié pour windows et sa marche pas
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 08:40
par Mazarini
\D:\inetpubhosts\brodepromochic.com\httpdocs\photos\img_prod\47.jpg
A mon avis, c'est le premier \ qui pose problème. Tu dois d'ailleurs pouvoir enlever le D: si le site est du D:
Tu peux faire des tests avec la fonction file_exists()
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 15:28
par stefane321
rien ne fonctionne
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 15:32
par Yosh
rien ne fonctionne
Si tu pouvait lire les réponses, cela te donnerais une piste.
Et en l’occurrence Mazarini à un très bon début de piste.
Vérifie donc ton chemin.
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 15:38
par stefane321
quand je disais rien ne fonctionne cétait après avoir essayé les suggestions de marizani
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 15:52
par Yosh
Affiche cette chaine
echo "".$pathImg."photos/img_prod/".$row["image"]."";
Rien d'anormal ?
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 16:03
par stefane321
Code : Tout sélectionner
inetpubhosts\brodepromochic.com\httpdocs\photos\img_prod\54.jpg
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 16:14
par Mazarini
et le fichier se trouve ou ?
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 16:25
par stefane321
et le fichier se trouve ou ?
je comprend mal la question ... physiquement il est là le path le dit mais si je fais un
$filename = ''.$pathImg.'photos\img_prod\\'.$row["image"].'';
if (file_exists($filename)) {
echo "Le fichier $filename existe.";
} else {
echo "Le fichier $filename n'existe pas.";
}
sa dit que le fichier nexiste pas
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 16:31
par Yosh
Sauf erreur de ma part, on n'a jamais vu un path commençant par une chaine sans anti-slash (enfin sous linux je sais pas, et de toute façon j'utilise la constante pré-définie DIRECTORY_SEPARATOR)
Donc ton path est faux.
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 16:39
par stefane321
Sauf erreur de ma part, on n'a jamais vu un path commençant par une chaine sans anti-slash (enfin sous linux je sais pas, et de toute façon j'utilise la constante pré-définie DIRECTORY_SEPARATOR)
Donc ton path est faux.
le slash du début je lai enlevé suivant la suggestion de marizani
alors comment avoir le bon path? si:
echo realpath("config.php");
me donne:
D:\inetpub\vhosts\brodepromochic.com\httpdocs\config.php
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 16:50
par Yosh
D:\inetpub\vhosts\brodepromochic.com\httpdocs\config.php
c'est tout de même bien différent de
D:\inetpubhosts\brodepromochic.com\httpdocs\
Re: code qui ne marche pas sur windows mais marche sur linux
Posté : 22 sept. 2011, 17:07
par stefane321
haaa javais pas remarqué que le vhost disparait ... bizarrre
dans mon code la variable du chemin est
$pathImg ="D:\inetpub\vhosts\brodepromochic.com\httpdocs\\";
mais une fois exécuté dans:
$delete_file=unlink(''.$pathImg.'photos\img_prod\\'.$row["image"].'');
la partie vhost disparait ...
avez-vous une idée de la cause?