Проблема PHP и SQL - PullRequest
       1

Проблема PHP и SQL

1 голос
/ 26 февраля 2011

У меня проблема с моей функцией db_modif();. Каждый раз, если значение верное и существует, сообщение является первым (условие if).

echo "Il n'y a aucun compte au nom de: ".$username." au site: ".$site." dans la base de données";

Итак, в моей базе данных нет изменений Вот мой код формы манипуляции:

<?php
  $username = $_POST["user_search"];
  $site = $_POST["adr_search"];
  $fonction = $_POST["fonction"];
  $modif = $_POST["modif_value"];

  $prep ="";

  if(!$username)
    echo 'Nom d\'utilisateur manquant..';
  elseif(!$site)
    echo 'Site manquante..';
  else{
    require("db_action.php");   //Require in the database connection.
    $bd = db_open();                // Open DATABASE

    if($fonction == "usernameOp")
      $prep = "username";
    if($fonction == "adresseOp")
      $prep = "adresse";
    if($fonction == "passwdOp")
      $prep = "password";
    if($fonction == "siteOp")
      $prep = "siteWeb";
    if($fonction == "fonctionOp")
      $prep = "fonction";

    db_modif($prep, $username, $site, $modif);
    db_close($bd);
  }//ELSE

А из функции db_modif();:

<code>function db_modif($prep, $username, $site, $modif){

  error_reporting(-1);  //Activer le rapport de toutes les genres d'erreurs

  $querycon = "UPDATE info_compte SET $prep = '$modif' WHERE username = '$username' AND siteWeb = '$site'";
  if($response = mysql_query($querycon) or trigger_error(mysql_error())){
    echo "<pre>";
    echo "Il n'y a aucun compte au nom de: <b>".$username."</b> au site: <b>".$site."</b> dans la base de données";
    echo "
"; } еще { mysql_query ($ querycon); echo "
\n";
    echo "Le compte <b>".$username."</b> du site : <b>".$site."</b> a été supprimé avec succès\n";
    echo "
"; } // ELSE } // db_modif

1 Ответ

3 голосов
/ 26 февраля 2011

Измените AND WHERE на AND в этой строке:

$querycon = "UPDATE info_compte SET $prep = '$modif'
             WHERE username = '$username'
             AND WHERE siteWeb = '$site'";

Я бы посоветовал вам использовать mysql_error () для помощи в устранении подобных проблем в будущем.

$response = mysql_query($querycon) or trigger_error(mysql_error());

У вас также может быть уязвимость внедрения SQL, если любая из этих переменных может содержать кавычки. Попробуйте использовать mysql_real_escape_string или PDO с подготовленными выражениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...