Problème avec upload de photos

Signaler
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007
-
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007
-
Problème avec upload de photos. J'ai ses messages d'erreur. Je n'arrive pas à résoudre cela. J'ai mis en rouge les lignes. au fait ce que je voulais faire c'est de permettre l'ajout de photo dans une fiche.

Notice: Undefined index: photo in c:\easyphp1-8\www\......on line 27

Notice: Undefined variable: cheminPhoto in c:\easyphp1-8\www\..... on line 41

<html>




<?php


$login = isset($_POST["login"]) ? $_POST["login"] : "";


$photo = isset($_POST["photo"]) ? $_POST["photo"] : "";


// Param
ètres de connexion à la base de données


$BD_serveur = "localhost";


$BD_utilisateur = "root";


$BD_motDePasse = "";


$BD_base = "base";


@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)


or die("Impossible de se connecter au serveur de bases de données.");


@mysql_select_db($BD_base)


or die("Impossible de se connecter à la base de données.");


$requete = "SELECT * FROM Table ".


" WHERE login='".$login."'";




$result = mysql_query($requete);


// définition de l'espace destiné à recevoir les fichiers


$repository="data/";


// si un fichier maphoto a bien été transféré


if (is_uploaded_file($_FILES["photo"]["tmp_name"])) {


// recupération de l'extension du fichier


// autrement dit tout ce qu'il y a après le dernier point (inclus)


$nomPhoto = $_FILES["photo"]["name"];


$extension = substr($nomPhoto, strrpos($nomPhoto, "."));


// Contrôle de l'extension du fichier


if (eregi("^ph", $extension)) {


die("Les fichiers en .ph* ne sont pas autorisés.");


}


$cheminPhoto = $login . "_photo" . $extension;


rename($_FILES["photo"]["tmp_name"], $repository.$cheminPhoto);


}




mysql_query("INSERT INTO Table (photo) VALUES ('" . addslashes($cheminPhoto) . "')");


?>




</html>

8 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

if(isset($_FILES["photo"]["tmp_name"]))

avant toute chose... erreur qui revient chaque semaine également...
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007

Après correction j'ai ce message :Notice: Undefined variable: cheminPhoto in c:\easyphp1-8\www\.... on line 40

mysql_query("INSERT INTO Table (photo) VALUES ('" . addslashes($cheminPhoto) . "')");
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
ta variable $cheminPhoto n'existe pas...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007

J'ai changé mon raisonnement. Je propose dans le formulaire aux membres d'envoyer leur photo. Voici le fichier upload que j'utilise. Quand je suis votre instruction ,l'upload marche mais la photo du deuxième membre vient écraser celle du premier. De plus elle n'est pas visible.

<?php

$photo = isset($_POST["photo"]) ? $_POST["photo"] : "";

$repertoireDestination = "data/";

$nomDestination =isset( $_FILES["photo"]["name"]);

// Pour raison de s

écurité nous ajouterons aux fichiers // portant une extension .php .php3, l'extension .txt

if (eregi(".php", $nomDestination)) {

$nomDestination .= ".txt";

}

if (isset($_FILES["photo"]["tmp_name"])) {

if (move_uploaded_file($_FILES["photo"]["tmp_name"],

$repertoireDestination.$nomDestination)) {

echo "Le fichier temporaire ".$_FILES["photo"]["tmp_name"].

" a été déplacé vers ".$repertoireDestination.$nomDestination;

$photo=$repertoireDestination.$nomDestination;

$name_file =$_FILES["photo"]["name"];

} else {

echo "Le déplacement du fichier temporaire a échoué".

" vérifiez l'existence du répertoire ".$repertoireDestination;

}

} else {

echo "Le fichier n'a pas été uploadé (trop gros ?)";

}

?>
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007

Salut à tous,

Avec ce script j'arrive à uploader. il reste deux choses que je n'arrive pas à faire. 1èrement j'aimerai précéder le nom de la photo du pseudo du membre. 2èmement sécurisé l'upload. J'ai besoin de vous merci d'avance.

<?php

if( isset($_POST
['

inscription']) ){$content_dir = 'data/';

$tmp_file = $_FILES['photo']['tmp_name'];

if( !is_uploaded_file($tmp_file) )

{

exit("Le fichier est introuvable");

}

$name_file = $_FILES['photo']['name'];

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )

{

exit("Impossible de copier le fichier dans $content_dir");

}

echo "Le fichier a bien été uploadé";

}

?>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

Upload sécurisé PHP

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007

Merci pour le lien. Je bloque toujours pour le nom de la photo car j'aimerai le précéder du login
Messages postés
110
Date d'inscription
mardi 30 août 2005
Statut
Membre
Dernière intervention
13 août 2007

Je vois que tout le monde m'a abandonné