Envoyer des donner et vérifier si elle excite déjà

Résolu/Fermé
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 - 22 juin 2021 à 19:46
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 - 5 juil. 2021 à 22:10
Bonjour,
J'ai conçu cette page web pour envoyer des donné dans un table, j'ai fais une fonction qui teste si le table saisie excite, une autre fonction qui quand a elle vérifié sir le numéro saisie est déjà dans la table et que si le numéro n'est pas sélectionne, elle exécute la fonctionne pour ajouter les donne dans cette table.
J'ai aussi fais un code qui dois echo le code du formulaire le nombre de fois sélectionne dans l'input a cette effet mais cela ne fonctionne pas.

je vous met mon code :

<?php
require('ses.php');
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

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

require('configepi.php');
// fonction pour verifier si le table existe
function DBVerif($DB, $DBVerif){
    $DBVerif_query = mysqli_query($conn, "SHOW TABLES LIKE `$DB`")or die(mysql_error());
    if(mysql_num_rows($DBVerif) == 1){
        $DBVerif == TRUE;
    }else{
        $DBVerif == FALSE;
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
//fonction pour verif si un episode exite ou pas
function VerifEpi($DB, $nameEpi){
    DBVerif($DB,$DBVerif);
    if($DBVerif == TRUE){
        $Epi_query = mysqli_query($conn, "SELECT `epsiode` FROM `$DB` WHERE `$numEpi`");
        if(empty($Epi_query)){
            addEpi($DB, $nameEpi, $numEpi, $linkEpi);
        }else{
            $message = "L'episode existe deja";
        }
    }else{
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
//fonction pour ajouter un episode
function addEpi($DB,$nameEpi, $numEpi, $linkEpi){
    $add_query = mysqli_query($conn, "INSERT into `$DB` (epsiode, title, lien)VALUES('$numEpi', '$nameEpi', '$linkEpi') ");
    $message = "L'episode a été ajouté";
}

//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>
<?php
    $StNb = 1;
    while($StNb==$NbAj){
?>
     <form class="box" action="" method="post">
<?php     echo' <h1>Nouvelle episode</h1>
                <input type="text" class="box-input" name="DB" 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="number" name="nbaj" value="1" class="box-num" style="margin: 20px;font-size: 20px;text-align: center;border: 10px;background-color: #444444;color: #4DB89A;">
</form>
<?php } ?>

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

4 réponses

yg_be Messages postés 23408 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024 Ambassadeur 1 557
22 juin 2021 à 20:23
bonjour,
rien ne fonctionne?
1
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1
22 juin 2021 à 21:41
oui rien ne fonctionne
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
22 juin 2021 à 20:51
Bonjour,
function DBVerif($DB, $DBVerif){
    $DBVerif_query = mysqli_query($conn, "SHOW 

Tu cherches à utiliser, dans tes fonctions, la variable $conn ... mais tu ne la passes pas en paramètre de ta fonction.. ( à moins que ça ne soit la variable $DB ... auquel cas tu n'as utilisé la bonne variable dans ton code .. )

De plus.. tu n'appelles pas ta fonction VerifEpi ... donc forcément.. elle ne risque pas de marcher ...
1
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1
Modifié le 22 juin 2021 à 21:53
J'ai changer le code, la page s'ouvre mais affiche ces erreurs:

Notice: Undefined index: nbaj in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 9

Notice: Undefined variable: DBVerif in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 46

Warning: mysqli_query() expects parameter 1 to be mysqli, object given in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 18

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 1


et voici le nouveau code:
<?php
require('ses.php');
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

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

require('configepi.php');
// fonction pour verifier si le table existe
function DBVerif($conn, $DB, $DBVerif){
    $DBVerif_query = mysqli_query($conn, "SHOW TABLES LIKE '$DB'")or die(mysqli_error());
    if(mysqli_num_rows($DBVerif) == 1){
        $DBVerif == TRUE;
    }else{
        $DBVerif == FALSE;
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
//fonction pour verif si un episode exite ou pas
function VerifEpi($conn, $DBVerif, $DB, $nameEpi, $numEpi, $linkEpi){
    DBVerif($conn, $DB,$DBVerif);
    if($DBVerif == TRUE){
        $Epi_query = mysqli_query($conn, "SELECT `epsiode` FROM `$DB` WHERE `$numEpi`");
        if(empty($Epi_query)){
            addEpi($DB, $nameEpi, $numEpi, $linkEpi);
        }else{
            $message = "L'episode existe deja";
        }
    }else{
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
//fonction pour ajouter un episode
function addEpi($conn, $DB,$nameEpi, $numEpi, $linkEpi){
    $add_query = mysqli_query($conn, "INSERT into `$DB` (epsiode, title, lien)VALUES('$numEpi', '$nameEpi', '$linkEpi') ");
    $message = "L'episode a été ajouté";
}

VerifEpi($conn, $DBVerif, $DB, $nameEpi, $numEpi, $linkEpi);
//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>
<?php
    $StNb = 1;
    while($StNb==$NbAj){
?>
     <form class="box" action="" method="post">
<?php     echo' <h1>Nouvelle episode</h1>
                <input type="text" class="box-input" name="DB" 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="number" name="nbaj" value="1" class="box-num" style="margin: 20px;font-size: 20px;text-align: center;border: 10px;background-color: #444444;color: #4DB89A;">
</form>
<?php } ?>

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


Dans le code, mysql_error() et mysql_num_rows() sont ouligne en rouge, je ne sais pas pourquoi
0
yg_be Messages postés 23408 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024 1 557 > firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022
22 juin 2021 à 22:03
ne vois-tu pas l'erreur el ligne 9?
0
FirPic > yg_be Messages postés 23408 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024
23 juin 2021 à 07:38
Je viens de comprendre, j’ai oublié de mettre un ! Devant empty
0
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1 > FirPic
23 juin 2021 à 12:30
et voici les erreur qui sont affciher maintenant:

Notice: Undefined variable: DBVerif in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 46

Warning: mysqli_query() expects parameter 1 to be mysqli, object given in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 18

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /storage/ssd3/384/16626384/public_html/NewEpi1.php on line 18
0
yg_be Messages postés 23408 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024 1 557 > firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022
23 juin 2021 à 12:36
as-tu lu et compris les messages d'erreur?
0
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1
23 juin 2021 à 15:41
le fichier configepi.php est le fichier pour se connecter a la DB. La variable DBVerif sert a vérifier si une table existe ou non.

<?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 = "";
// Récupération PROPRE des variables AVANT de les utiliser
$NbAj = !empty($_POST['nbaj']) ? $_POST['nbaj'] : NULL;
$DB = !empty( $_POST['DB']) ?  $_POST['DB'] : NULL;
$nameEpi = !empty( $_POST['nameEpi']) ?  $_POST['nameEpi'] : NULL; 
$numEpi = !empty( $_POST['numEpi']) ?  $_POST['numEpi'] : NULL;
$linkEpi = !empty( $_POST['linkEpi']) ?  $_POST['linkEpi'] : NULL;

require('configepi.php');
// fonction pour verifier si le table existe
function DBVerif($conn, $DB, $DBVerif, $message){
    $DBVerif_query = mysqli_query($conn, "SHOW TABLES LIKE '$DB'")or die(mysqli_error());
    if(mysqli_num_rows($DBVerif_query) == 1){
        $DBVerif == TRUE;
    }else{
        $DBVerif == FALSE;
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
//fonction pour verif si un episode exite ou pas
function VerifEpi($conn, $DBVerif, $DB, $nameEpi, $numEpi, $linkEpi, $message){
    DBVerif($conn, $DB,$DBVerif, $message);
    if($DBVerif == TRUE){
        $Epi_query = mysqli_query($conn, "SELECT `epsiode` FROM `$DB` WHERE `$numEpi`");
        if(empty($Epi_query)){
            addEpi($conn, $DB,$nameEpi, $numEpi, $linkEpi, $message);
        }else{
            $message = "L'episode existe deja";
        }
    }else{
        $message = "La base de donnée sélectionné n'existe pas";
    }
}
//fonction pour ajouter un episode
function addEpi($conn, $DB,$nameEpi, $numEpi, $linkEpi, $message){
    $add_query = mysqli_query($conn, "INSERT into `$DB` (epsiode, title, lien)VALUES('$numEpi', '$nameEpi', '$linkEpi') ");
    $message = "L'episode a été ajouté";
}

VerifEpi($conn, $DBVerif, $DB, $nameEpi, $numEpi, $linkEpi, $message);
//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>
<?php
    $StNb = 1;
    while($StNb==$NbAj){
?>
     <form class="box" action="" method="post">
<?php     echo' <h1>Nouvelle episode</h1>
                <input type="text" class="box-input" name="DB" 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="number" name="nbaj" value="1" class="box-num" style="margin: 20px;font-size: 20px;text-align: center;border: 10px;background-color: #444444;color: #4DB89A;">
</form>
<?php } ?>

    <script>
    $(document).keydown(function(e){
      if(e.which === 123){
         return false;
      }
    });
    </script>
  </body>
<?php include('footer.php'); ?>
</html>
1
firpic Messages postés 90 Date d'inscription jeudi 3 juin 2021 Statut Membre Dernière intervention 20 décembre 2022 1
5 juil. 2021 à 22:10
Suite
https://forums.commentcamarche.net/forum/affich-37267341-requetes-qui-ne-fonctionne-pas
0