Move_uploaded_file

Fermé
bob6173 Messages postés 4 Date d'inscription dimanche 28 avril 2019 Statut Membre Dernière intervention 29 avril 2019 - 28 avril 2019 à 21:23
bob6173 Messages postés 4 Date d'inscription dimanche 28 avril 2019 Statut Membre Dernière intervention 29 avril 2019 - 29 avril 2019 à 19:23
bonjour mon problème la fonction ' move_uploaded_file' fonctionne très bien et je peut voir les photos dans un dossier de mon choix je suis meme arriver a les renommer mais quant je passe par une bases-de-donnees pour les voir elle son inaccessible la seul façon pour que cela fonctionne je doit les copier coller dans le meme dossier et la sa marche sinon on dirais quelle son fantôme voila j'ai un formulaire qui les copie dans le dossier les renomme et place leur adresse dans une bdd et un autre formulaire peut les afficher et tout est ok sauf que je suis obliger de les copier coller dans se mémé dossier pour les voir dans le formulaire bien sur après je supprime une des copie si sa vous parle je suis bloquer la
A voir également:

4 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
28 avril 2019 à 22:11
Bonjour,

Sans voir ton code.... impossible de te répondre !

NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code



0
bob6173 Messages postés 4 Date d'inscription dimanche 28 avril 2019 Statut Membre Dernière intervention 29 avril 2019
29 avril 2019 à 11:53
resalut et voila le scripte en plusieurs morceaux



bon voila donc je pense que le formulaire n'est pas utile mais s'y il le faut je le met donc mon ficher de photo s'appelle " photos " et il est place dans le meme fichier que le scripte
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
29 avril 2019 à 12:08
Tu ne sais pas lire ?
Je t'ai demandé de poster ton code en utilisant les BALISES DE CODE.

Les images.... on ne peut rien en faire.... pas de copier/coller.....

Donc merci de : poster ton code correctement en utilisant la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
bob6173 Messages postés 4 Date d'inscription dimanche 28 avril 2019 Statut Membre Dernière intervention 29 avril 2019
29 avril 2019 à 13:04
<?php

//ouverture de la bdd et recuperation des donneés formulaire
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$nom = ($_POST['nom']);
$prenom =($_POST['prenom']);
$adresse =($_POST['adresse']);
$telephone =($_POST['telephone']);
$description=($_POST['description']);
$monfichier =($_FILES['monfichier']);

//recuperation id de la bdd le plus grand +1
$reponse = $bdd->query('SELECT id FROM repertoir ORDER BY id DESC');
$donnees = $reponse->fetch();
$chiffre = strval($donnees[0]+1);


// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur

if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error']== 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg','jpeg','gif','png');

// ici on traite la decoupe du nom du fichier
$split =explode(".", ($_FILES['monfichier']['name']));
$ext = strtolower($split[1]);
$nom_ph ="ph".''.$chiffre.'.'.$ext;
$lieu = 'photos/photo/';
$photo ='../photos/photo/ph'.''.$chiffre.'.'.$ext;




if (in_array($extension_upload,$extensions_autorisees))

{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'],"$lieu $nom_ph");

echo "L'envoi a bien été effectué !";

}
else
{
echo"l'extention n'est pas valide";

}

}
else
{
echo"fichier trop gros ";
}

}
else
{
$photo="vide";
echo"le fichier est sauvegarde sans photo";
}

// ici on prepare la requette et on l'envoie

$req = $bdd->prepare("INSERT INTO repertoir(nom, prenom,adresse,telephone,description,photo)
VALUES(:nom,:prenom,:adresse,:telephone,:description,:photo)");
$req->execute(array('nom'=>$nom,
'prenom'=>$prenom,
'adresse'=>$adresse,
'telephone'=>$telephone,
'description'=>$description,
'photo'=>$photo ));


?>



voila excuse moi je suis nouveau j’espère que sa vas comme sa s'il faut faire autre chose ?
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
29 avril 2019 à 13:27
Utiliser les balises de code.........
As tu, au moins, ouvert le lien que je t'ai donné ?
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
29 avril 2019 à 14:22
Bon,
Voici déjà quelques corrections apportées à ton code.
Essaye de t'en inspirer pour tes prochains codes
<?php 
//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd
try{
  $bdd =new PDO('mysql:host=localhost;dbname=test; charset=utf8', 'root', '');
  // Activation des erreurs PDO
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
  die('Erreur : ' . $e->getMessage());
}

//récupération PROPRE des variables
// avant de les utiliser 
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; 
$prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL
$adresse = !empty($_POST['adresse']) ? $_POST['adresse'] : NULL
$telephone = !empty($_POST['telephone']) ? $_POST['telephone'] : NULL
$description = !empty($_POST['description']) ? $_POST['description'] : NULL
$monfichier = !empty($_FILES['monfichier']) ? $_FILES['monfichier'] : NULL


//recuperation id de la bdd le plus grand +1 
$sql = 'SELECT max(id) FROM repertoir ';
//Execution de la requete
try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute() ;
  $donnees = $reponse->fetch(); 
  $chiffre = strval($donnees[0]+1);
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
}
 


// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur 

if ($monfichier && $monfichier['error']== 0) { 
  $fileName = $monfichier['name'];
  // Testons si le fichier n'est pas trop gros 
  if ($monfichier['size'] <= 1000000) { 
    // Testons si l'extension est autorisée 
    $infosfichier = pathinfo($fileName); 
    $extension_upload = $infosfichier['extension']; 
    $extensions_autorisees = array('jpg','jpeg','gif','png'); 

    // ici on traite la decoupe du nom du fichier 
    $split = explode(".", ($fileName)); 
    $ext = strtolower($split[1]); 
    $nom_ph ="ph".''.$chiffre.'.'.$ext; 
    $lieu = 'photos/photo/'; 
    $photo =$lieu . $nom_ph;

    if (in_array($extension_upload,$extensions_autorisees)) { 
      // On peut valider le fichier et le stocker définitivement 
      if(move_uploaded_file($_FILES['monfichier']['tmp_name'],"$lieu $nom_ph")){
        echo "L'envoi a bien été effectué !"; 
      }else{
        echo "Erreur lors de l'upload du fichier"; 
        exit();
      }
    } else { 
      echo"l'extention n'est pas valide"; 
    } 
  } else { 
    echo"fichier trop gros "; 
  } 
} else { 
  $photo="vide"; 
  echo"le fichier est sauvegarde sans photo"; 
} 

// ici on prepare la requette et on l'envoie 
$sql = "INSERT INTO repertoir(nom, prenom,adresse,telephone,description,photo) 
VALUES(:nom,:prenom,:adresse,:telephone,:description,:photo)";

$datas = array(':nom'=>$nom, 
              ':prenom'=>$prenom, 
              ':adresse'=>$adresse, 
              ':telephone'=>$telephone, 
              ':description'=>$description, 
              ':photo'=>$photo ); 

//Execution de la requete
try{
  $requete = $bdd->prepare($sql) ;
  $requete->execute($datas);
  
  //id du nouvel enregistrement en bdd :
  $new_id = $bdd->lastInsertId();
  echo "Enregistrement en bdd : ".$new_id;
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}
?>


Je t'invite à lire et à appliquer le contenu de ces deux liens :

https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs



Si malgré cela tes soucis persistent, il faudra également nous montrer le code qui te sert à afficher tes images....

Pense également à vidé le cache de ton navigateur (si le souci n'est qu'un problème d'affichage d'image... )

.


0
bob6173 Messages postés 4 Date d'inscription dimanche 28 avril 2019 Statut Membre Dernière intervention 29 avril 2019
29 avril 2019 à 19:23
et bien grand merci pour tous ce code je vois que tu est tres douée et que tu connais bien le php ; moi je débute et seul c'est pas simple et j’avoue que je n'ai pas mis beaucoup de contrôle de code alors merci encore et je vais voir si je peut y arriver a+jordane
0