Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème lors de la mise en ligne

Sujet résolu
    18 février 2017 à 12:45:20

    Bonjour,

    Comme précisé dans le titre, j'ai un problème lors de la mise en ligne d'un projet que je dois rendre, je m'explique : 

    Dans mon projet (qui est un site d’hébergement d'image avec gestion de compte ect...), j'ai une page d’accueil où j'affiche les 18 images les plus récentes et, une fois que l'utilisateur est arrivé en fin de page, j'en affiche à nouveau 18 jusqu'à ce qu'il n'y en aie plus. Ensuite, j'ai une autre page où c'est la même chose, mais uniquement pour un utilisateur spécifique.

    Pour ce faire, j'ai bidouillé une fonction Javascript qui détecte le bas de page et qui, une fois que le bas de page est détecté, appelle un script PHP pour charger à nouveau les images à partir de la base de données. Fonction que voiçi

    var i = 0;
    var a = 2;
    	$(window).scroll(function(){
    		console.log(i);
    		var b = (a - 1) * 18;
    		var c = 18;
    		var scrollTop = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
    		var scrollHeight = (document.documentElement && document.documentElement.scrollHeight) || document.body.scrollHeight;
    		var scrolledToBottom = (scrollTop + window.innerHeight) >= scrollHeight;
    		console.log(scrolledToBottom);
    		if (scrolledToBottom == true){
    			var xmlhttp = new XMLHttpRequest();
    			xmlhttp.onreadystatechange = function() {
    				if (this.readyState == 4 && this.status == 200) {
    					document.getElementsByClassName("next_one")[i].innerHTML = this.responseText;
    					i++;
    					a++;
    				}
    			};
    			xmlhttp.open("GET", "scroll.php?paage_1=" + b + "&paage_2=" + c , true);
    			xmlhttp.send();
    		}
    	});

    Ceci est la fonction pour la page d'accueil, mais la fonction pour les image d'un utilisateur spécifique est quasiment pareille (la seule chose qui change est le nom du script PHP appelé et la classe de la div où afficher les images.

    Voilà ma situation exposée. Alors en local, j'ai testé et tout fonctionne à merveille, pour les deux pages, les images se chargent une fois que l'utilisateur est arrivé en bas de page. Sauf que, et vous devez voir venir le rapport avec le titre, une fois que j'ai mis mon projet en ligne, seulement une des deux page fonctionne. Je m'explique, la page d'accueil fonctionne comme en local, les images se chargent une fois que l'utilisateur arrive en bas de page. MAIS, pour la page des images spécifiques d'un utilisateur, le script PHP est appelé une première fois au chargement de la page, sauf que quand l'utilisateur arrive en fin de page, rien ne se passe, les autres images ne sont pas chargées. Du coup j'ai ouvert la console, dans la fonction, j'ai fait un "console.log('OK');" après l'envoie de la requête pour le script PHP, et il se trouve qu'après l'envoi, rien ne se passe...

    Du coup me voici avec un problème, puisque en local, tout fonctionne bien, et en ligne, un script sur deux fonctionne, ce qui veut dire que le chargement en bas de page fonctionne puisque tout va bien à la page d'accueil.

    Voilà, donc j'aurais aimé savoir si quelqu'un pouvais me renseigner ce serait sympa :)

    Merci d'avance, Rémi

    -
    Edité par RichardDassaut 18 février 2017 à 12:45:58

    • Partager sur Facebook
    • Partager sur Twitter
      18 février 2017 à 13:08:38

      Pas d'erreur JS ni PHP?
      • Partager sur Facebook
      • Partager sur Twitter
      $2b||!$2b
        18 février 2017 à 13:12:42

        Non je n'ai aucune erreur, enfin j'ai "l'erreur" qui n'en est pas vraiment une qui m'indique que il n'y a pas la div avec la classe qui est censé contenir la réponse, mais cette div est censée être générée par le script PHP. c'est juste que j'ai l'impression qu'il n'y a pas de retour du script PHP :/
        • Partager sur Facebook
        • Partager sur Twitter
          18 février 2017 à 20:27:31

          Bah oui si quelque chose devrait être présent et qu'il n'y est pas, en effet je pense que tu as un problème, c'est logique xD

          La je peux pas grand chose pour toi. Il faut que tu débug et voir si tu as pas oublié quelque chose.

          Au pire file nous ton code PHP pour voir.

          • Partager sur Facebook
          • Partager sur Twitter
          $2b||!$2b
            18 février 2017 à 21:11:14

            Ok, mais par contre, je reprécise, mais tout fonctionne bien en local, et c'est ça que je ne comprends pas :/

            Javascript :

            var i = 0;
            var a = 2;
            	$(window).scroll(function(){
            		var b = (a - 1) * 18;
            		var c = 18;
            		var scrollTop = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
            		var scrollHeight = (document.documentElement && document.documentElement.scrollHeight) || document.body.scrollHeight;
            		var scrolledToBottom = (scrollTop + window.innerHeight) >= scrollHeight;
            		console.log(scrolledToBottom);
            		if (scrolledToBottom == true){
            			var xmlhttp = new XMLHttpRequest();
            			xmlhttp.onreadystatechange = function() {
            				if (this.readyState == 4 && this.status == 200) {
            					document.getElementsByClassName("next_one_2")[i].innerHTML = this.responseText;
            					i++;
            					a++;
            				}
            			};
            			xmlhttp.open("GET", "scroll_2.php?paage_1=" + b + "&paage_2=" + c, true);
            			xmlhttp.send();
            			console.log('OK');
            		}
            	});

            Et PHP :

            <?php 
            
            include 'conn.php';
            
            if (!isset($_SESSION)){
            	session_start();
            }
            
            if ($_GET == NULL){
            	$_GET['paage_1'] = 0;
            	$_GET['paage_2'] = 18;
            }
            
            if (!isset($_GET['pseudo'])){
            	$_GET['pseudo'] = $_SESSION['SEARCH'];
            }
            
            $_GET['pseudo'] = htmlentities($_GET['pseudo']);
            
            $id_tmp = $dbh->prepare("SELECT ID from USERS where PSEUDO like '" . $_GET['pseudo'] . "';");
            $id_tmp->execute();
            $id=$id_tmp->fetchAll();
            foreach ($id as $c){
            	$id_usr = $c['ID'];
            }
            $count_tmp = $dbh->prepare("SELECT COUNT(ID_IMG) as COUNT from IMAGES where ID=" . $id_usr . ";");
            $count_tmp->execute();
            $count = $count_tmp->fetchAll();
            
            $limite = $_GET['paage_1'] . ',' . $_GET['paage_2'];
            
            foreach ($count as $f){
            	if (($_GET['paage_1']) < $f['COUNT']){
            		$selec = $dbh->prepare("SELECT IMAGES.LIEN, IMAGES.ID, IMAGES.DATE_UP, USERS.PSEUDO from IMAGES, USERS where
            		IMAGES.ID = USERS.ID and USERS.ACCES=1 and USERS.ID=" . $id_usr . " order by IMAGES.DATE_UP desc LIMIT " . $limite . ";");
            		$selec->execute();
            		$values=$selec->fetchAll();
            		foreach($values as $b){
            			$pseudale = $b['PSEUDO'];
            			if (strlen($pseudale) > 7){
            				$pseudale = substr($pseudale, -(strlen($pseudale)),7) . '...';
            			}
            			$annee = substr($b['DATE_UP'], -(strlen($b['DATE_UP'])),4);
            			$mois_tmp = substr($b['DATE_UP'], -(strlen($b['DATE_UP'])-5),2);
            			$jour = substr($b['DATE_UP'], -(strlen($b['DATE_UP'])-8),2);
            
            			include 'mois.php';
            
            			echo '<div class="recent_img"><a href="images_info.php?lien=' . $b['LIEN'] . '"><img src="' . $b['LIEN'] . '" alt=""></a>';
            			echo '<div class="info_image">Upload par <a href="profil.php?pseudo=' . $b['PSEUDO'] . '">' . $pseudale . '</a>';
            			echo ' le ' . $jour . ' ' . $mois . ' ' . $annee . '</div></div>';
            		}
            		echo '<div class="next_one_2"></div>';
            	}
            }
            
            ?>
            • Partager sur Facebook
            • Partager sur Twitter
              19 février 2017 à 8:55:56

              C'est ton code php au complet? Bon déjà il y a des choses qui ne vont pas dans ton code PHP mais c'est rien de grave.

              Par contre tu dois forcément avoir des erreurs. Une erreur de BDD, ou autre!

              Modifie la configuration de PHP pour afficher toutes les erreurs! Tu as pas sinon l'url de ton site en ligne pour qu'on voit?

              • Partager sur Facebook
              • Partager sur Twitter
              $2b||!$2b
                20 février 2017 à 9:08:05

                Bonjour à tous,

                Je m'excuse pour la gène occasionnée et ai trouvé le problème.

                Merci de ton aide skuti :)

                • Partager sur Facebook
                • Partager sur Twitter
                  20 février 2017 à 9:45:04

                  Pas de soucis. :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  $2b||!$2b

                  Problème lors de la mise en ligne

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown