Requetes qui ne fonctionne pas

Signaler
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
-
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
-
Bonjour,
J'ai fais un programme pour vérifier si la table saisie existe, si oui, il vérifie que le numéro de l'épisode saisie existe, si non, il l'ajoute. Mais mon programme ne fonctionne pas.


voici mon code :
<?php
// Initialiser la session
session_start();
// Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
if(!isset($_SESSION["username"])){
// verifier si l'utilisateur peut avoir acceder a la page
    if($_SESSION['username'] === 'admin'){
    }else{
        header("Location: https://streawer.000webhostapp.com/");
        exit();
    }
}
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

$message = "";
$DBVerif = "";
// Récupération PROPRE des variables AVANT de les utiliser
$DB = !empty( $_POST['DBchoo']) ?  $_POST['DBchoo'] : NULL;
$nameEpi = !empty( $_POST['nameEpi']) ?  $_POST['nameEpi'] : NULL; 
$numEpi = !empty( $_POST['numEpi']) ?  $_POST['numEpi'] : NULL;
$linkEpi = !empty( $_POST['linkEpi']) ?  $_POST['linkEpi'] : NULL;

// Informations d'identification
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'id16626384_admin1');
define('DB_PASSWORD', 'ovih}=uK5wC?Nuq7');
define('DB_NAME', 'id16626384_serie');
 
// Connexion � la base de donn�es MySQL 
$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 
// V�rifier la connexion
if($conn === false){
    die("ERREUR : Impossible de se connecter. " . mysqli_connect_error());
}

if(isset($_POST['DB'])){
    $DBVerif_query = mysqli_query($conn, "SHOW TABLES LIKE '$DB' ");
    if(mysqli_num_rows($DBVerif_query) == 1){
        $DBVerif == TRUE;
        if($DBVerif == TRUE){
            $Epi_query = mysqli_query($conn, "SELECT `epsiode` FROM `$DB` WHERE `$numEpi`");
            if(empty($Epi_query)){
                $add_query = mysqli_query($conn, "INSERT into `$DB` (epsiode, title, lien)VALUES('$numEpi', '$nameEpi', '$linkEpi') ");
                $message = "L'episode a été ajouté";
            }else{
                $message = "L'episode existe deja";
            }
        }else{
            $message = "La base de donnée sélectionné n'existe pas";
        }
    }else{
        $DBVerif == FALSE;
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
?>

<!DOCTYPE html>
<html>
  <head>
    <meta name="googlebot" content="noindex">
      <link rel="icon" type="images/png" sizes="512x512" href="android-chrome-512x512.png">
      <link rel="stylesheet" href="serie/allstyle.css">
      <link rel="stylesheet" href="style.css">
      <link rel="stylesheet" href="style1.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: #444444;">
    <!-- En-tête de la page-->
    <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>
    <form class="box" action="" method="post"> <h1>Nouvelle episode</h1>
        <input type="text" class="box-input" name="DBchoo" placeholder="Nom de la BD" required>
        <input type="text" class="box-input" name="nameEpi" placeholder="Nom de l episode" required>
        <input type="text" class="box-input" name="numEpi" placeholder="Numero de l epidode" required>
        <input type="text" class="box-input" name="linkEpi" placeholder="Lien de L episode" required>
        <input type="submit" name="submit" value="Ajouter" class="box-button">
        <?php if (!empty($message)){ echo '<p class="errorMessage">'.$message.'</p>'; } ?>
        <input type="hidden" value="<?php echo $message;?>" name="numero" class="box-input">
    </form>

    <script>
    $(document).keydown(function(e){
      if(e.which === 123){
         return false;
      }
    });
    </script>
  </body>
<?php include('footer.php'); ?>
</html>

3 réponses

Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
bonjour,
quel est le but des lignes 43 et 44?
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1
La ligne 43/44 vérifie si la table excite ou non
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 >
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021

quelle table? où assignes-tu une valeur à la variable?
Messages postés
3950
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
20 juillet 2021
1 419 >
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021

Yo.
Cette condition ne sert à rien, ton code entre forcément ici avec la condition de la ligne 42. Condition que tu as déjà fermée avec un ELSE identique ligne 55.
Vire les lignes 43, 44, 52 à 54. Ligne 56 aussi, si tu n'as pas prévu d'utiliser ce bool dans ton code. Sert à rien de mettre un false que tu n'utiliseras jamais.

Je précise également qu'une table n'excite pas. Même la plus jolie des tables. Mais tu as le droit de vérifier si elle existe.
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
"ne fonctionne pas": comment se comporte-t-il?
que contient $_POST?
qu'attends-tu comme résultat?
qu'affiche le programme?
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1 >
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

L'input es la balise et DB est son nom, il se trouve a la ligne 89.
De ce que j'ai comprsi $_POST contient tous ce qu'il y a dans la balise <form>


et voici le nouveau code :
<?php
// Initialiser la session
session_start();
// Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
if(!isset($_SESSION["username"])){
// verifier si l'utilisateur peut avoir acceder a la page
    if($_SESSION['username'] === 'admin'){
    }else{
        header("Location: https://streawer.000webhostapp.com/");
        exit();
    }
}
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

$message = "";
$DBVerif = "";
// Récupération PROPRE des variables AVANT de les utiliser
$DB = !empty( $_POST['DBchoo']) ?  $_POST['DBchoo'] : NULL;
$nameEpi = !empty( $_POST['nameEpi']) ?  $_POST['nameEpi'] : NULL; 
$numEpi = !empty( $_POST['numEpi']) ?  $_POST['numEpi'] : NULL;
$linkEpi = !empty( $_POST['linkEpi']) ?  $_POST['linkEpi'] : NULL;

// Informations d'identification
define('DB_SERVER', .....');
define('DB_USERNAME', '......');
define('DB_PASSWORD', '.....');
define('DB_NAME', '......');
 
// Connexion � la base de donn�es MySQL 
$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 
// V�rifier la connexion
if($conn === false){
    die("ERREUR : Impossible de se connecter. " . mysqli_connect_error());
}

if(isset($_POST['DB'])){
    $DBVerif_query = mysqli_query($conn, "SHOW TABLES LIKE '$DB' ");
    echo $_POST;
    if(mysqli_num_rows($DBVerif_query) == 1){
        $Epi_query = mysqli_query($conn, "SELECT `epsiode` FROM `$DB` WHERE `$numEpi`");
        echo $Epi_query;
        if(empty($Epi_query)){
            $add_query = mysqli_query($conn, "INSERT into `$DB` (epsiode, title, lien)VALUES('$numEpi', '$nameEpi', '$linkEpi') ");
            $message = "L'episode a été ajouté";
            echo $add_query;
        }else{
            echo $add_query;
            $message = "L'episode existe deja";
        }
    }else{
        echo $Epi_query;
        $DBVerif == FALSE;
        $message = "La base de donnée sélectionné n'existe pas";
    }
}else{
    echo $_POST;
}

//juste le temps des tests, pour voir si ton formulaire s'envoie bien
echo "<br> ---> POST :";
var_dump($_POST);
?>

<!DOCTYPE html>
<html>
  <head>
    <meta name="googlebot" content="noindex">
      <link rel="icon" type="images/png" sizes="512x512" href="android-chrome-512x512.png">
      <link rel="stylesheet" href="serie/allstyle.css">
      <link rel="stylesheet" href="style.css">
      <link rel="stylesheet" href="style1.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: #444444;">
    <!-- En-tête de la page-->
    <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>
    <form class="box" action="https://streawer.000webhostapp.com/NewEpi2.php" method="post"> 
        <h1>Nouvelle episode</h1>
        <input type="text" class="box-input" name="DBchoo" placeholder="Nom de la BD" required>
        <input type="text" class="box-input" name="nameEpi" placeholder="Nom de l episode" required>
        <input type="number" class="box-input" name="numEpi" placeholder="Numero de l epidode" required>
        <input type="text" class="box-input" name="linkEpi" placeholder="Lien de L episode" required>
        <input type="submit" name="submit" value="Ajouter" class="box-button">
        <?php if (!empty($message)){ echo '<p class="errorMessage">'.$message.'</p>'; } ?>
        <input type="hidden" value="<?php echo $message;?>" name="numero" class="box-input">
    </form>

    <script>
    $(document).keydown(function(e){
      if(e.which === 123){
         return false;
      }
    });
    </script>
  </body>
<?php include('footer.php'); ?>
</html>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 >
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021

n'hésite pas à ajouter des instructions echo, par exemple dans le else correspondant au if de la ligne 40.

"qu'affiche le programme": quand tu appelles cette page, quelle réponse reçois-tu?
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1 >
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

il affiche avant d'envoyer le formulaire:
 ---> POST :array(0) { } 

et après l'envoie :
 ---> POST :array(6) { ["DBchoo"]=> string(6) "MyHero" ["nameEpi"]=> string(4) "test" ["numEpi"]=> string(5) "49649" ["linkEpi"]=> string(4) "test" ["submit"]=> string(7) "Ajouter" ["numero"]=> string(0) "" } 
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877 >
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021

comment peux-tu différencier si il passe en ligne 42 ou en ligne 60?
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1 >
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021

je me suis trompe dans le début de la condition, a la ligne 40, ce n'est pas
$_POST['DB']; 
mais
$_POST['submit']; 
, donc c'est pour cela que ca ne fonctionnait pas.
Puis voici les nouvelle erreur apparue :
Notice: Array to string conversion in /storage/ssd3/384/16626384/public_html/NewEpi2.php on line 41
Array
Notice: Array to string conversion in /storage/ssd3/384/16626384/public_html/NewEpi2.php on line 43
Array


<?php
// Initialiser la session
session_start();
// Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
if(!isset($_SESSION["username"])){
// verifier si l'utilisateur peut avoir acceder a la page
    if($_SESSION['username'] === 'admin'){
    }else{
        header("Location: https://streawer.000webhostapp.com/");
        exit();
    }
}
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

$message = "";
$DBVerif = "";
// Récupération PROPRE des variables AVANT de les utiliser
$DB = !empty( $_POST['DBchoo']) ?  $_POST['DBchoo'] : NULL;
$nameEpi = !empty( $_POST['nameEpi']) ?  $_POST['nameEpi'] : NULL; 
$numEpi = !empty( $_POST['numEpi']) ?  $_POST['numEpi'] : NULL;
$linkEpi = !empty( $_POST['linkEpi']) ?  $_POST['linkEpi'] : NULL;

// Informations d'identification
define('DB_SERVER', '.....');
define('DB_USERNAME', '......');
define('DB_PASSWORD', '.....');
define('DB_NAME', '......');
 
// Connexion � la base de donn�es MySQL 
$conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 
// V�rifier la connexion
if($conn === false){
    die("ERREUR : Impossible de se connecter. " . mysqli_connect_error());
}

if(isset($_POST['submit'])){
    $DBVerif_query = mysqli_query($conn, "SHOW TABLES LIKE '$DB' ");
    echo $_POST;
    if(mysqli_num_rows($DBVerif_query) == 1){
        $Epi_query = mysqli_query($conn, "SELECT `epsiode` FROM `$DB` WHERE `$numEpi`");
        echo $Epi_query;
        if(empty($Epi_query)){
            $add_query = mysqli_query($conn, "INSERT into `$DB` (epsiode, title, lien)VALUES('$numEpi', '$nameEpi', '$linkEpi') ");
            $message = "L'episode a été ajouté";
            echo $add_query;
        }else{
            echo $add_query;
            $message = "L'episode existe deja";
        }
    }else{
        echo $Epi_query;
        $DBVerif == FALSE;
        $message = "La base de donnée sélectionné n'existe pas";
    }
}

//juste le temps des tests, pour voir si ton formulaire s'envoie bien
echo "<br> ---> POST :";
var_dump($_POST);
?>

<!DOCTYPE html>
<html>
  <head>
    <meta name="googlebot" content="noindex">
      <link rel="icon" type="images/png" sizes="512x512" href="android-chrome-512x512.png">
      <link rel="stylesheet" href="serie/allstyle.css">
      <link rel="stylesheet" href="style.css">
      <link rel="stylesheet" href="style1.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: #444444;">
    <!-- En-tête de la page-->
    <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>
    <form class="box" action="https://streawer.000webhostapp.com/NewEpi2.php" method="post"> 
        <h1>Nouvelle episode</h1>
        <input type="text" class="box-input" name="DBchoo" placeholder="Nom de la BD" required>
        <input type="text" class="box-input" name="nameEpi" placeholder="Nom de l episode" required>
        <input type="number" class="box-input" name="numEpi" placeholder="Numero de l epidode" required>
        <input type="text" class="box-input" name="linkEpi" placeholder="Lien de L episode" required>
        <input type="submit" name="submit" value="Ajouter" class="box-button">
        <?php if (!empty($message)){ echo '<p class="errorMessage">'.$message.'</p>'; } ?>
        <input type="hidden" value="<?php echo $message;?>" name="numero" class="box-input">
    </form>

    <script>
    $(document).keydown(function(e){
      if(e.which === 123){
         return false;
      }
    });
    </script>
  </body>
<?php include('footer.php'); ?>
</html>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
pourrais-tu éviter d'ouvrir deux discussions sur le même sujet?
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1
d'accord