Ajax - les messages d'erreur avec echo

Résolu/Fermé
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
- 7 nov. 2020 à 12:24
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
- 10 nov. 2020 à 13:25
Salut à tous,

J'ai une petit problème en Ajax, j'ai un formulaire qui envoie a ma base de donnée DDB en Ajax

Mais le soucis c'est que je ne peux plus afficher les messages d'erreur avec echo "..."; puisque la page ne se rafraîchie plus.
quand un utilisateur insert une adresse e-mail doublon ,
j'aimerai donc savoir comment faire pour afficher les messages d'erreurs, on m'a dit de faire une requête Ajax mais je gère pas du tout ça, merci à vous.
<?php 

if($_POST) {
// database connection
$server = '127.0.0.1';
$username = 'root';
$password = '';
$dbname = 'base';

$conn = new mysqli($server, $username, $password, $dbname);

// check db connection error message NE MARCHE PAS :( je ne sais pas pourquoi?

if($conn->connect_error) {
die("Connection Failed : " . $conn->connect_error);
}
else {
// echo "Successfully Connected";
}

$valid = array('success' => false, 'messages' => array());

$name = $_POST['fullName'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];

$type = explode('.', $_FILES['userImage']['name']);


$type = $type[count($type) - 1];
$url = '/uploads/files/' . uniqid(rand()) . '.' . $type;

if(in_array($type, array('gif', 'jpg', 'jpeg', 'png'))) {
if(is_uploaded_file($_FILES['userImage']['tmp_name'])) {
if(move_uploaded_file($_FILES['userImage']['tmp_name'], $url)) {

//******************************************************************
// Vérification doublon email avant validation du formulaire

$sql = "SELECT * FROM visitor WHERE email = '$email' ";
$result = $conn->query($sql);
$row = $result -> fetch_array(MYSQLI_ASSOC);

if (empty($row)){
// dans ce cas, la requete n'a rien retourné..



}else{
echo "L'email existe déjà !";
}
// dans ce cas, ALERTE AJAX .. NE MARCHE PAS :( je ne sais pas pourquoi?
// ******************************************************



// Insert into database
$sql = "INSERT INTO visitor (Name, email, Image) VALUES ('$name','$email','$url')";

if($conn->query($sql) === TRUE) {
$valid['success'] = true;
$valid['messages'] = "Successfully Uploaded";

// dans ce cas, ALERTE AJAX .. MARCHE :)
// ******************************************************
}
else {
$valid['success'] = false;
$valid['messages'] = "Erreur lors du telechargement";
}
// dans ce cas, ALERTE AJAX .. NE MARCHE PAS :( je ne sais pas pourquoi?
// ******************************************************
$conn->close();

}
else {
$valid['success'] = false;
$valid['messages'] = "Error while uploading";
}
}
}

echo json_encode($valid);

// upload the file
}




Configuration: Windows / Chrome 86.0.4240.183

8 réponses

jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273
7 nov. 2020 à 12:32
Tu dois remplacer les ECHO ( et les DIE )
par l'utilisation des variables
$valid['success'] = false;
$valid['messages'] = "L'email existe déjà !";


Ton script Ajax dans le JS doit certainement être avec la paramètre dataype:"json"
Donc... il faut absolument que tu renvoies du JSON ...

Tu aurais du le voir..... si, dans ton appel Ajax dans ton JSON tu avais gérer le error ou le fail

PS: A l'avenir, merci de préciser le langage dans les balises de code.
Explications à lire ENTIEREMENT disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

.

0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
7 nov. 2020 à 12:34
ça ne marche pas :(
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273 > lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022

7 nov. 2020 à 12:36
1 - Montre ton code Javascript

2 - Montre le code PHP modifié

3 - Montre nous la console de ton navigateur ( A noter que pour débuguer de l'ajax, je te recommande fortement d'utiliser le navigateur firefox ... et surtout.. n'oublie pas d'activer le debugage XHR )


4 - N'oublie pas d'appliquer les consignes pour poster correctement ton code sur le forum ( en précisant le langage dans les balises de code )
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
Modifié le 7 nov. 2020 à 13:51
Code Java script

<script type="text/javascript">
   var btnCust = '<button type="button" class="btn btn-default" title="Add picture tags" ' + 
      'onclick="alert(\'Cliquez sur la Photo pour télécharger.\')">' +
      '<i class="glyphicon glyphicon-tag"></i>' +
      '</button>'; 
  $("#avatar-2").fileinput({
     overwriteInitial: true,
     maxFileSize: 1500,
     showClose: false,
     showCaption: false,
     showBrowse: false,
     browseOnZoneClick: true,
     removeLabel: '',
     removeIcon: '<i class="glyphicon glyphicon-remove"></i>',
     removeTitle: 'Cancel or reset changes',
     elErrorContainer: '#kv-avatar-errors-2',
     msgErrorClass: 'alert alert-block alert-danger',
     defaultPreviewContent: '<img src="uploads/default-avatar.jpg" alt="Your Avatar" style="width:160px"><h6 class="text-muted">Click to select</h6>',
     layoutTemplates: {main2: '{preview} ' +  btnCust + ' {remove} {browse}'},
     allowedFileExtensions: ["jpg", "png", "gif"]
  });

  $(document).ready(function(){
   $("#uploadImageForm").unbind('submit').bind('submit', function(){

    var form = $(this);
    var formData = new FormData($(this)[0]);

    $.ajax({
     url: form.attr('action'),
     type: form.attr('method'),
     data: formData,
     dataType: 'json',
     cache: false,
     contentType: false,
     processData: false,
     async: false,
     success:function(response) {
      if(response.success == true) {
       $("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">'+
        '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
        response.messages + 
      '</div>');

       $('input[type="text"]').val('');
       $(".fileinput-remove-button").click();
      }
      else {
       $("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
        '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
        response.messages + 
      '</div>');
      }
     }
    });

    return false;
   });
  });
 </script>



code html
    <div class="form-group">
      <label for="email">email</label>
      <input name="email" type="text" required="required" class="form-control" id="email" placeholder="email">
    </div>
            
    <div class="form-group">
      <label for="exampleInputPassword1">Photo</label>      
      <div id="kv-avatar-errors-2" class="center-block" style="width:800px;display:none"></div>

            <div class="kv-avatar center-block" style="width:200px">
          <input id="avatar-2" name="userImage" type="file" class="file-loading">
      </div>
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>

 </div>


code php
<?php 

if($_POST) {
 // database connection
 $server = '127.0.0.1';
 $username = 'root';
 $password = '';
 $dbname = 'base';

 $conn = new mysqli($server, $username, $password, $dbname);

 // check db connection error message NE MARCHE PAS :( je ne sais pas pourquoi?
    
 if($conn->connect_error) {
  die("Connection Failed : " . $conn->connect_error);
 } 
 else {
  // echo "Successfully Connected";
 }

 $valid = array('success' => false, 'messages' => array());

 $name = $_POST['fullName'];
 $lastname = $_POST['lastname'];
 $email = $_POST['email'];

 $type = explode('.', $_FILES['userImage']['name']);
    
    
 $type = $type[count($type) - 1];
 $url = '/uploads/files/' . uniqid(rand()) . '.' . $type;

 if(in_array($type, array('gif', 'jpg', 'jpeg', 'png'))) {
  if(is_uploaded_file($_FILES['userImage']['tmp_name'])) {
   if(move_uploaded_file($_FILES['userImage']['tmp_name'], $url)) {

//******************************************************************       
// Vérification doublon email avant validation du formulaire
       
      $sql = "SELECT * FROM visitor WHERE email = '$email' ";
      $result = $conn->query($sql);
      $row = $result -> fetch_array(MYSQLI_ASSOC);
  
  if (empty($row)){
    // dans ce cas, la requete n'a rien retourné..


    
  }else{
    $valid['success'] = false;
$valid['messages'] = "L'email existe déjà !";
  }  
 // dans ce cas, ALERTE AJAX .. NE MARCHE PAS :( je ne sais pas pourquoi?
 // ******************************************************   
       
       
       
  // Insert into database
    $sql = "INSERT INTO visitor (Name, email, Image) VALUES ('$name','$email','$url')";

    if($conn->query($sql) === TRUE) {
     $valid['success'] = true;
     $valid['messages'] = "Successfully Uploaded";
        
     // dans ce cas, ALERTE AJAX ..  MARCHE  :) 
 // ******************************************************      
    } 
    else {
     $valid['success'] = false;
     $valid['messages'] = "Erreur lors du telechargement";
    }
// dans ce cas, ALERTE AJAX .. NE MARCHE PAS :( je ne sais pas pourquoi?
 // ******************************************************   
    $conn->close();

   }
   else {
    $valid['success'] = false;
    $valid['messages'] = "Error while uploading";
   }
  }
 }

 echo json_encode($valid);

 // upload the file 
}
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
7 nov. 2020 à 15:58
je m'en sors pas vraiment bien c'est trop dure le web :(
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273
7 nov. 2020 à 16:27
Commence par modifier ton appel ajax comme ceci
$.ajax({
  url: form.attr('action'),
  type: form.attr('method'),
  data: formData,
  dataType: 'json',
  cache: false,
  contentType: false,
  processData: false,
  async: false,
  success:function(response) {
    console.log("Reponse ajax",response);
    var success = typeof(response)!='undefined' && typeof(response.success)!='undefined' ? response.success : null;
    var msg = typeof(response)!='undefined' && typeof(response.messages)!='undefined' ? response.messages : "";.

    if(success == true) {
      $("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">'+
      '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
        msg + 
      '</div>');

     $('input[type="text"]').val('');
     $(".fileinput-remove-button").click();
    } else {
      $("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
        '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
        msg + 
      '</div>');
    }
  },
  error: function(xhr, ajaxOptions, error){
    console.log('ERREUR AJAX',xhr, ajaxOptions, error);
    var errorMessage = xhr.status + ': ' + xhr.statusText
    alert('Error - ' + errorMessage);
  }
});


et côté PHP, je pense que tu peux remplacer ton code par :
<?php


 // database connection
 $server = '127.0.0.1';
 $username = 'root';
 $password = '';
 $dbname = 'base';

 $conn = new mysqli($server, $username, $password, $dbname);
 // check db connection error message NE MARCHE PAS :( je ne sais pas pourquoi? 
 if($conn->connect_error) {
  $valid['success'] = false;
  $valid['messages'] = "Connection Failed : " . $conn->connect_error;
  echo json_encode($valid);
  exit;
 } 

 
 //recupération PROPRE des variables AVANT de les utiliser
 $name = !empty($_POST['fullName']) ? $_POST['fullName']: NULL;
 $lastname = !empty($_POST['lastname']) ? $_POST['lastname']: NULL;
 $email = !empty($_POST['email']) ? $_POST['email']: NULL;
 
 $valid = array('success' => false, 'messages' => array());

 $userImage = !empty($_FILES['userImage']) ? $_FILES['userImage'] : NULL;
 
 if(!$userImage ){
    $valid['success'] = false;
    $valid['messages'] = "Aucun fichier à uploader !";
    echo json_encode($valid);
    exit;
 }
 
 
 $ext = end(explode('.', $fileName));
 $url = '/uploads/files/' . uniqid(rand()) . '.' . $ext;

 if(in_array($ext, array('gif', 'jpg', 'jpeg', 'png'))) {
  if(is_uploaded_file($userImage['tmp_name'])) {
    if(move_uploaded_file($userImage['tmp_name'], $url)) {

      //******************************************************************       
      // Vérification doublon email avant validation du formulaire     
      $sql = "SELECT * FROM visitor WHERE email = '$email' ";
      $result = $conn->query($sql);
      $row = $result->fetch_array(MYSQLI_ASSOC);

      if (empty($row)){
        // dans ce cas, la requete n'a rien retourné..
        // Insert into database
        $sql = "INSERT INTO visitor (Name, email, Image) VALUES ('$name','$email','$url')";
        if($conn->query($sql) === TRUE) {
         $valid['success'] = true;
         $valid['messages'] = "Successfully Uploaded";
            
         // dans ce cas, ALERTE AJAX ..  MARCHE  :) 
     // ******************************************************      
        } else {
          $valid['success'] = false;
          $valid['messages'] = "Erreur lors du l'insertion en bdd";
        }

        
      } else {
        $valid['success'] = false;
        $valid['messages'] = "L'email existe déjà !";
      }  

    }  else {
      $valid['success'] = false;
      $valid['messages'] = "Error while uploading";
     }
  }
 }
 $conn->close();
 echo json_encode($valid);
 exit;  
?>



Puis vide le cache de ton navigateur et refait un essai.
Et si ça ne marche toujours pas, fais une capture de la CONSOLE de ton navigateur et montre la nous.

PS: Je te rappelle que pour débuguer de l'ajax, je te recommande fortement d'utiliser le navigateur firefox ... et surtout.. n'oublie pas d'activer le debugage XHR
0

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

Posez votre question
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
Modifié le 8 nov. 2020 à 13:30
bonjour
j'ai bien modifier l'appel ajax que vous avez envoyé .
ça ne marche pas :( en plus l'affichage de la miniature a disparus !
je pense que le script Aajax appartient au bouton uplourd image avec l'aperçu de l'image.
es que on doit pas aussi crée un autre appel ajax pour le champs de saisie e-mail ?
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273
8 nov. 2020 à 13:32
dans la console tu vois qu'il y a un message d'erreur au bout de 7 lignes il y a le nom du script ainsi que le numéro ligne concerné si tu cliques dessus ça va te montrer la ligne qui pose problème pourrais-tu nous montrer
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273
8 nov. 2020 à 13:33
l'erreur se trouve à la ligne 13 du code javascript que je t'ai donné comme tu peux le voir il y a un point en trop c'est dû à une erreur de frappe de ma part
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
Modifié le 8 nov. 2020 à 13:59
ça ne marche pas :( es que on doit pas aussi crée un autre appel ajax pour le champs de saisie e-mail ?
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273 > lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022

8 nov. 2020 à 14:08
Tu peux repartager le code COMPLET de ta page html/JavaScript ??
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3 > jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022

8 nov. 2020 à 14:30
<html>
<head>
	<title></title>
	<!-- boostrap css-->
	<link rel="stylesheet" type="text/css" href="assets/bootstrap/css/bootstrap.min.css">

	<!-- file input css -->
	<link rel="stylesheet" type="text/css" href="assets/fileinput/css/fileinput.min.css">
</head>
<body>

	<div class="col-md-5 col-sm-5 col-md-offset-4 col-sm-offset-4">
		<div class="page-header">
			<h3>Upload Image</h3>

			
		</div>

		<div id="messages"></div>

		<form action="php_action/uploadImage.php" method="post" enctype="multipart/form-data" id="uploadImageForm">
		  
          <div class="form-group">
		    <label for="email">email</label>
		    <input name="email" type="text" required="required" class="form-control" id="email" placeholder="email">
		  </div>
            
		  <div class="form-group">
		    <label for="exampleInputPassword1">Photo</label>		    
		    <div id="kv-avatar-errors-2" class="center-block" style="width:800px;display:none"></div>

            <div class="kv-avatar center-block" style="width:200px">
		        <input id="avatar-2" name="userImage" type="file" class="file-loading">
		    </div>
		  </div>
		  <button type="submit" class="btn btn-default">Submit</button>
	  </form>

	</div>
	
	<!-- jquery -->
	<script type="text/javascript" src="assets/jquery/jquery.min.js"></script>
	<!-- bootsrap js -->
	<script type="text/javascript" src="assets/bootstrap/js/bootstrap.min.js"></script>
	<!-- file input -->
	<script src="assets/fileinput/js/plugins/canvas-to-blob.min.js" type="text/javascript"></script>	
	<script src="assets/fileinput/js/plugins/sortable.min.js" type="text/javascript"></script>	
	<script src="assets/fileinput/js/plugins/purify.min.js" type="text/javascript"></script>
	<script src="assets/fileinput/js/fileinput.min.js"></script>

	<script type="text/javascript">
			var btnCust = '<button type="button" class="btn btn-default" title="Add picture tags" ' + 
		    'onclick="alert(\'Cliquez sur la Photo pour télécharger.\')">' +
		    '<i class="glyphicon glyphicon-tag"></i>' +
		    '</button>'; 
		$("#avatar-2").fileinput({
	    overwriteInitial: true,
	    maxFileSize: 1500,
	    showClose: false,
	    showCaption: false,
	    showBrowse: false,
	    browseOnZoneClick: true,
	    removeLabel: '',
	    removeIcon: '<i class="glyphicon glyphicon-remove"></i>',
	    removeTitle: 'Cancel or reset changes',
	    elErrorContainer: '#kv-avatar-errors-2',
	    msgErrorClass: 'alert alert-block alert-danger',
	    defaultPreviewContent: '<img src="uploads/default-avatar.jpg" alt="Your Avatar" style="width:160px"><h6 class="text-muted">Click to select</h6>',
	    layoutTemplates: {main2: '{preview} ' +  btnCust + ' {remove} {browse}'},
	    allowedFileExtensions: ["jpg", "png", "gif"]
		});

		$(document).ready(function(){
			$("#uploadImageForm").unbind('submit').bind('submit', function(){

				var form = $(this);
				var formData = new FormData($(this)[0]);

				$.ajax({
  url: form.attr('action'),
  type: form.attr('method'),
  data: formData,
  dataType: 'json',
  cache: false,
  contentType: false,
  processData: false,
  async: false,
  success:function(response) {
    console.log("Reponse ajax",response);
    var success = typeof(response)!='undefined' && typeof(response.success)!='undefined' ? response.success : null;
    var msg = typeof(response)!='undefined' && typeof(response.messages)!='undefined' ? response.messages : "";

    if(success == true) {
      $("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">'+
      '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
        msg + 
      '</div>');

     $('input[type="text"]').val('');
     $(".fileinput-remove-button").click();
    } else {
      $("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
        '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
        msg + 
      '</div>');
    }
  },
  error: function(xhr, ajaxOptions, error){
    console.log('ERREUR AJAX',xhr, ajaxOptions, error);
    var errorMessage = xhr.status + ': ' + xhr.statusText
    alert('Error - ' + errorMessage);
  }
});
    </script>


</body>
</html>
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273 > lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022

8 nov. 2020 à 15:33
Tu as oublié de fermer des balises dans ton js ...

Essaye comme ça
<script type="text/javascript">
			var btnCust = '<button type="button" class="btn btn-default" title="Add picture tags" ' + 
		    'onclick="alert(\'Cliquez sur la Photo pour télécharger.\')">' +
		    '<i class="glyphicon glyphicon-tag"></i>' +
		    '</button>'; 
		$("#avatar-2").fileinput({
	    overwriteInitial: true,
	    maxFileSize: 1500,
	    showClose: false,
	    showCaption: false,
	    showBrowse: false,
	    browseOnZoneClick: true,
	    removeLabel: '',
	    removeIcon: '<i class="glyphicon glyphicon-remove"></i>',
	    removeTitle: 'Cancel or reset changes',
	    elErrorContainer: '#kv-avatar-errors-2',
	    msgErrorClass: 'alert alert-block alert-danger',
	    defaultPreviewContent: '<img src="uploads/default-avatar.jpg" alt="Your Avatar" style="width:160px"><h6 class="text-muted">Click to select</h6>',
	    layoutTemplates: {main2: '{preview} ' +  btnCust + ' {remove} {browse}'},
	    allowedFileExtensions: ["jpg", "png", "gif"]
		});

    function uploadImg(form,formData){
      $.ajax({
          url: form.attr('action'),
          type: form.attr('method'),
          data: formData,
          dataType: 'json',
          cache: false,
          contentType: false,
          processData: false,
          async: false,
          success:function(response) {
            console.log("Reponse ajax",response);
            var success = typeof(response)!='undefined' && typeof(response.success)!='undefined' ? response.success : null;
            var msg = typeof(response)!='undefined' && typeof(response.messages)!='undefined' ? response.messages : "";

            if(success == true) {
              $("#messages").html('<div class="alert alert-success alert-dismissible" role="alert">'+
              '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
                msg + 
              '</div>');

             $('input[type="text"]').val('');
             $(".fileinput-remove-button").click();
            } else {
              $("#messages").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
                '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
                msg + 
              '</div>');
            }
          },
          error: function(xhr, ajaxOptions, error){
            console.log('ERREUR AJAX',xhr, ajaxOptions, error);
            var errorMessage = xhr.status + ': ' + xhr.statusText;
            alert('Error - ' + errorMessage);
          }
        });
    }
    
    $(document).ready(function(){
      $('#uploadImageForm').on('submit', function(e){
        e.preventDefault();
        var form = $(this);
				var formData = new FormData($(this)[0]);
        uploadImg(form,formData);
      });
    });
		    
    
     
    </script>
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3 > jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022

8 nov. 2020 à 15:58
Je vous remercie pour votre aide :) Jordan45 <3
la j'ai une alerte pop-up mais ça marche toujours pas quand je clic sur le bouton Submit !

:(
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
8 nov. 2020 à 18:21
Veuillez m'excuser pour le dérangement Jordane45 :( voila ma capture d'écran avec Debugage XHR
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273
8 nov. 2020 à 18:24
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273 > jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022

Modifié le 8 nov. 2020 à 18:36
Une fois le debug XHR activé,
Tu déplie la ligne correspondant à ton appel Ajax
Puis tu vas dans l'onglet Réponse
puis tu déplies "charge utile"
et tu nous montre ce que ça contient

0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273 > jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022

8 nov. 2020 à 18:44
Au passage, je viens de faire quelques corrections au niveau du code php
<?php


 // database connection
 $server = '127.0.0.1';
 $username = 'root';
 $password = '';
 $dbname = 'base';

 $conn = new mysqli($server, $username, $password, $dbname);
 // check db connection error message NE MARCHE PAS :( je ne sais pas pourquoi? 
 if($conn->connect_error) {
  $valid['success'] = false;
  $valid['messages'] = "Connection Failed : " . $conn->connect_error;
  echo json_encode($valid);
  exit;
 } 

 
 //recupération PROPRE des variables AVANT de les utiliser
 $name = !empty($_POST['fullName']) ? $_POST['fullName']: NULL;
 $lastname = !empty($_POST['lastname']) ? $_POST['lastname']: NULL;
 $email = !empty($_POST['email']) ? $_POST['email']: NULL;
 
 $valid = array('success' => false, 'messages' => array());

 $userImage = !empty($_FILES['userImage']) ? $_FILES['userImage'] : NULL;
 
 if(!$userImage['tmp_name'] ){
    $valid['success'] = false;
    $valid['messages'] = "Aucun fichier à uploader !";
    echo json_encode($valid);
    exit;
 }
 
 
 $ext = end(explode('.', $userImage['tmp_name']));
 $url = '/uploads/files/' . uniqid(rand()) . '.' . $ext;

 if(in_array($ext, array('gif', 'jpg', 'jpeg', 'png'))) {
  if(is_uploaded_file($userImage['tmp_name'])) {
    if(move_uploaded_file($userImage['tmp_name'], $url)) {

      //******************************************************************       
      // Vérification doublon email avant validation du formulaire     
      $sql = "SELECT * FROM visitor WHERE email = '$email' ";
      $result = $conn->query($sql);
      $row = $result->fetch_array(MYSQLI_ASSOC);

      if (empty($row)){
        // dans ce cas, la requete n'a rien retourné..
        // Insert into database
        $sql = "INSERT INTO visitor (Name, email, Image) VALUES ('$name','$email','$url')";
        if($conn->query($sql) === TRUE) {
         $valid['success'] = true;
         $valid['messages'] = "Successfully Uploaded";
            
         // dans ce cas, ALERTE AJAX ..  MARCHE  :) 
     // ******************************************************      
        } else {
          $valid['success'] = false;
          $valid['messages'] = "Erreur lors du l'insertion en bdd";
        }

        
      } else {
        $valid['success'] = false;
        $valid['messages'] = "L'email existe déjà !";
      }  

    }  else {
      $valid['success'] = false;
      $valid['messages'] = "Error while uploading";
     }
  }
 }  else {
    $valid['success'] = false;
    $valid['messages'] = "Extension non autorisée";
 }
 $conn->close();
 echo json_encode($valid);
 exit;  
?>
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3 > jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022

8 nov. 2020 à 18:52
voila <3
0
jordane45
Messages postés
36030
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 août 2022
4 273 > lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022

8 nov. 2020 à 19:31
Reprends le code PHP que je viens de te donner cela devrait corriger l'erreur
0
lina-24
Messages postés
61
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
1 juin 2022
3
10 nov. 2020 à 13:25
Bonjour Jordane45
je n'arrive plus a me retrouver avec ce script qui fonction plus :( es-que c'est possible de le nettoyer pour moi et le rendre basque html sans code javascript ni css (script brut avec les message d'erreur en echo ? je vous serais reconnaissante si vous pouviez
0