Bonjour,

J'ai développeé deux pages php en local sur mon PC qui upload (en ftp) toutes les image du répertoire que je sélectionne via mon formulaire (upload_files.php).
Avant d'accéder à upload_files.php, j'ai une page index.php qui me demande mes identifiants de connexion au serveur ftp. Si identifiants incorrects alors on affiche pas la page d'upload.
L'upload des fichiers se passe bien depuis mon serveur apache local sur mon pc vers le site de 1&1 (j'ai un serveur dédié).

Par contre, lorsque je mets mon site sur 1&1 et que je sélectionne le répertoire contenant les photos à uploader, ça ne fonctionne pas.
Je n'arrive pas à savoir pourquoi car mes scripts php sont identiques en local et sur le serveur 1&1.

J'ai un script qui supprime les photos que l'on sélectionne dans le formulaire. ça fonctionne lorsque j'execute le script php depuis mon serveur apache en local et ça ne fonctionne pas sur le site héberger chez 1&1.

Avez-vous déjà été confronté à cela ?

Config en local :
windows 7 (et tester sur xp aussi)
apache 2.2.11
php 5.3.0

Config chez 1&1 : ? (comment savoir la config?)


script de index.php (connexion ftp):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title> Administration photos</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="administration.css" />
   </head>
   <body>
		<script>
			window.resizeTo(screen.width,screen.height-26);
			window.moveTo(0,-1);
		</script>
		<?php include("admin.php");?> <!--contient les fonctions php-->
		<form action="upload_files.php" method="post" name="feuteupeu" enctype="multipart/form-data">
			<fieldset class="fieldset_connexion">
					<legend> Connexion au serveur </legend> <!-- Titre du fieldset -->
					<p>
					<label> Serveur : </label><input type="text" name="serveur" value="votre site.fr" size="30"/><br /><br />
					<label> Identifiant : </label><input type="text" name="login" value="votre identifiant" size="30"/><br /><br />
					<label> Mot de passe : </label><input type="password" name="mdp" value="" size="30"/><br /><br />
					</p>
					<p>
					<input type="submit" name="valider" value="Valider"/><br /><br />
					</p>
			</fieldset>
		</form>
   </body>
</html>
script de upload_files.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
// On démarre la session AVANT d'écrire du code HTML
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Administration photos</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="administration.css" />
   </head>
   <body>
		<script>
			window.resizeTo(screen.width,screen.height-26);
			window.moveTo(0,-1);
		</script>
		<?php
			require("admin.php"); 
			ftp_identification();
			if (isset($_SESSION['serv'],$_SESSION['use'],$_SESSION['mdp'])){
		?>
		<form action="#ftp" method="post" name="feuteupeu">
			<input type="hidden" name="MAX_FILE_SIZE" value="12345" />
			<div id="div_local">
				<div class="fieldsets">
					<fieldset>
					<legend> Photos à transférer </legend> <!-- Titre du fieldset -->
						<label for="file"> Choisir une photo :  </label><input type="file" name="file" id="file" /><br /><br />
						<input type="submit" name="submit" value="Envoyer" />
					</fieldset>
				</div>
			</div>
			<div id="message_upload">
				<div name="ftp">
				<?php
					//upload les fichier du répertoire complet s'il y en a un de renseigné dans input "file"
					//echo $_SESSION['serv'] ."<br /> ";
					//echo $_SESSION['use']."<br /> ";
					//echo $_SESSION['mdp']."<br /> ";
					upload_repertoire_complet();
				?>
				</div>
			</div>
			</form>
			<form action="supprimer_photo.php" method="post" >
			<div id="div_site">
				<div class="fieldsets">
					<fieldset>
					<legend> Diaporama du site </legend> <!-- Titre du fieldset -->	
						<div class="liste_photo">
							<input class="btn_suppr" type="submit" name="submit" value="supprimer" align="right"/></br></br></br>
							<?php Lister_puces_photo($DESTINATION_FOLDER);?>						
						</div>
					</fieldset>
				</div>
			</div>
			</form>
   </body>
</html>
<?php
}
?>
et voici les fonctions que j'utilise dans upload_files.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<?php





/********************************************************************************************/
/*	UPLOAD des IMAGES																		*/
/********************************************************************************************/

// Définition des extensions de fichier autorisées (avec le ".")
$AUTH_EXT = array( ".jpg", ".jpeg",".png",".bmp", ".JPG", ".JPEG",".PNG",".BMP") ;	
// Récupération du dossier dans lequel le fichier sera uploadé	
$DESTINATION_FOLDER = '../images/diaporama' ;						
// Taille maximale de fichier, valeur en bytes					
$MAX_SIZE = 1048576 ;	
/*1 kilo octet (Ko) vaut 2 puissance 10 soit 1.024 octets ou byte et 8.192 bits,
1 Méga octet (Mo) vaut 2 puissance 20 octets soit 1.048.576 octets
1 Giga octet (Go) vaut 2 puissance 30 octets soit 1.073.741.824 octets
*/												


								
function ftepe($serveur,$user,$mdp,$reporg,$repdest)
{ 
	global $MAX_SIZE;
	global $DESTINATION_FOLDER;
	$x=0;
	$msg='';

	
	/* vérification des variables d'environnement */
	$dir=opendir($reporg);
	// création de la connection
	$conid=ftp_connect("$serveur") or die("Impossible de se connecter à " . $serveur);
	//authentification avec nom du compte et mdp
	$login_result=ftp_login($conid,"$user","$mdp");
	
	// vérification de la connexion
	if ((!$conid) || (!$login_result))
	{ die("La Connexion FTP a échoué ! <br />"); 	} 
	

	// Listage du contenu du répertoire et upload
	while($f=readdir($dir))
	{ 
		if (is_file($reporg . $f))
		{ 	
			$source_file=$reporg. $f;
			$destination_file=$repdest.$f;
			
			//controle de la taille
			$poidsFichier = filesize($source_file);
			if($poidsFichier < $MAX_SIZE){
					
				// On teste ensuite si le fichier a une extension autorisée
				$extension = strrchr($source_file, ".") ;
				if(isExtAuthorized($extension)){
					//on upload le fichier
					$resultat = ftp_put($conid,"$destination_file","$source_file",FTP_BINARY);
					$x++;
				}
			}
		} 
	} 
	// Vérification du téléchargement
	if(!$resultat)
	{ 	$msg = "Le téléchargement a échoué <br />";
	}	else { 
			$msg = '<p> Le téléchargement des fichiers est terminé ! </p>' ;
			$msg = $msg . '<p> Le nombre de fichiers uploadé est de : ' .$x .'</p>';
	}
	
	// Fermeture de la connexion
	ftp_quit($conid);
	print $msg ;
	return $x;
}


function upload_repertoire_complet(){
	if (isset($_POST['file']['tmp_name'])) // si l'init variables par l'u se déroule bien
	{ 
	
	$ser=$_SESSION['serv'];
	$use=$_SESSION['use'];
	$mdp=$_SESSION['mdp'];
	$rep=$_POST['file']; // nous avons récupéré le répertoire d'origine (du moins sous IE7)
	$nom=basename($_POST['file']); // le nom du fichier seul... que l'on va soustraire au nom complet
	$a=strlen($nom); $b=strlen($_POST['file']); $c=$b-$a; // petite gymnastique nécessaire pour 
	$rep=substr($rep,0,$c); // remettre l'antislash à la fin du chemin
	$dst=$_SESSION['rep_ftp'];
	//echo "file source : " . $rep."<br /> ";
	//echo "file dest : ".'/httpdocs/monsite/images/diaporama/'.$nom ."<br /> ";
	if ($_POST['file']!=''){  
			$x= ftepe($ser,$use,$mdp,$rep,$dst);
			$_POST['file']='';
		}
	}
}

/* FIN UPLOAD FICHIER */
/*VERIF CONNEXION FTP OK (dans index.php-la page index.php doit exister)*/
function ftp_identification(){
	
	$result = false;
	//si les champs sont remplis alors on test la connexion au serveur ftp 
	if (isset($_POST['serveur'],$_POST['login'],$_POST['mdp'])){
		$ser=$_POST['serveur'];
		$use=$_POST['login'];
		$mdp=$_POST['mdp'];
		// création de la connection
		//echo "Serveur : " .$ser . " user : " .$use. "mdp : " .$mdp ;
		$conid=ftp_connect("$ser") ;//or die("Impossible de se connecter à " . $ser);
		// authentification avec nom du compte et mdp
		$login_result=ftp_login($conid,"$use","$mdp");
		// vérification de la connexion
		if ((!$conid) || (!$login_result)){ 
			echo "Problème lors de la connexion. ";
		} else { 
			$result = true; 
			$_SESSION['serv'] = $ser;
			$_SESSION['use'] = $use;
			$_SESSION['mdp'] = $mdp;
			$_SESSION['rep_ftp'] = '/httpdocs/monsite/images/diaporama/';
			echo "Bienvenu " .$_SESSION['use'];
		}
	}	
	return $result;
}

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
	global $AUTH_EXT;
	if(in_array($ext, $AUTH_EXT)){
		return true;
	}else{
		return false;
	}
}

//Fonction qui affiche la liste des images contenu dans le répertoire $rep
//Les images sont accompagnée de case à coche pour permettre la selection de plusieur photo
//afin d'effectuer un traitement quelconque
function Lister_puces_photo($rep){
	global $AUTH_EXT;
	$dir = $rep;
	$dossier=opendir($dir);
	$i=1;
	
	
	print '<div class="tableau_photos_locales">';
		print '<table>';
		while($fichier=readdir($dossier)){
			$berk=array('.', '..');
			
			if(!in_array($fichier,$berk)){
				//vérifie le type de fichier (s'il est autorisé
				$berk = $AUTH_EXT;
				$typ_fic = substr($fichier,-3);
				$typ_fic2 = substr($fichier,-4);
				if(in_array($typ_fic,$berk) or in_array($typ_fic2,$berk)){
					$lien=$dir.'/'.$fichier;
					
					if(file_exists($lien)){
						if ($i==1) print '<tr>';
						
						if($i<4){
							//print '<td><input type="checkbox" name="' . $lien. '" id="'. $lien.'" /></td>';
							print '<td><input type="checkbox" name="image[]" id ="image[]" value="'. $lien.'" /></td>';
							print '<td><img src="'.$lien.'" alt="" width="100" height="100"/></td>';
						} 
						
						if ($i==4) {
							print '<td><input type="checkbox" name="image[]" id ="image[]" value="'. $lien.'"  /></td>';
							print '<td><img src="'.$lien.'" alt="" width="100" height="100"/></td>';
							print '</tr>';
							//print '<tr>';
							$i=0;
						}
						$i=$i+1;
					}
				}
			}
		}
		//if ($i=2)	print '</tr>';
		print '</table>';
	print '</div>';
}
						
?>

est-ce que vous voyez quelque chose qui ne pourrait pas fonctionner à partir de mon site sur 1&1 ?
Je n'est peut-être pas compris le fonctionnement des upload via ftp ?

Merci d'avance.

boubou_s