System pour changer de video sans changer de page web [Résolu]

Signaler
-
 firpic -
Bonjour, j'essaye de creer une page pour regarder de video, je ne voudrais pas faire une page par video, du coup j'ai recherché sur internet des aide, que je n'ai pas trouvé. J'ai donc essayé de faire le code moi-meme avec mes competances. Je ne comprend pas pourquoi cela ne fonctionne pas.Quand la page est charge aucune erreur n'est afficher.
pour acceder a la page:
https://streawer.000webhostapp.com/serie/OnePiece/One_Piece.php

<?php require('../../ses.php'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <?php include('../lm1serie.php');?>
</head>
<body style="background-color: #373939;">
<?php include('../et1serie.php'); 
require_once('../../configepi.php');
$np = 1;
$title='';
$lien='';
$epi = "SELECT title='$title' and lien='$lien' FROM `OnePiece` WHERE episode='$np'";
$query = mysqli_query($conn,$epi);
?>
    <div class="vide">
        <div>
            <script>
            function epiP(){
                <?php
                    $np++;
                    $epi1 = "SELECT title='$title' and lien='$lien' FROM `OnePiece` WHERE episode='$np'";
                    $query1 = mysqli_query($conn,$epi1);
                ?>
            }
            function epiS(){
                <?php
                    $np--;
                    $epi2 = "SELECT title='$title' and lien='$lien' FROM `OnePiece` WHERE episode='$np'";
                    $query2 = mysqli_query($conn,$epi2);
                ?>
            }
            </script>
            <button onclick="epiP()" style="background-color: #4DB89A; color: #09816c;">Précedant</button>
            <button onclick="epiS()" style="background-color: #4DB89A; color: #09816c;">Suivant</button>
            <?php
                while($np==0){
                    if($np==0){
                        echo 'L episode n est pas disponible';
                        $np = 1;
                    }
                };
                while($np<1){
                    echo $title;
                    echo $lien;
                }
            ?>
        </div>
    </div>
    
</body>
<?php include('../../footer.php'); ?>
</html>

5 réponses

Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866
bonjour,
as-tu examiné le code source HTML de ta page?
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
partage le texte du code source, en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

ton programme php est incorrect, est-ce ton premier exercice?
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

oui, c'est mon premier code avant je prenais des code tout fais et je modifiait juste le style.

voici le code source de ma page:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="icon" type="images/png" sizes="512x512" href="../../android-chrome-512x512.png">
    <link rel="stylesheet" href="../all_style.css">
    <link rel="stylesheet" href="../../style.css">
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Streawer</title>
</head>
<body style="background-color: #373939;">
<!-- En-tête de la page-->
<script>
        $(document).keydown(function(e){
        if(e.which === 123){
           return false;
        }
    });
</script>
<div class="entete" onclick="window.location.reload()">
    <img src="../../img/logo.png" id="logo" alt="Logo Streawer"/>
    <a href="../../main.php" id="nm" style="color: #4DB89A;"><h1 id="nom">Streawer</h1></a>
    <div class="info">
    </div>
</div>
<?php 
require_once('../../configepi.php');
$np = 1;
$title='';
$lien='';
$epi = "SELECT title='$title', lien='$lien' FROM `OnePiece` WHERE episode='$np'";
$query = mysqli_query($conn,$epi);
?>
    <div class="vide">
        <div>
            <script>
            function epiP(){
                <?php
                    $np++;
                    $epi1 = "SELECT title='$title', lien='$lien' FROM `OnePiece` WHERE episode='$np'";
                    $query1 = mysqli_query($conn,$epi1);
                ?>
            }
            function epiS(){
                <?php
                    $np--;
                    $epi2 = "SELECT title='$title', lien='$lien' FROM `OnePiece` WHERE episode='$np'";
                    $query2 = mysqli_query($conn,$epi2);
                ?>
            }
            </script>
            <button onclick="epiP()" style="background-color: #4DB89A; color: #09816c;font-size: 20px;">Précedant</button>
            <button onclick="epiS()" style="background-color: #4DB89A; color: #09816c;font-size: 20px;">Suivant</button>
            <?php
                while($np==0){
                    if($np==0){
                        echo 'L episode n est pas disponible';
                        $np = 1;
                    }
                };
                while($np<1){
                    echo $title;
                    echo $lien;
                }
            ?>
        </div>
    </div>
    
</body>
<footer>
    <a href="http://copyright.be" target="_blank" style="text-decoration: none; color: #4DB89A;">Copyright © 2021 Streawer - Tous droits réservés</a>
</footer>
</html>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
je pense qu'il vaut mieux commencer par quelque chose de plus simple.
tu as vu que tu avais du code PHP dans ta page HTML?
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

oui, j'ai fait des requete pour que quand le bouton Suivant est appuyer, il charge une nouvelle video et quand le bouton Precedent est appuyer, il charge une nouvelle video
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
commence pas un code plus simple, et, quand il fonctionne, ajoute des éléments.
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553
Bonjour,

Tu ne peux pas mettre de PHP dans ton code JS ...

Le php est un code qui s'execute côté SERVEUR alors que le JS est un code qui s'execute du côté client ( dans le navigateur internet )

Donc deux possibilités :
Soit tu places tes boutons ( pour changer d'épisode ) dans une balise FORM et tu fais un SUBMIT pour pouvoir récupérer les données en PHP dans ta page ( ce qui implique un rechargement de la page à chaque fois que tu cliques sur un bouton )

Soit, tu utilises de l' AJAX pour pouvoir faire le "lien" entre le Javascript et le code PHP.
( là, ça sera sans avoir à recharger la page à chaque clic )

Et pour finir ... il semble que tu n'aiens pas mis de balise <video> dans ta page...
Sans ça.. rien ne s'affichera !



non je n'ai pas mis de la balise vidéo car les balises sont dans la base de donnes.
je vais plutôt utiliser la possibilité avec SUBMIT car ce n'est pas dérageant que la page se recharge
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553
Plusieurs soucis dans ton code...

Pourquoi écrire trois fois la même requête ?
Ne rien placer ( code html, js, css ) en dehors des balises <head></head> et <body></body>
Placer le maximum de code php AVANT le code html
Il faut que tu envoies, en POST, le numéro de la vidéo à afficher

En gros, un truc du genre
<?php

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd :
require_once('../../configepi.php');

//récupération Propre des variables AVANT de les utiliser
$nb = !empty($_POST['numero']) ?  $_POST['numero'] : 1;

if(isset($_POST['subP'])){
    $np--;
    sleep(5);
}

if(isset($_POST['subS'])){
    $np++;
    sleep(5);
}

//préparation de la requête et des variables
 $sql = "SELECT title, lien FROM `OnePiece` WHERE episode=:np ";
 $datas = array(':np'=>$np);

//Execution de la requete
try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute($datas) ;
  
  $res=$req->fetch();
  $titleR = $res['title'];
  $linkR = $res['lien'];
  
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <?php include('../lm1serie.php');  // je ne sais pas ce qu'il y a dans ce script... pas sur qu'il ai sa place ici ! ?>
</head>
<body style="background-color: #373939;">
  <?php 
  include('../et1serie.php');
  ?>
  <div class="vide">
      <div>
      <form action="https://streawer.000webhostapp.com/serie/OnePiece/OnePiece.php" method="POST">
          <input type="hidden" value="<?php echo $np;?>" name="numero">
          <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
          <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
      </form>
          <?php
              echo $titleR;
              echo $linkR;
          ?>
      </div>
  </div>
  <?php include('../../footer.php'); ?>  
</body>
</html>


Pour tes prochains codes, je t'invite à lire ( et à appliqer) les conseils donnés ici :
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

et là : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

>
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021

je les teste en ligne et en local et cela ne fonctionne pas, je ne sais pas si j'ai fait une erreur mais voici le code au cas ou j'en ai fait une :

<?php
//lancer la session
//require('../../ses.php');

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd :
require_once('../../configepi.php');

//récupération Propre des variables AVANT de les utiliser
$np = !empty($_POST['numero']) ?  $_POST['numero'] : 1;

// definir la variable
$np = 1;

if(isset($_POST['subP'])){
    $np--;
    sleep(5);
}

if(isset($_POST['subS'])){
    $np++;
    sleep(5);
}

//préparation de la requête et des variables
 $sql = "SELECT title, lien FROM `OnePiece` WHERE episode=:np ";
 $datas = array(':np'=>$np);

//Execution de la requete
try{
  $requete = $conn -> prepare($sql) ;
  $requete->execute($datas) ;
  
  $res=$requete->fetch();
  $titleR = $res['title'];
  $linkR = $res['lien'];
  
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <?php include('../lm1serie.php');  // je ne sais pas ce qu'il y a dans ce script... pas sur qu'il ai sa place ici ! ?>
</head>
<body style="background-color: #373939;">
  <?php 
  include('../et1serie.php');
  ?>
  <h1>One Piece VF</h1>
  <div class="vide">
      <div>
      <form action="https://streawer.000webhostapp.com/serie/OnePiece/OnePiece.php" method="POST">
          <input type="hidden" value="<?php echo $np;?>" name="numero">
          <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
          <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
      </form>
          <?php
              echo $titleR;
              echo $linkR;
          ?>
      </div>
  </div>
  <?php include('../../footer.php'); ?>  
</body>
</html>
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553 > firpic
Je ne me souviens pas avoir mis la ligne 17.
>
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021

voila c'est pour ca j'ai du oublie de le supprimer. Cela fonctionne a merveille merci ;)

Je vous remercie de votre contribution, pour moi la question est résolu, j'espère que ca pourra aider d'autre personne.
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553 > firpic
Il te reste à gérer le fait que ta variable NP ne peut pas être inférieure à 1.
Je te laisse faire
>
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021

Oui, je le de suite
J'ai oublier de preciser que j'ai un bouton suivant quie ajout 1 a la variale $np pour changr d'episode et un autre bouton qui enleve 1 a la variable
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
peut-être fetch() au lieu de fetchall()?
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553 > firpic
C'est pour ça que je t'ai indiqué qu'il fallait savoir comment manipuler un tableau en PHP..
echo $truc['cle'] ;
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
pourquoi pas
SELECT title, lien FROM `OnePiece` WHERE episode=$np 
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 >
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

$req = $conn->prepare("SELECT title, lien FROM `OnePiece` WHERE episode=$np ");
$req->execute();
$res=$req->fetch();
$titleR = $res['title'];
$linkR = $res['lien'];
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

Je vous remercie infiniment, grâce a vous je peux enfin afficher la vidéo sans problème. Maintenant je n'attaque pour changer de vidéo avec les bouton Suivant et Précédant.
Voila maintenant que grâce a vous je peux afficher une vidéo, j'ai créer 2 input(SUBMIT), j'ai regarder des tuto sur internet pour faire que quand l'input est clique cela exécute du code mais voila, quand je clique sur un bouton il me redirige vers une autre page alors que je ne veux pas
page avec:
https://streawer.000webhostapp.com/serie/OnePiece/OnePiece.php

et voici ce qui me met dans l(url):
https://streawer.000webhostapp.com/serie/OnePiece/post?subS=Suivant
.

je ne comprendras pourquoi il me redirige alors que sur le tuto, l'input ne redirige pas mais exécute du code.

voici le code de mes input et du code a exécuter :
if(isset($_POST['subP'])){
    $np++;
    sleep(5);
    $req = $conn->prepare("SELECT title, lien FROM `OnePiece` WHERE episode=$np ");
    $req->execute();
    $res=$req->fetch();
    $titleR = $res['title'];
    $linkR = $res['lien'];
}
if(isset($_POST['subP'])){
    $np--;
    sleep(5);
    $req = $conn->prepare("SELECT title, lien FROM `OnePiece` WHERE episode=$np ");
    $req->execute();
    $res=$req->fetch();
    $titleR = $res['title'];
    $linkR = $res['lien'];
}
?>
    <div class="vide">
        <div>
        <form action="post">
            <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
            <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
        </form>
            <?php
                    echo $titleR;
                    echo $linkR;
            ?>
        </div>
    </div>


Je vous remercie encore pour votre aide et pour le temps que vous mettiez a m'aidé.
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

le bouton precedant est name=subP et suivant est name=subS.

et Voici mon code
<!DOCTYPE html>
<html lang="en">
<head>
    <?php include('../lm1serie.php');?>
</head>
<body style="background-color: #373939;">
<?php 
include('../et1serie.php');
require_once('../../configepi.php');
$np = 1;
$req = $conn->prepare("SELECT title, lien FROM `OnePiece` WHERE episode=$np ");
$req->execute();
$res=$req->fetch();
$titleR = $res['title'];
$linkR = $res['lien'];
//code php btn
if(isset($_POST['subP'])){
    $np++;
    sleep(5);
    $req = $conn->prepare("SELECT title, lien FROM `OnePiece` WHERE episode=$np ");
    $req->execute();
    $res=$req->fetch();
    $titleR = $res['title'];
    $linkR = $res['lien'];
}
if(isset($_POST['subP'])){
    $np--;
    sleep(5);
    $req = $conn->prepare("SELECT title, lien FROM `OnePiece` WHERE episode=$np ");
    $req->execute();
    $res=$req->fetch();
    $titleR = $res['title'];
    $linkR = $res['lien'];
}
?>
    <div class="vide">
        <div>
        <form action="https://streawer.000webhostapp.com/serie/OnePiece/OnePiece.php" method="POST">
            <input type="submit" value="Précedent" name="subP" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
            <input type="submit" value="Suivant" name="subS" class="sub" style="font-size: 25px; background-color: #09816c; color: #4DB89A;">
        </form>
            <?php
                echo $titleR;
                echo $linkR;
            ?>
        </div>
    </div>
    
</body>
<?php include('../../footer.php'); ?>
</html>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
comment le php peut-il déterminer quel bouton a été cliqué?
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

j'ai regarde un tuto, j'ai refais ce qu'il on fait mais cela ne fonctionne. Si vous savez un bouton avec du code qui s'exécute pouvez me dire comment on fait SVP.
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > firpic
penses-tu que tes lignes 17 et 26 sont correctes?
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

non vu que tu me pose la question.