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

Résolu
firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   -  
firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
rien ne fonctionne?
1
firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   1
 
oui rien ne fonctionne
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention   1
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
 
ne vois-tu pas l'erreur el ligne 9?
0
FirPic > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je viens de comprendre, j’ai oublié de mettre un ! Devant empty
0
firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   1 > FirPic
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
 
as-tu lu et compris les messages d'erreur?
0
firpic Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
Suite
https://forums.commentcamarche.net/forum/affich-37267341-requetes-qui-ne-fonctionne-pas
0