code qui ne marche pas sur windows mais marche sur linux

Eléphant du PHP | 331 Messages

22 sept. 2011, 03:11

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

ViPHP
AB
ViPHP | 5818 Messages

22 sept. 2011, 03:17

Peut-être les séparateurs de dossiers qui sont "/" avec UNIX et "\" avec windows ?

Eléphant du PHP | 331 Messages

22 sept. 2011, 03:29

bien comme tu peux voir, je lai modifié pour windows et sa marche pas

ViPHP
ViPHP | 2577 Messages

22 sept. 2011, 08:40

\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()

Eléphant du PHP | 331 Messages

22 sept. 2011, 15:28

rien ne fonctionne

Mammouth du PHP | 568 Messages

22 sept. 2011, 15:32

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.

Eléphant du PHP | 331 Messages

22 sept. 2011, 15:38

quand je disais rien ne fonctionne cétait après avoir essayé les suggestions de marizani

Mammouth du PHP | 568 Messages

22 sept. 2011, 15:52

Affiche cette chaine
echo "".$pathImg."photos/img_prod/".$row["image"]."";
Rien d'anormal ?

Eléphant du PHP | 331 Messages

22 sept. 2011, 16:03

Code : Tout sélectionner

inetpubhosts\brodepromochic.com\httpdocs\photos\img_prod\54.jpg

ViPHP
ViPHP | 2577 Messages

22 sept. 2011, 16:14

et le fichier se trouve ou ?

Eléphant du PHP | 331 Messages

22 sept. 2011, 16:25

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

Mammouth du PHP | 568 Messages

22 sept. 2011, 16:31

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.

Eléphant du PHP | 331 Messages

22 sept. 2011, 16:39

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

Mammouth du PHP | 568 Messages

22 sept. 2011, 16:50

D:\inetpub\vhosts\brodepromochic.com\httpdocs\config.php
c'est tout de même bien différent de
D:\inetpubhosts\brodepromochic.com\httpdocs\

Eléphant du PHP | 331 Messages

22 sept. 2011, 17:07

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?