Problème de chemin

Fermé
pedrilito - 18 mars 2013 à 13:07
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 18 mars 2013 à 14:45
Bonjour,
J'ai un problème avec un projet que je suis en train de créer.
Je vous explique mon problème:
J'ai un formulaire pour lequel je récupère les données puis j'insère dans une base données MYSQL. Jusque là tout va bien.
Puis je crée un répertoire et un fichier texte qui récapitule les données misent par le client dans le formulaire pour lui permettre de voir ce qu'il a transmis.
Mon problème est le suivant ce dossier et ce fichier je dois les créer dans un lecteur réseaux cependant quand je les crée ils ne se s'affiche pas dans le lecteur réseaux.
Je vous transmets le code que j'ai écrit:
$id = mysql_insert_id();
			
			/
			echo "L'identifiant du dernier enregistrement est : ".$id;
			echo"<br/>";
			
			$nom = $id ; // Le nom du répertoire à créer
			$structure = '\\FRWPLCH-NAS03\auto_adhoc\Usage_Restitution\' '.$nom.' ';
			

					// vérifie si le répertoire existe :
			if (is_dir($structure)) {
                  
					echo 'Le répertoire existe déjà!';
					
            }
					// création du nouveau répertoire
			else { 		
					if (!mkdir($structure, 0, true)) {
						die('Echec lors de la création des répertoires...');
					}
					
					else
					{chmod($structure, 0755);
					echo 'Le répertoire '.$nom.' vient d\'être créé!'; 
					
			}
			}
			echo"<br/>";
			
			$struct ='\\FRWPLCH-NAS03\auto_adhoc\Usage_Restitution\''.$nom.'\Usage_restitution_'.$nom.'';
			//création d'un fichier
			
			$fp=fopen("$struct","w+",0777);
		
			if (is_writable($struct)) { 
			//écriture dans le fichiers
			fputs ($fp,"e-mail du créateur de letude = ".$createur."\r\n"); 
			fputs ($fp,"e-mail du demandeur = ".$demandeur."\r\n");
			fputs ($fp,"nom du marché = ".$march." \r\n");
			fputs ($fp, ".sec usage de calage = ".$sec1."\r\n");
			fputs ($fp," période de début = ".$an."".$per."\r\n");
			fputs ($fp, "période de fin = ".$ans."".$periode."\r\n");
			fputs ($fp, ".mod de calage = ".$mod."\r\n");
			fputs ($fp, "descriptif de lexport = ".$exp."\r\n");
			fputs ($fp, ".sec usage à restituer = ".$sec."\r\n");
			fputs ($fp, "creation fromscratch = ".$fromscratch."\r\n");
			//fermeture du fichier
			echo "les données ont bien été écrit!";
			fclose($fp);


J'aimerais savoir pourquoi il ne s'affiche pas et comment résoudre ce problème

Merci

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 18/03/2013 à 14:03
pourquoi te compliquer autant la vie.

Après avoir enregistré dans la BDD ,dans le même script php qui a fait cet INSERT, il suffit de relire ce qui est écrit dans la base et de le ré-afficher à l'utilisateur dans la page de confirmation.
0
Le problème c'est que c'est à la demande du client qui veut absolument ce fichier texte. Et je n'ai pas pu négocier sur ce point.
Je leur avez proposer cette solution ils en voulaient pas. :(
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 18/03/2013 à 14:49
ok

$structure = '\\FRWPLCH-NAS03\auto_adhoc\Usage_Restitution\' '.$nom.' ';

tel que tu fais il y a un espace au début et à la fin du nom du répertoire =>> a éviter

de plus lorsque tu essaie d'écrire dans le fichier tu mets le chemin sans ces espaces
$struct ='\\FRWPLCH-NAS03\auto_adhoc\Usage_Restitution\''.$nom.'\Usage_restitution_'.$nom.'';

et les barres obliques \ sont des caractères d'échappement en php

essaies de les remplacer par des /


$structure = '/FRWPLCH-NAS03/auto_adhoc/Usage_Restitution/'.$nom; 

$struct ='/FRWPLCH-NAS03/auto_adhoc/Usage_Restitution/'.$nom.'/Usage_restitution_'.$nom.''; 


ou si elles doivent être absolument \
il faut les échapper

$structure = "\\\\FRWPLCH-NAS03\\auto_adhoc\\Usage_Restitution\\".$nom;

$struct ="\\\\FRWPLCH-NAS03\\auto_adhoc\\Usage_Restitution\\".$nom."\\Usage_restitution_".$nom;
0