Ajout d une barre de progression sur l upload des images

Résolu/Fermé
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 26 mai 2021 à 16:26
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 1 juin 2021 à 19:38
bonjour
a tous j ai un fichier d upload d image
mais j aurais souhaiter savoir comment venir y intégrer une barre de progression

voici mon fichier
merci
<?php
session_start();

$dossier = 'uploads/';
$fichier = basename($_FILES['file']['name']);
$taille_maxi = 5000000;
$taille = filesize($_FILES['file']['tmp_name']);
$extensions = array('.png', '.PNG', '.gif', '.jpg', '.JPG', '.jpeg', '.JPEG');
$extension = strrchr($_FILES['file']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
 if(file_exists("uploads/" . $_FILES["file"]["name"])){
	$erreur = ' L\'image existe déjà.';
 }
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['file']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné..
		      {
          echo ' <span style="margin-left:30%;"> <br /> Upload effectué avec succès !  </span>';
		 	include('mabd.php');
		 $req =$bdd->prepare('INSERT INTO galerie_images ( nom_img, nom_min) VALUES ( :nom_img, :nom_min)');
         $req->execute(array(
			'nom_img' => $_FILES["file"]["name"],
			 'nom_min' => $_FILES["file"]["name"]
                                                   ));
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>
A voir également:

109 réponses

flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
27 mai 2021 à 23:20
oui je me doute , mais c est dommage mdrrr

encore une erreur de ma part la redirection c est le fichier cible-fichier.php
mais cela ne change rien je n ai aucune erreur
mais rien ne se passe

voici donc le fichier cible-fichier.php

<?php
session_start();
if (!empty($_SESSION['id']) and !empty($_SESSION['pseudo']) or !empty($_COOKIE['pseudo']))
{
    $getpseudo = $_COOKIE['pseudo'];
}
if (isset($_GET['pseudo'], $_GET['id']))
{
    $pseudo = $_GET['pseudo'];
    $id = $_GET['id'];
?>
<!doctype html>
<html lang="en">
   <head>
      <?php include ("include/head.php"); ?>
      <link rel="stylesheet" type="text/css" href="./css/magazine.css">
   </head>
   <!-- fin head -->
   <!-- debut body -->
   <body>
      <!-- debut container total-->
      <div class="container">
         <title>phil le perleur</title>
         <!-- debut container entete-->
         <div class="container" style=" max-width: 100%;margin:auto;">
            <!-- debut banniere -->
            <?php include ("include/baniere-peche-perle.php"); ?>
            <!-- fin banniere -->
            <!-- debut menu -->
            <?php include ("include/menu.php"); ?>
            <!-- fin menu -->
            <!-- fin container entete-->
            <div class="col-sm-12 text-center">
               <!-- debut body --><?php
include ('base.php');
// Vérifier si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    // Vérifie si le fichier a été uploadé sans erreur.
    if (isset($_FILES["photo"]) && $_FILES["photo"]["error"] == 0)
    {
        $allowed = array(
            "jpg" => "image/jpg",
            "JPG" => "image/JPG",
            "jpeg" => "image/jpeg",
            "JPEG" => "image/JPEG",
            "gif" => "image/gif",
            "png" => "image/png",
            "PNG" => "image/PNG"
        );
        $filename = $_FILES["photo"]["name"];
        $filetype = $_FILES["photo"]["type"];
        $filesize = $_FILES["photo"]["size"];
        // Vérifie l'extension du fichier
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        if (!array_key_exists($ext, $allowed)) die('Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>');
        // Vérifie la taille du fichier - 5Mo maximum
        $maxsize = 5 * 1024 * 1024;
        if ($filesize > $maxsize) die('Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>');
        // Vérifie le type MIME du fichier
        if (in_array($filetype, $allowed))
        {
            // Vérifie si le fichier existe avant de le télécharger.
            if (file_exists("uploads/" . $_FILES["photo"]["name"]))
            {
                echo $_FILES["photo"]["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>';
            }
            else
            {
                move_uploaded_file($_FILES["photo"]["tmp_name"], "uploads/" . $_FILES["photo"]["name"]);
                echo '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>';
                $req = $bdd->prepare('INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min) VALUES (:pseudo, :id_img, :nom_img, :nom_min)');
                $req->execute(array(
                    'pseudo' => $pseudo,
                    'id_img' => $id,
                    'nom_img' => $_FILES["photo"]["name"],
                    'nom_min' => $_FILES["photo"]["name"]
                ));
            }
        }
        else
        {
            echo 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }
    }
    else
    {
        echo "Error: " . $_FILES["photo"]["error"];
    }
}
}
else
{
    header('Location:../login-obligatoire-peche-perle.php');
    die();
}
?>
            </div>
            <div class="col-sm-12 text-center">
               <img src="uploads/<?php echo $filename; ?>" height="200"  /> 
               <form method="post" action="traite.php?nom_img=<?php echo $filename; ?>&id=<?php echo $id; ?>&pseudo=<?php echo $pseudo; ?>">
                  <p>  
                  <div class="form-group ">
                     <div class="col-sm-12 text-center">
                        <label for="commentaire"> Désirez-vous ajouter un commentaire (150 caratères max) ?<br /> Il apparaîtra dans une note sous votre image. Merci.<br /> cela est falcultatif.   </label><br />
                        <textarea name="commentaire" id="commentaire"  rows="3"class="form-control justify-content-center" style="width:200px;margin:auto;"></textarea><br />
                     </div>
                  </div>
                  <input type="submit" name="submit" value="publier commentaire" />
                  </p>
                  <br />
                  <a href="detail.php?pseudo=<?php echo $pseudo; ?>&id=<?php echo $id; ?>"><span style="font-size:24px;  text-align:center;"> Ajout de votre photo sans commentaire.</span> </a>
               </form>
            </div>
            <!-- debut pied de page-->
            <?php include ("include/pied-de-page.php"); ?>
         </div>
      </div>
      <?php include ("include/footer.php"); ?>
   </body>
   <!-- fin du body-->
</html>
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
28 mai 2021 à 00:17
Alors,
Vu que désormais c'est en Ajax.. tu ne dois plus avoir de "html" dans ton code.
Le script ne doit contenir que du PHP.

De plus, il faut que le fichier appelé par le script javascript doit être différent du code qui te sert à générer le formulaire d'upload.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
28 mai 2021 à 00:43
Donc,
Côté script PHP appelé par le Javascript,
le code devrait ressembler à un truc du genre :
<?php
// Démarrage SESSION
session_start();

//Connexion à la bdd
require_once 'base.php';

// Variables/constantes...
  $allowed = array(
            "jpg" => "image/jpg",
            "JPG" => "image/JPG",
            "jpeg" => "image/jpeg",
            "JPEG" => "image/JPEG",
            "gif" => "image/gif",
            "png" => "image/png",
            "PNG" => "image/PNG"
        );

$res = array();// variable qui contiendra les infos à retourner au script JS
        
// récupération PROPRE des variables de type "array" AVANT de les utiliser  (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! )
$getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL;
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: NULL;
$id = !empty($_POST['id']) ? $_POST['id']: NULL;
$photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL;    


// Vérifier si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Vérifie si le fichier a été uploadé sans erreur.
    if ($photos && $photos["error"] == 0){
      
        $filename = $photos["name"];
        $filetype = $photos["type"];
        $filesize = $photos["size"];
        // Vérifie l'extension du fichier
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        if (!array_key_exists($ext, $allowed)) {
          $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }
        // Vérifie la taille du fichier - 5Mo maximum
        $maxsize = 5 * 1024 * 1024;
        if ($filesize > $maxsize){
          $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        
        // Vérifie le type MIME du fichier
        if (in_array($filetype, $allowed)) {
            // Vérifie si le fichier existe avant de le télécharger.
            if (file_exists("uploads/" . $photos["name"])) {
                $err =  $photos["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>';
            } else {
              if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $photos["name"])){
                $err = "Erreur lors de l'upload du fichier";
              }else{
                $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>';
                
                //préparation de la requête et des variables
                $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min) VALUES (:pseudo, :id_img, :nom_img, :nom_min)';
                $datas = array(
                    ':pseudo' => $pseudo,
                    ':id_img' => $id,
                    ':nom_img' => $filename,
                    ':nom_min' => $filename
                );
                //exécution de la requêete préparée
                try{
                  $req = $bdd->prepare($sql);
                  $req->execute($datas);
                }catch(Exception $e){
                  $err = " Erreur dans la requête : " . $e->getMessage();
                }
              }
            }
        } else {
          $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }
      } else  {
        $err =  "Error: " . $photos["error"];
      }
    }
  } else {
    $err = "Méthode invalide"; 
  }
  
  $res['error'] = $err;
  
  // On renvoi la réponse au format JSON
  echo json_encode($res);
  
?>

Tu remarqueras que j'ai appliqué un grand nombre de corrections ... tu sais.. les try/catch par exemple... la récupération propre des variables avant de les utiliser.. enfin..tous les petits trucs que je te rabacje depuis je ne sais combien de mois et que tu n'appliques toujours pas !


et côté JS, il faudra surement modifier un peu le code qui traite la réponse
Un truc du style
function completeHandler(event) {
  let res = typeof(event.target.responseText)!='undefined' ? JSON.parse(event.target.responseText) : "";
  let message = typeof(res.message)!='undefined' ? res.message : "";
  let error = typeof(res.error)!='undefined' ? res.error : null;
  
  _("status").innerHTML = error ? error : message;
  _("progressBar").value = 0; //wil clear progress bar after successful upload
}


Une fois ces modifications faites, pense à regarder dans la console du navigateur le "post" ( la partie REPONSE ) pour voir si il y a des éventuelles erreurs dans le code php
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
28 mai 2021 à 15:04
bonjour jordane
waouhh super génial un méga tout grand merci pour ce code
en fait cette partie du code je n ai pas encore eu le temps de la corriger pour la mettre aux normes avec les conseils que tu m as donné
mais des que ce soucis de barre de progression est termine je vais pouvoir m y mettre
et surtout sécurisé toutes les variables globales enfin les rendre propre

voila j ai mis le code en place
malheureusement dans la console de réponse
il y a une erreur

{"error":"Error: 0"}
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 13:00
bonjour a tous
même en utilisant mon ancien fichier form-fichier
donc sans la barre de progression cela ne fonctionne pas
j ai donc une erreur dans mon fichier cible

mais je ne parviens pas a découvrir laquelle
si quelqu u peux m éclairer
merci
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 13:18
Le message que tu as dans la console vient du ELSE du if
 if ($photos && $photos["error"] == 0){

Cela signifie donc que la variable $photo n'existe pas ou (mais ce n'est pas le cas) que $photos['error'] n'est pas égale à zéro

Si tu regardes ton code :

Côté JS, tu as :
  formdata.append("file1", file);


Côté PHP,
$photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL; 




0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 14:26
merci jordane
pour ta réponse

ah ben oui donc du coup il y a une incompatibilité

donc je dois modifier mon code de cette façon

  var file = _("photo").files[0];
  // alert(file.name+" | "+file.size+" | "+file.type);
  var formdata = new FormData();
  formdata.append("photo", file);
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 14:39
Oui
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 18:02
décidément ...
cela refuse de fonctionner j ai pourtant tout modifier
et j ai toujours la même erreur

voici l extrait de code que j ai modifier
	     <form action="cible-fichier.php?pseudo=<?php echo $pseudo;?>&id=<?php echo $id;?>"id="upload_form" enctype="multipart/form-data" method="post">
	  	  <div class="form-group">
        <label for="fileUpload">Fichier:</label>
        
        
         <input type="file" name="photo" id="photo">
        <input type="submit" name="photo" value="Upload"  onchange="uploadFile()">
        
          <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
  <h3 id="status"></h3>
  <p id="loaded_n_total"></p>
        
        
        
        <p><strong>Note:</strong> Veuillez patienter 1 a 2 minutes pour l upload svp</p>
        <p><strong>Note:</strong> Seuls les formats .jpg, .jpeg, .jpeg, .gif, .png sont autorisés jusqu'à une taille maximale de 5 Mo.</p>

		 </div>

    </form>

</div>
<script>function _(el) {
  return document.getElementById(el);
}

function uploadFile(){
  var file = _("photo").files[0];
  // alert(file.name+" | "+file.size+" | "+file.type);
  var formdata = new FormData();
  formdata.append("photo", file);
  var ajax = new XMLHttpRequest();
  ajax.upload.addEventListener("progress", progressHandler, false);
  ajax.addEventListener("load", completeHandler, false);
  ajax.addEventListener("error", errorHandler, false);
  ajax.addEventListener("abort", abortHandler, false);
  ajax.open("POST", "cible-fichier.php"); // http://www.developphp.com/video/JavaScript/File-Upload-Progress-Bar-Meter-Tutorial-Ajax-PHP
  //use file_upload_parser.php from above url
  ajax.send(formdata);
}

function progressHandler(event) {
  _("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total;
  var percent = (event.loaded / event.total) * 100;
  _("progressBar").value = Math.round(percent);
  _("status").innerHTML = Math.round(percent) + "% uploaded... please wait";
}

function completeHandler(event) {
  let res = typeof(event.target.responseText)!='undefined' ? JSON.parse(event.target.responseText) : "";
  let message = typeof(res.message)!='undefined' ? res.message : "";
  let error = typeof(res.error)!='undefined' ? res.error : null;
  
  _("status").innerHTML = error ? error : message;
  _("progressBar").value = 0; //wil clear progress bar after successful upload
}

function errorHandler(event) {
  _("status").innerHTML = "Upload Failed";
}

function abortHandler(event) {
  _("status").innerHTML = "Upload Aborted";
}</script>
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 18:40
Il semble qu'un IF n'était pas fermé.

<?php
// Démarrage SESSION
session_start();

//Connexion à la bdd
require_once 'base.php';

// Variables/constantes...
  $allowed = array(
            "jpg" => "image/jpg",
            "JPG" => "image/JPG",
            "jpeg" => "image/jpeg",
            "JPEG" => "image/JPEG",
            "gif" => "image/gif",
            "png" => "image/png",
            "PNG" => "image/PNG"
        );

$res = array();// variable qui contiendra les infos à retourner au script JS
        
// récupération PROPRE des variables de type "array" AVANT de les utiliser  (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! )
$getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL;
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: NULL;
$id = !empty($_POST['id']) ? $_POST['id']: NULL;
$photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL;    


// Vérifier si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Vérifie si le fichier a été uploadé sans erreur.
    if ($photos && $photos["error"] == 0){
      
        $filename = $photos["name"];
        $filetype = $photos["type"];
        $filesize = $photos["size"];
        // Vérifie l'extension du fichier
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        if (!array_key_exists($ext, $allowed)) {
          $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }
        // Vérifie la taille du fichier - 5Mo maximum
        $maxsize = 5 * 1024 * 1024;
        if ($filesize > $maxsize){
          $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }else{
          // Vérifie le type MIME du fichier
          if (in_array($filetype, $allowed)) {
              // Vérifie si le fichier existe avant de le télécharger.
              if (file_exists("uploads/" . $photos["name"])) {
                  $err =  $photos["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>';
              } else {
                if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $photos["name"])){
                  $err = "Erreur lors de l'upload du fichier";
                }else{
                  $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>';
                  
                  //préparation de la requête et des variables
                  $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min) VALUES (:pseudo, :id_img, :nom_img, :nom_min)';
                  $datas = array(
                      ':pseudo' => $pseudo,
                      ':id_img' => $id,
                      ':nom_img' => $filename,
                      ':nom_min' => $filename
                  );
                  //exécution de la requêete préparée
                  try{
                    $req = $bdd->prepare($sql);
                    $req->execute($datas);
                  }catch(Exception $e){
                    $err = " Erreur dans la requête : " . $e->getMessage();
                  }
                }
              }
          }else{
             $err =  "Error de type de fichier: ";
          }
        } else {
          $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }
      } else  {
        $err =  "Error: " . $photos["error"];
      }
  } else {
    $err = "Méthode invalide"; 
  }
  
  $res['error'] = $err;
  
  // On renvoi la réponse au format JSON
  echo json_encode($res);
  
?>
           

0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 18:50
merci jordane pour la correction mais de nouveau une erreur
cette fois c est une page blanche qui est retournée

et j ai une erreur dans le javascript

0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 18:53
Pense bien à nous montrer l'onglet REPONSE de ta capture écran ... c'est elle qui, le plus souvent nous dira ce qui coince.

Mais là, une erreur 500 .. c'est visiblement une erreur de code.
Comme je code de tête sans pouvoir tester, il se peut que j'ai mal fermé un IF ou oublié une parenthèse ou un point-virgule...
Je te laisse trouver.
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 19:01
l onglet réponse est vide
apparemment cela se situe a la ligne 77
et pourtant les deux accolades sont bonnes
j ai regarder on a bien des points virgules la ou il faut
je vais continuer a regarder
voici le code de l erreur

0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 19:07
Essayes
<?php
// Démarrage SESSION
session_start();

//Connexion à la bdd
require_once 'base.php';

// Variables/constantes...
  $allowed = array(
            "jpg" => "image/jpg",
            "JPG" => "image/JPG",
            "jpeg" => "image/jpeg",
            "JPEG" => "image/JPEG",
            "gif" => "image/gif",
            "png" => "image/png",
            "PNG" => "image/PNG"
        );

$res = array();// variable qui contiendra les infos à retourner au script JS
        
// récupération PROPRE des variables de type "array" AVANT de les utiliser  (j'ai l'impression de radoter vu le nombre de fois que je t'ai déjà donné ce genre de code !!!! )
$getpseudo = !empty($_COOKIE['pseudo']) ? $_COOKIE['pseudo'] : NULL;
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: NULL;
$id = !empty($_POST['id']) ? $_POST['id']: NULL;
$photos = !empty($_FILES["photo"]) ? $_FILES["photo"] : NULL;    


// Vérifier si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Vérifie si le fichier a été uploadé sans erreur.
    if ($photos && $photos["error"] == 0){
      
        $filename = $photos["name"];
        $filetype = $photos["type"];
        $filesize = $photos["size"];
        // Vérifie l'extension du fichier
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        if (!array_key_exists($ext, $allowed)) {
          $err = 'Erreur : Veuillez sélectionner un format de fichier valide.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }
        // Vérifie la taille du fichier - 5Mo maximum
        $maxsize = 5 * 1024 * 1024;
        if ($filesize > $maxsize){
          $err = 'Error: La taille du fichier est supérieure à la limite autorisée.</br> <a href="javascript:history.back()">Pour recommencer</a>';
        }else{
          // Vérifie le type MIME du fichier
          if (in_array($filetype, $allowed)) {
              // Vérifie si le fichier existe avant de le télécharger.
              if (file_exists("uploads/" . $photos["name"])) {
                  $err =  $photos["name"] . ' existe déjà.</br> <a href="javascript:history.back()">Pour recommencer</a>';
              } else {
                if(! move_uploaded_file($photos["tmp_name"], "uploads/" . $photos["name"])){
                 $err = 'Error: Il y a eu un problème de téléchargement de votre fichier. Veuillez réessayer.</br> <a href="javascript:history.back()">Pour recommencer</a>';
                }else{
                  $res['message'] = '<style="font-size:22px; margin-left:20%; margin-top:90px;text-align: center;">Votre fichier a été téléchargé avec succès.>';
                  
                  //préparation de la requête et des variables
                  $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min) VALUES (:pseudo, :id_img, :nom_img, :nom_min)';
                  $datas = array(
                      ':pseudo' => $pseudo,
                      ':id_img' => $id,
                      ':nom_img' => $filename,
                      ':nom_min' => $filename
                  );
                  //exécution de la requêete préparée
                  try{
                    $req = $bdd->prepare($sql);
                    $req->execute($datas);
                  }catch(Exception $e){
                    $err = " Erreur dans la requête : " . $e->getMessage();
                  }
                }
              }
          }else{
             $err =  "Error de type de fichier: ";
          }
        } 
      } else  {
        $err =  "Error: " . $photos["error"];
      }
  } else {
    $err = "Méthode invalide"; 
  }
  
  $res['error'] = $err;
  
  // On renvoi la réponse au format JSON
  echo json_encode($res);
  
?>
           
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 19:11
merci pour la réponse jordane et le code
cela passe pour l erreur
mais il y a ceci a présent
j ai ce message sur mon écran
{"message":"Votre fichier a \u00e9t\u00e9 t\u00e9l\u00e9charg\u00e9 avec succ\u00e8s.>","error":" Erreur dans la requ\u00eate : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pseudo' cannot be null"}

0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 19:24
Et le message d'erreur ne te paraît pas suffisamment clair ?
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 29 mai 2021 à 19:31
y a une erreur dans la requête il me semble au sujet du pseudo ?
mais je ne vois pas ce qui cloche ...
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 19:41
Enfin bon même si tu ne parles pas anglais je pense que le message est suffisamment compréhensible
Column 'pseudo' cannot be null

au pire tu peux utiliser un des nombreux traducteur en ligne qui te permettra de comprendre la signification de ce message d'erreur.
Ensuite tu pourras rechercher des solutions lorsqu'une requête SQL te donne ce genre de message....
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 19:50
merci pour la reponse
donc cela se modifie dans mon phpmyadin
ou la colonne ne peux pas être null ?
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié le 29 mai 2021 à 20:03
soit tu autorises que cette colonne soit nul
Soit tu modifies la requête SQL pour y mettre une valeur.
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 29 mai 2021 à 20:10
dans ma base
je devrais lui indiquer que
que null


ou alors modifier cette ligne
 ':pseudo' => $pseudo,


de cette façon
is_null(variable);

donc

 ':pseudo' => is_null($pseudo),
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 20:12
Je fais, selon toi, cette instruction
is_null($pseudo),
??
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
29 mai 2021 à 20:16
De toute façon, tu ne te pose pas les bonnes questions....
Est-ce que pour toi, tu peux réellement avoir une ligne dans la base de données pour laquelle le pseudo est vide ?
Je pense que non... Ça ne devrait pas...

Si on reprend le code Ajax côté JavaScript, envoie tu en plus de l'image, les différentes informations présentes dans ton formulaire ? Il ne me semble pas...
Il faut donc modifier le code javascript pour y a sur les autres champs de ton formulaire.
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 20:23
jordane
merci pour la réponse et les explications
mais je pense que cette fois sans que je ne puisse rien connaître en javascrpt cela sort complètement de mes compétences
je ne vais jamais m en sortir
je vais donc me diriger vers un truc plus simple ...
je pensais au début que cela ne sert qu une ou deux lignes a modifier

je vais donc chercher un moyen pour afficher un message d attende lors de l envois en javascript

mais quoi qu il en soi merci d avoir fait ton maximum pour m aider
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié le 29 mai 2021 à 21:02
Vu le travail fourni, il serait dommage de s'arrêter là ..

Coté JS tu n'as que deux lignes de code à connaitre pour compléter ce que tu as à faire

Récupérer la valeur d'un input en javascript via son ID
var  unevariable = document.getElementById('id_de_l_input').value;

Ajout de la variable dans le formulaire envoyé en ajax
formdata.append("nomVariableCotePhp", unevariable);


et donc, côté PHP, pour récupérer la variable
$nomVariableCotePhp = !empty($_POST['nomVariableCotePhp']) ? $_POST['nomVariableCotePhp'] : NULL;
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
29 mai 2021 à 21:10
oui en effet jordane
que cela serait dommage
pourtant je en sis pas du style a abandonner

merci pour la solution

dans mon input l id est photo
et pourtant ce qui pose soucis c est le pseudo

	 
	     <form action="cible-fichier.php?pseudo=<?php echo $pseudo;?>&id=<?php echo $id;?>"id="upload_form" enctype="multipart/form-data" method="post">
	  	  <div class="form-group">
        <label for="fileUpload">Fichier:</label>
        
        
         <input type="file" name="photo" id="photo">
        <input type="submit" name="photo" value="Upload"  onchange="uploadFile()">
        
          <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
  <h3 id="status"></h3>
  <p id="loaded_n_total"></p>
        
        
        
        <p><strong>Note:</strong> Veuillez patienter 1 a 2 minutes pour l upload svp</p>
        <p><strong>Note:</strong> Seuls les formats .jpg, .jpeg, .jpeg, .gif, .png sont autorisés jusqu'à une taille maximale de 5 Mo.</p>

		 </div>

    </form>
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 21:16
Ton formulaire ne sert qu'à envoyer une photo ?
Tu n'envoies pas le pseudo de l'utilisateur ??

Il faut que tu le mettes ( quit à le mettre dans un champ input hidden )
car tu en as besoin pour ta reuqête
  //préparation de la requête et des variables
                  $sql = 'INSERT INTO galerie_images (pseudo, id_img, nom_img, nom_min) VALUES (:pseudo, :id_img, :nom_img, :nom_min)';
              

Au passage, tu aurais du faire la jointue sur l'id de l'utilisateur plutot que son pseudo ... mais bon... c'est toi qui voit.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
29 mai 2021 à 21:17
et à quoi correspond le champ id_img ?
c'est un champ autoincrementé non ?
Dans ce cas là, il ne faut pas le mettre dans la requête.
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 29 mai 2021 à 23:20
en fait tout cette partie de code ne vient pas de moi
c est au tout début de mon site ou je savais même pas ce que c était une base de donnée
et une personne âgée m a propose de m aider et je m aperçois que cela est un peu le foutoir

le principe est le suivant
chaque utilisateur peut entrer sa journée de pêche et ajouter des photos
et sur ces photos un commentaire pu être ajoute
ces photos peuvent être également supprimées

donc sur chaque journée de pêche postée il y a des photos

par exemple
si le pécheur A a été péché le 1 mai il peux ajouter des photos , supprimer ou même voir ces photos en grand format

idem pour le pêcheur B ou c ou D ...

donc il faut une relation pour mettre tout cela en place
dans ma base chez un ID qui sert pour les photos en général
puis un nom pour l image normal nom_img
un nom pour l image minimum nom_min
le pseudo a qui correspond la photo
et enfin l ID_ IMG qui correspond a la journée de pêche
et bien sur un champ commentaire
tout cela fonctionne peut être par magie ...
mais cela fonctionne

comme dans l exemple ci dessous
ce sot les photos d une seule journee de peche
donc l ID est celui de la photo en genral
puis le nom de l image nom_img
puis le nom pour la miniature nom_min
le pseusdo a qui correspond la photo
l id_img qui correspond a la journée de pèche de tel facon a ce que la bonne photo apparaisse sur la bonne journée de pèche du bon utilisateur


dans cet exemple c est toutes mes photos pour une journée de pêche bien précise

0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 mai 2021 à 23:39
Et donc... Où se trouvent ces données dans ta première page ?
Car il faut les envoyer dans le script js ajax et les récupérer côté php pour s'en servir...
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 29 mai 2021 à 23:55
dans la première page
avant l envois de la photo je suis en possession de l id et du pseudo

puis j arrive sur la page 2 ou les variables de la photos sont crées
le contenu lui c est encore pour après

donc il faut dans le JavaScript le pseudo et l id ?

voici le code de la page 1 ave la dernière correction faite ou j ai ajouter le pseudo
je suppose que je dois faire pareil avec l id ??



<?php 
session_start();
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: NULL;
$id = !empty($_POST['id']) ? $_POST['id']: NULL;

if(isset($_GET['pseudo'], $_GET['id'])){
$pseudo = $_GET['pseudo'];
$id = $_GET['id'];
}else
{
header('Location:../login-obligatoire-peche-perle.php');
        die();}
?>
<!doctype html>
<html lang="en">
   <head>
      <!-- Required meta tags -->
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <!-- Bootstrap CSS -->
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
      <link rel="stylesheet" type="text/css" href="./css/album.css">
      <title>Hello, world!</title>
        <style>
       @media (min-width: 0px) and (max-width:600px) {
      .container1{width: 85%;    }
 }
        @media (min-width: 601px) and (max-width:2500px) {
      .container1{width: 50%;    }
 }
  </style>
     </head>
   <!-- fin head -->
   <!-- debut body -->
<body >
      <!-- debut container total-->
      <div class="container">
         <title>phil le perleur</title>
         <!-- debut container entete-->
         <div class="container" style=" max-width: 100%;margin:auto;">
            <!-- debut banniere -->
            <?php include("./include/baniere-peche-perle.php"); ?>
            <!-- fin banniere -->
            <!-- debut menu -->
            <?php include("./include/menu.php"); ?>
            <!-- fin menu -->
         </div>
         <!-- fin container entete-->
 <title> formulaire envoi de fichiers</title>
<div class="container1" style=" max-width: 100%;margin:auto;">
     <form action="cible-fichier.php?pseudo=<?php echo $pseudo;?>&id=<?php echo $id;?>"id="upload_form" enctype="multipart/form-data" method="post">
      <div class="form-group">
        <label for="fileUpload">Fichier:</label>
                 <input type="file" name="photo" id="photo">
        <input type="submit" name="photo" value="Upload"  onchange="uploadFile()">
                  <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
  <h3 id="status"></h3>
  <p id="loaded_n_total"></p>
        <p><strong>Note:</strong> Veuillez patienter 1 a 2 minutes pour l upload svp</p>
        <p><strong>Note:</strong> Seuls les formats .jpg, .jpeg, .jpeg, .gif, .png sont autorisés jusqu'à une taille maximale de 5 Mo.</p>
   </div>
    </form>
</div>
<script>function _(el) {
  return document.getElementById(el);
}

function uploadFile(){
  var file = _("photo").files[0];
  // alert(file.name+" | "+file.size+" | "+file.type);
  var  pseudo = document.getElementById('id_de_l_input').value;
  formdata.append("pseudo", pseudo);
  var formdata = new FormData();
  formdata.append("photo", file);
  var ajax = new XMLHttpRequest();
  ajax.upload.addEventListener("progress", progressHandler, false);
  ajax.addEventListener("load", completeHandler, false);
  ajax.addEventListener("error", errorHandler, false);
  ajax.addEventListener("abort", abortHandler, false);
  ajax.open("POST", "cible-fichier.php"); // http://www.developphp.com/video/JavaScript/File-Upload-Progress-Bar-Meter-Tutorial-Ajax-PHP
  //use file_upload_parser.php from above url
  ajax.send(formdata);
}

function progressHandler(event) {
  _("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total;
  var percent = (event.loaded / event.total) * 100;
  _("progressBar").value = Math.round(percent);
  _("status").innerHTML = Math.round(percent) + "% uploaded... please wait";
}

function completeHandler(event) {
  let res = typeof(event.target.responseText)!='undefined' ? JSON.parse(event.target.responseText) : "";
  let message = typeof(res.message)!='undefined' ? res.message : "";
  let error = typeof(res.error)!='undefined' ? res.error : null;
  
  _("status").innerHTML = error ? error : message;
  _("progressBar").value = 0; //wil clear progress bar after successful upload
}
function errorHandler(event) {
  _("status").innerHTML = "Upload Failed";
}
function abortHandler(event) {
  _("status").innerHTML = "Upload Aborted";
}</script>
      <div class="container" style=" max-width: 100%;margin:auto;">
            <!-- debut pied de page-->
            <?php include("./include/pied-de-page.php"); ?>
            <?php include("./include/footer.php"); ?>
         </div>
      </div>
   </body>
   <!-- fin du body-->
</html>
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
30 mai 2021 à 00:15
oh la la la....

Avant de continuer, vu que normalement tu as compris .... je vais te laisser corriger ces lignes de code
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo']: NULL;
$id = !empty($_POST['id']) ? $_POST['id']: NULL;

if(isset($_GET['pseudo'], $_GET['id'])){
$pseudo = $_GET['pseudo'];
$id = $_GET['id'];
}

A toi de savoir si les données arrivent en GET ou en POST et donc;. à faire le choix entre les deux..


Ensuite, tu regarderas cette ligne de code :
var  pseudo = document.getElementById('id_de_l_input').value;

et tu me dis ce qu'elle fait exactement...

De là, j'ose espérer que tu verras ce qui manque et ce qu'il faut modifier.
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 30 mai 2021 à 00:33
ouppss quelle erreur

$pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo']: NULL;
$id = !empty($_GET['id']) ? $_GET['id']: NULL;

if(isset($_GET['pseudo'], $_GET['id'])){
$pseudo = $_GET['pseudo'];
$id = $_GET['id'];
}


pour ce qui est de la lige de code

la variable pseudo récupéré les informations de la balise id

donc je dois remplacer
comme ceci

var  pseudo = document.getElementById('photo').value;

ou alors
var  photo = document.getElementById('photo').value;


si je réfère a cet exemple

<script type="text/javascript">  
function getcube(){  
var number=document.getElementById("number").value;  
alert(number*number*number);  
}  
</script>  
<form>  
Enter No:<input type="text" id="number" name="number"/><br/>  
<input type="button" value="cube" onclick="getcube()"/>  
</form> 
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
30 mai 2021 à 00:37
Tu te relis un peu ou tu pries très fort en espérant tomber juste ?

Dans la variable pseudo .. tu veux y mettre ... le pseudo !
Alors pourquoi y mets tu le contenu de l'input photo ????

Ensuite, les deux codes sont à corriger à part !!
Le code PHP d'un côté ...
Le code JS ensuite...

Mais déjà, rien que dans les lignes de code PHP .. il n'y a rien qui te choque ??
Que comprends tu des ces 6 lignes de code ? Peux tu essayer de formuler en français, ce que chacune de ces lignes font ?
Par ce que je persiste à penser que tu copie/colle sans chercher à comprendre !!
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
30 mai 2021 à 04:51
bonjour jordane

ma connexion est tres mauvaise

donc pour te repondre
tu m as dit que je devais rendre propre les variables avant l utilisation

comme je compte utiliser les variables id et pseudo je les rends propre ...car c est bien ce que tu fais
$pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo']: NULL;

$id = !empty($_GET['id']) ? $_GET['id']: NULL;

ensuite

if(isset($_GET['pseudo'], $_GET['id'])){
$pseudo = $_GET['pseudo'];
$id = $_GET['id'];
}


si les variables pseudo et id sont bien définie
je dis que la $pseudo est égal a l appel de la variable pseudo
idem pour id


si je comprends ce que tu veux me faire comprendre
si je rends propre les variables

elles ne peuvent plus être définies ?



Dans la variable pseudo .. tu veux y mettre ... le pseudo !
Alors pourquoi y mets tu le contenu de l'input photo ????


alors de ce cote je trouverais plus logique de mettre la variable pseudo dans pseudo

de cette façon

var  pseudo = document.getElementById('pseudo').value;


merci pour ta patience ...
en même temps je fais tout mon possible , mais le php ca reste du php idem pour le javascript
ou de ce cote c est encore très obscur

je serais absent pour la journée ....
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
30 mai 2021 à 10:08
C'est le "ensuite" qui me pose problème ...

Si tu fais :
$pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo']: NULL;
$id = !empty($_GET['id']) ? $_GET['id']: NULL;

à quoi sert :
if(isset($_GET['pseudo'], $_GET['id'])){
  $pseudo = $_GET['pseudo'];
  $id = $_GET['id'];
}


Comprends tu ce que fais une ligne de code comme celle la :
$unevariable = condition ? valeur si vraie : valeur si faux ;



alors de ce cote je trouverais plus logique de mettre la variable pseudo dans pseudo
de cette façon
var pseudo = document.getElementById('pseudo').value;

Oui.
Mais dans ce cas... as tu un INPUT ayant pour ID "pseudo" ?
Je ne crois pas l'avoir vu... et donc... ben.. il faut l'ajouter dans ton code html.

Et faire de même pour l' id_img. ( qui correspond à ta variable $id si je comprend bien )

Et si tu ne veux pas passer par des inputs...
Tu peux directement mettre les valeurs en Javascript comme ceci
var pseudo = '<?php echo $pseudo;?>';
var id= '<?php echo $id ;?>';


et dans l'envoi en ajax (côté JS )
formdata.append("pseudo ", pseudo );
formdata.append("id", id);
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
30 mai 2021 à 17:36
bonjour Jordane

merci pour la réponse l aide

je ne maitrise pas encore toutes les subtilités de php
pour quelqu'un comme toi , tu joues avec cela comme si cela était une petite marionnette et franchement j admire et je te dis bravo
mais quelqu'un qui comme moi se retrouve la dedans comme ca
au début mon code était censé être très simple et puis ben de fil en aiguille ...


enfin bref

pour ce qui est du début du code de nouveau je ne comprends pas bien
dans un premier temps les variables sont mises a 0
jusque la je suis d accord

mais ensuite je vérifie si les variables reçues sont bien définies pour ensuite les transmettre dans deux variables qui sont pseudo et id...




ou alors j aurais du peut être rendre propre les deux variables pseudo et id que je crée

et laisser mon début de code comme ceci

if(isset($_GET['pseudo'], $_GET['id'])){
  $pseudo = $_GET['pseudo'];
  $id = $_GET['id'];
}




donc pour la suite tu me conseilles de supprimer
if(isset($_GET['pseudo'], $_GET['id'])){
  $pseudo = $_GET['pseudo'];
  $id = $_GET['id'];
}


et d ajouter


var pseudo = '<?php echo $pseudo;?>';
var id= '<?php echo $id ;?>';


et ensuite

formdata.append("pseudo ", pseudo );
formdata.append("id", id);




j ai essaye de modifier le code mais de nouveau le pseudo ne veux pas passer







le code modifie du JavaScripts est le suivant

<script>function _(el) {
  return document.getElementById(el);
}

function uploadFile(){
  var file = _("photo").files[0];
  // alert(file.name+" | "+file.size+" | "+file.type);
  var pseudo = '<?php echo $pseudo;?>';
  formdata.append("pseudo ", pseudo );
  var id= '<?php echo $id ;?>';
  formdata.append("id", id);
  var formdata = new FormData();
  formdata.append("photo", file);
  var ajax = new XMLHttpRequest();
  ajax.upload.addEventListener("progress", progressHandler, false);
  ajax.addEventListener("load", completeHandler, false);
  ajax.addEventListener("error", errorHandler, false);
  ajax.addEventListener("abort", abortHandler, false);
  ajax.open("POST", "cible-fichier.php"); // http://www.developphp.com/video/JavaScript/File-Upload-Progress-Bar-Meter-Tutorial-Ajax-PHP
  //use file_upload_parser.php from above url
  ajax.send(formdata);
}

function progressHandler(event) {
  _("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total;
  var percent = (event.loaded / event.total) * 100;
  _("progressBar").value = Math.round(percent);
  _("status").innerHTML = Math.round(percent) + "% uploaded... please wait";
}

function completeHandler(event) {
  let res = typeof(event.target.responseText)!='undefined' ? JSON.parse(event.target.responseText) : "";
  let message = typeof(res.message)!='undefined' ? res.message : "";
  let error = typeof(res.error)!='undefined' ? res.error : null;
  
  _("status").innerHTML = error ? error : message;
  _("progressBar").value = 0; //wil clear progress bar after successful upload
}
function errorHandler(event) {
  _("status").innerHTML = "Upload Failed";
}
function abortHandler(event) {
  _("status").innerHTML = "Upload Aborted";
}</script>
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
30 mai 2021 à 17:42
Avant de continuer, regarde ce qu'est l'Écriture ternaire en programmation.
0