Problème script d'upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème script d'upload

par webide » 04 mars 2007, 21:39

Le problème qu'il y a c'est que lorsque je vais sur la galerie photo, il montre toutes les photos uploadées et pas seulement celles du membre.
Je sais que la meilleure solution est de gérer cela par BDD. J'ais créé une table dans la base membres mais par contre je n'arrives pas à lier la galerie, la page upload et la BDD
Voici la galerie
<?

//ouverture et control de la session
session_start();
if ( !session_is_registered("email") )
{
print "<center><b>Cette page et uniquement pour les membres<br> <br><a href='../index.php'>connection</a> <br>-||||-<br> <a href='inscription.php'>inscription</a></b><center>";exit;
}

//connexion a la base de donnée
include"config.php";
include"include/variable.php";
$db = mysql_connect($serveur, $login, $password);
mysql_select_db($base,$db);
//je recherche les données de la base membre de l'email du mec
if ($action == "change")
		{
		$query = "UPDATE $table SET pseudo = '$pseudo',email= '$email', passe= '$passe' ,nom= '$nom' ,prenom= '$prenom' ,pays= '$pays' , site ='$site', age ='$age', sexe='$sexe',departement ='$departement', ville='$ville', mot='$mot' WHERE email = '$email'";
		$result = mysql_query($query);
		}
 if ($action == "image")
		{
		//ici je recherche l'image qui correspond a l'email
		$query = "UPDATE $table SET image='$image' WHERE email = '$email'";
		$result = mysql_query($query);}
 $sql=("select image from $table Where email='$email'");$result=mysql_query($sql);
 $rs=mysql_fetch_array($result);
$image=$rs["image"];
//ici je recherche l'id de l'email
$sql=("select id from $table Where email='$email'");
$result=mysql_query($sql);
$rs=mysql_fetch_array($result);
$id=$rs["id"];
//la requete je prends toutes les données de la table membre
$sql = "select*from  $table WHERE email='$email'";
// on envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo"$info";
php $requete = mysql_query("Select * FROM a_galerie WHERE `auteur`='".$_SESSION['pseudo']."'");
 // on ferme la connexion à mysql
mysql_close();
mysql_close($db);
?>

<html><head>
<link rel="stylesheet" type="text/css" href="style-gal.css">
<TITLE><? echo(":: Galerie d'images de .$pseudo. ::"); ?></TITLE>
</head><body>
<!-- DEBUT DU SCRIPT -->
<script language="JavaScript1.2">
/*
SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
[url=http://www.editeurjavascript.com]http://www.editeurjavascript.com[/url]
*/

function ejs_nodroit()
	{
	alert('Désolé, le clic droit a été désactivé sur cette page. ');
	return(false);
	}

document.oncontextmenu = ejs_nodroit;
</script>
<!-- FIN DU SCRIPT -->
<body background="im/fond1.jpg">

<SCRIPT LANGUAGE="JavaScript">
table_photo = new Array;
table_noms = new Array;
table_type = new Array;

<?
$a = 0;
$handle = opendir("up"); 
while (($file = readdir())!=false) { 
	clearstatcache();
	$extension = strrchr($file, ".");
	if($file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp"))
		{

		// RECHERCHE DU FICHIER
		while ($result=mysql_fetch_array($requete))
{
    echo "<img src=\"$result['urlphoto']\">;

}
		
		// RECHERCHE DU TYPE DE FICHIER
		$file_type = strrchr($file, ".");
		$file_type = str_replace(".", "", $file_type);
		$file_type = strtoupper($file_type);
		echo "table_type[$a] = '$file_type';";
		
		// RECHERCHE DU NOM :
		$file_name = strtolower($file);
		$file_name = str_replace(".jpg", "", $file_name);
		$file_name = str_replace(".jpeg", "", $file_name);
		$file_name = str_replace(".gif", "", $file_name);
		$file_name = str_replace(".png", "", $file_name);
		echo "table_noms[$a] = '$file_name';";
		$a++;
		}
	}
closedir($handle); 
?>
	
function showing_photos(num)
	{
	if(document.getElementById)
		{
		diaporama_fin = "";
		if(num!=0)
			diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>";
		if(num!=(table_photo.length-1))
			diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>";
		document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>";
		}
	}

window.onload = new Function("showing_photos(0)")
</SCRIPT>


<DIV align="center" ID="affichage_photos"></DIV>
<a href = "index.php">Retourner au service d'upload ?<a/>


</body>
</html>
La page d'upload
$DESTINATION_FOLDER = 'up/';							//
// Taille maximale de fichier, valeur en bytes					//
$MAX_SIZE = 1000000;											//
// Récupération de l'url de retour								//
$RETURN_LINK = $_SERVER['HTTP_REFERER'];						//
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".jpg", ".bmp", ".gif");											//
// ############################################################ //
// Fonction permettant de créer un lien de retour automatique

function createReturnLink(){
	global $RETURN_LINK;
	echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}

// 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;
	}
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.

if(!empty($_FILES["file"]["name"])){
	$nomFichier = $idMembre.'-'.$_FILES["file"]["name"];
	// Nom du fichier choisi:
	$nomFichier = $_FILES["file"]["name"] ;
	// Nom temporaire sur le serveur:
	$nomTemporaire = $_FILES["file"]["tmp_name"] ;
	// Type du fichier choisi:
	$typeFichier = $_FILES["file"]["type"] ;
	// Poids en octets du fichier choisit:
	$poidsFichier = $_FILES["file"]["size"] ;
	// Poids en Kilo-octets du fichier choisit:
	$poidsFichierK = $poidsFichier/1024;
	// Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
    $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
	// Code de l'erreur si jamais il y en a une:
	$codeErreur = $_FILES["file"]["error"] ;
	// Extension du fichier
	$extension = strrchr($nomFichier, ".");
	
	// Si le poids du fichier est de 0 bytes, le fichier est
	// invalide (ou le chemin incorrect) => message d'erreur
	// sinon, le script continue.
	if($poidsFichier <> 0){
		// Si la taille du fichier est supérieure à la taille
		// maximum spécifiée => message d'erreur
		if($poidsFichier < $MAX_SIZE){
			// On teste ensuite si le fichier a une extension autorisée
			if(isExtAuthorized($extension)){
				// Ensuite, on copie le fichier uploadé ou bon nous semble.
				$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
				if($uploadOk){
					                    echo "L'upload a réussi !<br><br>";
                                        echo "Nom du Fichier : $nomFichier<br>";
                                        echo "Taille du Fichier : $poidsFichierK Ko<br>";
					                    echo "URL du Fichier : [url=http://www.crazytchat.com/upload/up/<br><br>";]http://www.crazytchat.com/upload/up/<br><br>";[/url]
										echo "Aperçu:<br><br>";
										switch ($extension) { //Tu fais écrire du html par le php
								        case ".jpeg": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".bmp": echo "<IMG SRC='$nomFichier'>";break;
										case ".gif": echo "<IMG SRC='$nomFichier'>";break;
											    default: echo "<IMG SRC='error/inconnu.gif'>"; }
										echo "<br><br>";
                                        echo(createReturnLink());
				}else{
					echo("L'upload a échoué !<br><br>");
					echo(createReturnLink());
				}
			}else{
				echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
				echo (createReturnLink()."<br>");
			}
		}else{
			$tailleKo = $MAX_SIZE / 100;
			echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
			echo (createReturnLink()."<br>");
		}		
	}else{
		echo("Le fichier choisi est invalide !<br>");
		echo (createReturnLink()."<br>");
	}
}else{
	echo("Vous n'avez pas choisi de fichier !<br>");
	echo (createReturnLink()."<br>");
}
?>
et la table
CREATE TABLE a_galerie (
pseudo varchar(30) NOT NULL default '',
image varchar(50) NOT NULL default '',
id int(11) NOT NULL auto_increment,
PRIMARY KEY  (id)
) TYPE=MyISAM;
[/php]

par webide » 28 févr. 2007, 14:08

Je souhaiterais que cela soit automatisé, j'ais bien essayé avec mkdir mais comme je ne suis pas un cador en php j'ais du mal.

par thehawk » 28 févr. 2007, 13:23

Vu que tu n'utilise pas apparament une base de données pourquoi ne pas faire une dossier pour chaque membre ?

par webide » 28 févr. 2007, 13:21

Excuse autant pour moi

Lorsque je vais dans l'espace membre, chez chaque membre j'ais un lien vers sa galerie photos.
 
print("<b><a href='$row[image]'target='_blank'><img src='$row[image]'width='60' height='60'></a> <b>$row[1]</b>- $photo-<a href=\"mailto:".mail_encode("$row[3]")."\">son Email !</a> $row[4] ans- $row[5]-  $row[6]</b><br><b><center><i><u>le petit mot de $row[1]</i></u>&nbsp;&nbsp;&nbsp;<a href=\"messages/messages.php?pseudo=$row[pseudo]\">lui faire un mot
</a></b></center>$row[7] <br><a href=\"../upload/galerie.php\" target='_blank'><b>Album photos</b></a><br>");
qui me renvoie sur la galerie photo
mais là je vois toutes les photos uploadée au lieu de voir les photos de la personne pourtant dans le fichier uploader.php on doit envoyer des photos avec le pseudo+1 ou 2etc.... pour différencier les différentes personnes.
if(!empty($_FILES["file"]["name"])){
	
	// Nom du fichier choisi:
	$nomFichier = $_FILES["file"]["name"] ;
	// Nom temporaire sur le serveur:
	$nomTemporaire = $_FILES["file"]["tmp_name"] ;
	// Type du fichier choisi:
	$typeFichier = $_FILES["file"]["type"] ;
	// Poids en octets du fichier choisit:
	$poidsFichier = $_FILES["file"]["size"] ;
	// Poids en Kilo-octets du fichier choisit:
	$poidsFichierK = $poidsFichier/1024;
	// Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
    $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
	// Code de l'erreur si jamais il y en a une:
	$codeErreur = $_FILES["file"]["error"] ;
	// Extension du fichier
	$extension = strrchr($nomFichier, ".");
puis la destination
echo "Nom du Fichier : $nomFichier<br>";
                                        echo "Taille du Fichier : $poidsFichierK Ko<br>";
					                    echo "URL du Fichier : http://URL du site/upload/up/$nomFichier<br><br>";
mais en visualisant la galerie
<?
$a = 0;
$handle = opendir("up"); 
while (($file = readdir())!=false) { 
	clearstatcache();
	$extension = strrchr($file, ".");
	if($file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp"))
		{

		// RECHERCHE DU FICHIER
		echo "table_photo[$a] = 'up/$file';";
		
		// RECHERCHE DU TYPE DE FICHIER
		$file_type = strrchr($file, ".");
		$file_type = str_replace(".", "", $file_type);
		$file_type = strtoupper($file_type);
		echo "table_type[$a] = '$file_type';";
		
		// RECHERCHE DU NOM :
		$file_name = strtolower($file);
		$file_name = str_replace(".jpg", "", $file_name);
		$file_name = str_replace(".jpeg", "", $file_name);
		$file_name = str_replace(".gif", "", $file_name);
		$file_name = str_replace(".png", "", $file_name);
		echo "table_noms[$a] = '$file_name';";
		$a++;
		}
	}
closedir($handle); 
?>
	
function showing_photos(num)
	{
	if(document.getElementById)
		{
		diaporama_fin = "";
		if(num!=0)
			diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>";
		if(num!=(table_photo.length-1))
			diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>";
		document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>";
		}
	}

window.onload = new Function("showing_photos(0)")
</SCRIPT>
toutes les photos apparaissent au lieu des photos du membre. Comment faire en sorte que juste les siennes apparaissent.
Merci d'avance

par thehawk » 28 févr. 2007, 13:06

Pour du code php utilise le bouton php pour la mise en forme stp ca serait beaucoup plus lisible merci

Problème script d'upload

par webide » 28 févr. 2007, 12:54

Bonjour,
J'ais un souci avec un script d'upload.
Lorsque je vais dans l'espace membre, chez chaque membre j'ais un lien vers sa galerie photos.

Code : Tout sélectionner

print("<b><a href='$row[image]'target='_blank'><img src='$row[image]'width='60' height='60'></a> <b>$row[1]</b>- $photo-<a href=\"mailto:".mail_encode("$row[3]")."\">son Email !</a> $row[4] ans- $row[5]- $row[6]</b><br><b><center><i><u>le petit mot de $row[1]</i></u>&nbsp;&nbsp;&nbsp;<a href=\"messages/messages.php?pseudo=$row[pseudo]\">lui faire un mot </a></b></center>$row[7] <br><a href=\"../upload/galerie.php\" target='_blank'><b>Album photos</b></a><br>");
qui me renvoie sur la galerie photo
mais là je vois toutes les photos uploadée au lieu de voir les photos de la personne pourtant dans le fichier uploader.php on doit envoyer des photos avec le pseudo+1 ou 2etc.... pour différencier les différentes personnes.

Code : Tout sélectionner

if(!empty($_FILES["file"]["name"])){ // Nom du fichier choisi: $nomFichier = $_FILES["file"]["name"] ; // Nom temporaire sur le serveur: $nomTemporaire = $_FILES["file"]["tmp_name"] ; // Type du fichier choisi: $typeFichier = $_FILES["file"]["type"] ; // Poids en octets du fichier choisit: $poidsFichier = $_FILES["file"]["size"] ; // Poids en Kilo-octets du fichier choisit: $poidsFichierK = $poidsFichier/1024; // Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule. $poidsFichierK = sprintf("%.0f", $poidsFichierK) ; // Code de l'erreur si jamais il y en a une: $codeErreur = $_FILES["file"]["error"] ; // Extension du fichier $extension = strrchr($nomFichier, ".");
puis la destination

Code : Tout sélectionner

echo "Nom du Fichier : $nomFichier<br>"; echo "Taille du Fichier : $poidsFichierK Ko<br>"; echo "URL du Fichier : http://URL du site/upload/up/$nomFichier<br><br>";
mais en visualisant la galerie

Code : Tout sélectionner

<? $a = 0; $handle = opendir("up"); while (($file = readdir())!=false) { clearstatcache(); $extension = strrchr($file, "."); if($file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp")) { // RECHERCHE DU FICHIER echo "table_photo[$a] = 'up/$file';"; // RECHERCHE DU TYPE DE FICHIER $file_type = strrchr($file, "."); $file_type = str_replace(".", "", $file_type); $file_type = strtoupper($file_type); echo "table_type[$a] = '$file_type';"; // RECHERCHE DU NOM : $file_name = strtolower($file); $file_name = str_replace(".jpg", "", $file_name); $file_name = str_replace(".jpeg", "", $file_name); $file_name = str_replace(".gif", "", $file_name); $file_name = str_replace(".png", "", $file_name); echo "table_noms[$a] = '$file_name';"; $a++; } } closedir($handle); ?> function showing_photos(num) { if(document.getElementById) { diaporama_fin = ""; if(num!=0) diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>"; if(num!=(table_photo.length-1)) diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>"; document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>"; } } window.onload = new Function("showing_photos(0)") </SCRIPT>
toutes les photos apparaissent au lieu des photos du membre. Comment faire en sorte que juste les siennes apparaissent.
Merci d'avance