System pour changer de video sans changer de page web

Résolu/Fermé
firpic - Modifié le 26 mai 2021 à 14:53
 firpic - 30 mai 2021 à 08:58
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>
A voir également:

5 réponses

yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024 Ambassadeur 1 549
26 mai 2021 à 16:41
bonjour,
as-tu examiné le code source HTML de ta page?
1
Merci de votre.
mais je ne comprend pas ce que vous voulez dire dans examiné le code source HTML
0
yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024 1 549 > firpic
26 mai 2021 à 18:14
ton programme php envoie du code HTML au navigateur.
ce n'est qu'en examinant ce code HTML que tu peux déterminer si le programme php fait ce que tu souhaites.
tu peux demander au navigateur de t'afficher le code source de la page, souvent en cliquant avec le bouton de droite dans la page.
0
firpic > yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024
26 mai 2021 à 18:26
http://streawer.000webhostapp.com/img/Capture.PNG
je lui demande e me recuper le titre dans la variable $title et url de l'epiosde dans la variable $ lien avec comme condition que ce soit celui de l'episode choisi dans la colonne epsiode.
et cela ne fonctionne pas, dans le code source ni le titre, ni le lien n'est ecrit dedans.
0
yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024 1 549 > firpic
26 mai 2021 à 18:32
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?
0
firpic > yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024
Modifié le 26 mai 2021 à 18:38
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>
0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694
26 mai 2021 à 21:26
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 !



1
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
0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694
28 mai 2021 à 21:14
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://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

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

1
a la ligne 48, c'est l'entête du site pour toute les page du coup pour quand je modifie, je n'ai qua change dans ce fichier.

Je te remercie ton code fonctionne a merveille.
Je remercie tous ceux qui mon aider
0
Je viens de mettre le code que tu ma donné et le bouton précédant ne fonctionne pas et je ne peux pas aller plus au que l'épisode 2( je te laisse en juge par toi meme :
https://streawer.000webhostapp.com/serie/DemonSlayer/DemonSlayerVF.php
)
0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694 > firpic
29 mai 2021 à 13:29
Petite erreur dans le nom des variables
$nb = !empty($_POST['numero']) ?  $_POST['numero'] : 1;


à changer en
$np = !empty($_POST['numero']) ?  $_POST['numero'] : 1;

0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694 > jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024
29 mai 2021 à 13:30
il te manque aussi un session_start() au début du script.
0
firpic > jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024
29 mai 2021 à 14:43
oui je sais pour le session_start(), je l'avait vu, merci quand même de me le dire
0
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
0
yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024 1 549
26 mai 2021 à 18:15
tu as également oublié de préciser le résultat attendu, le résultat obtenu, et la différence entre les deux.
0
firpic > yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024
Modifié le 27 mai 2021 à 14:54
le résultat obtenu est que le titre et la vidéo change en fonction du nombre d'une variable qui désigne l'epsiode dans la base de données. j'attends que quand on appuie sur Suivant ou Précédant, on ajoute ou retire 1 a la variable $np.
0
yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024 1 549 > firpic
27 mai 2021 à 15:19
ton code source HTML est correct maintenant?
tu pourras alors corriger ton code PHP en ce qui concerne l'extration des données.
0
firpic > yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024
28 mai 2021 à 11:30
J'ai change mon code php, cela fonctionne mais il affiche "Array ([0] => Array ([title] => "et )) "Tableau ([0] => Tableau ([lien] =>", je ne comprend pas pourquoi.
( https://streawer.000webhostapp.com/serie/OnePiece/OnePiece.php)

et voici le nouveau code:
<!DOCTYPE html>
<html lang="en">
<head>
    <?php include('../lm1serie.php');?>
</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 = $conn->prepare("SELECT title FROM `OnePiece` WHERE episode=$np ");
$link = $conn->prepare("SELECT lien FROM `OnePiece` WHERE episode=$np ");
$title->execute();
$link->execute();
$titleR = $title->fetchAll(PDO::FETCH_ASSOC);
$linkR = $link->fetchAll(PDO::FETCH_ASSOC);

?>
    <div class="vide">
        <div>
        <input type="submit" value="Précedent" name="subP">
        <input type="submit" value="Suivant" name="subS">
            <?php
                    print_r($titleR);
                    print_r($linkR);
            ?>
        </div>
    </div>
    
</body>
<?php include('../../footer.php'); ?>
</html>


et la celui pour ce connecter a la DB:
try{
    $conn = new PDO($dnspdo, $user, $pass);
    //On définit le mode d'erreur de PDO sur Exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Connexion réussie';
}
catch(PDOException $e){
    echo "Erreur : " . $e->getMessage();
  }
0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694 > firpic
28 mai 2021 à 11:40
Car tu as mis des print_r
Tu dois les remplacer par des echos des informations que tu veux afficher.

Si tu ne sais pas comment faire, renseigne-toi sur la manipulation des array en php.
0

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

Posez votre question
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é.
0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694
28 mai 2021 à 14:00
Tu as de la réécriture d'URL ? ( Via un htaccess )
Essaye de mettte l'URL voulue dans l'attribut action du form
0
firpic > jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024
Modifié le 28 mai 2021 à 14:30
je ne veut pas que quand je clique sur le bouton je sois redirigée vers une url. J'ai essayer de faire un bouton qui quand on clique dessus ajoute un a une variable et faire une nouvelle requête et rafraichis la page pour changer de vidéo. Comme pour les formulaire sauf que cela fonctionne pas.

et je me suis trompe j'ai POST dans action au lieu de méthode


Je voudrais c'est que quand le input Suivant ou Précédant
<form action="" 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>


soit quand suivant est appuyer on exécute ceci:
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'];
}

soit quand precedant est appuyer on exxecute cela :
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'];
}
0
jordane45 Messages postés 38264 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 octobre 2024 4 694 > firpic
28 mai 2021 à 15:31
Il faut mettre l' url de la page actuelle je ne t'ai jamais dit de mettre une autre url
0
yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024 1 549 > firpic
Modifié le 28 mai 2021 à 16:42
n'hésite pas à montrer ton code complet.
comment le code php fait-il la différence entre "précédent" et "suivant"?
0
firpic > yg_be Messages postés 23303 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 31 octobre 2024
28 mai 2021 à 18:06
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>
0