2015-07-18 3 views
0

Я пытаюсь получить информацию для обновления в моей таблице. Я потратил часы и продолжаю заниматься кругами. Я думаю, что проблема заключается в моей секции запроса в конце кода. Любая помощь будет оценена по достоинству. Благодарю.Обновление не работает для mysqli

<?php require "connect.php"; ?> 

    <?php 
    session_start(); 
    if(isset($_SESSION["ID"])){ 
    }else{ 
     header('Location:login.php'); 
    } 
    ?> 

    <?php 

     $User = $_SESSION["ID"]; 
     $result = $con->query("select * from BD where ID='$User'"); 
     $row = $result->fetch_array(MYSQLI_BOTH); 

     $_SESSION["FirstName"] = $row['FirstName']; 
     $_SESSION["LastName"] = $row['LastName']; 
     $_SESSION["Email"] = $row['Email']; 
     $_SESSION["UserName"] = $row['UserName']; 
     $_SESSION["Password"] = $row['Password']; 
    ?> 

    <?php 
     if(isset($_Post['Update'])){ 
      $UpdateFName = $_Post['FirstName']; 
      $UpdateLName = $_Post['LastName']; 
      $UpdateEmail = $_Post['Email']; 
      $UpdateUName = $_Post['UserName']; 
      $UpdatePassword = $_Post['Password']; 


      $sql = $con->query("UPDATE BD SET FirstName = '{$UpdateFName}', LastName = '{$UpdateLName}', Email = '{$UpdateEmail}', UserName = '{$UpdateUName}', Password = '{$UpdatePassword}' where ID= $User"); 


     header('Location: update.php'); 

     } 

    ?> 
+1

его '$ _POST' не $ _POST –

+0

Ваш код (и код от всех ответов) уязвимы для SQL-инъекций. Вы должны исправить эту критическую проблему безопасности как можно быстрее. – ByteHamster

ответ

4

Вы использовали метод почты неправильно. Вы должны использовать метод post, например $ _POST [''], а не $ _Post [''].

if(isset($_POST['Update'])){ 
    $UpdateFName = $_POST['FirstName']; 
    $UpdateLName = $_POST['LastName']; 
    $UpdateEmail = $_POST['Email']; 
    $UpdateUName = $_POST['UserName']; 
    $UpdatePassword = $_POST['Password']; 

    $sql = $con->query(" 
       UPDATE BD SET 
        FirstName = '$UpdateFName', 
        LastName = '$UpdateLName', 
        Email = '$UpdateEmail', 
        UserName = '$UpdateUName', 
        Password = '$UpdatePassword' 
       WHERE 
        ID= '$User'" 
       ); 
    header('Location: update.php'); 

} 
+1

Ничего себе. Это была проблема. Спасибо огромное! Ты спас меня гораздо больше времени. Я очень ценю это. –

+0

Хотя это отвечает на вопрос, предупреждение против SQL-инъекции не повредит. – spenibus

0

Прежде всего, вы должны включить свою ошибку, а во-вторых, вам не нужно использовать фигурные скобки для запроса, попробуйте без них.

+0

Вы правы. Я прошу прощения. Я не получал ошибку. Дело в том, что моя таблица не обновлялась. Оказалось, что проблема заключалась в использовании $ _Post вместо $ _POST. Спасибо за подсказку относительно фигурных скобок. –

+0

Рад видеть, что я мог бы помочь, благодаря тебе тоже бро! –

1
<?php 
    if (isset($_POST['Update'])) { 
     $UpdateFName = isset($_POST['FirstName']) ? $_POST['FirstName'] : ''; 
     $UpdateLName = isset($_POST['LastName']) ? $_POST['LastName'] : ''; 
     $UpdateEmail = isset($_POST['Email'])  ? $_POST['Email']  : ''; 
     $UpdateUName = isset($_POST['UserName']) ? $_POST['UserName'] : ''; 
     $UpdatePassword = isset($_POST['Password']) ? $_POST['Password'] : ''; 

     $sql = $con->query("UPDATE BD SET 
           `FirstName` = '$UpdateFName', 
           `LastName` = '$UpdateLName', 
           `Email`  = '$UpdateEmail', 
           `UserName` = '$UpdateUName', 
           `Password` = '$UpdatePassword' 
          WHERE 
           `ID`  = $User" 
       ); 
     header('Location: update.php'); 
    } 
+0

Является ли этот код лучше, чем то, что я представил? Я так многому учусь из этого формата. Благодаря! –

Смежные вопросы