2016-07-21 3 views
0

У меня есть сайт, на котором пользователи могут войти и зарегистрироваться. Теперь я хочу, чтобы пользователи обновили свой профиль. У меня проблемы с обновлением моей базы данных. Имя моей таблицы - «члены». Ничего не происходит, когда я отправляю форму.Не удается обновить мою базу данных

<?php 

if(isset($_POST["submit"])){ 

$value1 = $_POST['year']; 
$value2 = $_POST['astatus']; 
$value3 = $_POST['address']; 
$value4 = $_POST['phone']; 
$value5 = $_POST['email']; 
$newpass = $_POST['pass']; 
$newpass2 = $_POST['pass2']; 
$user=$_SESSION['sess_user']; 



     $conn = new mysqli('localhost', 'admin', 'password') or die(mysqli_error()); 
     //Select DB From database 
     $db = mysqli_select_db($conn, "database") or die("Database Error"); 
     //Selecting database 

     $update_user="UPDATE '".members."' SET year='".$value1."', astatus='".$value2."', address='".$value3."', phone='".$value4."', email='".$value5."', pass='".$newpass."' WHERE '".user."'='".$user."'"; 

       if(isset($_SESSION["editerror"])){ 
       session_destroy(editerror); 
       } 

       session_start(editsuccess); 
       $_SESSION["editsuccess"] ="Your student profile has been successfully updated."; 
       header("Location:profile.php"); 











} 
else{ 
echo "error"; 
} 


?> 
+0

Вы никогда не выполнить свой чудовищно [SQL Injection атаки] (HTTP: // Bobby-таблицы. com) уязвимый запрос. Все, что вы делаете, это подключиться к db, определить var с некоторыми sql в нем, а затем выйти. Плюс. 'member' и' user'? Неопределенные константы? или переменные, у которых отсутствует их '$'? –

+0

Вы создаете свой запрос, но никогда не запускаете его. Кроме того, вы создаете его, добавляя переменные непосредственно в SQL, и это открывает вас для SQL-инъекции. Изучите использование подготовленного заявления – andrewsi

ответ

0

Примечание: Alwayes использовать mysqli_real_escape_string - Экранирует специальные символы в строке для использования в операторе SQL, принимая во внимание текущую кодировку соединения

http://www.w3schools.com/php/func_mysqli_real_escape_string.asp


Использовать инструкцию для подготовки при обновлении

http://php.net/manual/en/mysqli.prepare.php

вы забыли выполнить запрос

$update_user="UPDATE `members` SET `year`='".$value1."', `astatus`='".$value2."', `address`='".$value3."', `phone`='".$value4."', `email`='".$value5."', `pass`='".$newpass."' WHERE `user` ='".$user."'"; 


     if ($conn->query($update_user) === TRUE) { 
      session_start(editsuccess); 
      $_SESSION["editsuccess"] ="Your student profile has been successfully updated."; 
      header("Location:profile.php"); 

     } else { 
      echo "Error updating record: " . $conn->error; 
     } 

http://www.w3schools.com/php/php_mysql_update.asp

0

начать session в верхней части страницы

<?php 
session_start(); 
if(isset($_POST["submit"])){ 

$value1 = $_POST['year']; 
.... 

А где ваш mysqli_query()

запустить ваш query

$result = mysqli_query($conn, $update_user) or die(mysqli_error($conn)); 

ваш query также неправильное использование этого один

$update_user="UPDATE members SET year='".$value1."', astatus='".$value2."', address='".$value3."', phone='".$value4."', email='".$value5."', pass='".$newpass."' WHERE user ='".$user."'"; 
0
$update_user="UPDATE '".members."' SET year='".$value1."', astatus='".$value2."', address='".$value3."', phone='".$value4."', email='".$value5."', pass='".$newpass."' WHERE '".user."'='".$user."'"; 

должен быть

$update_user = "UPDATE members SET year='" . $value1 . "', astatus='" . $value2 . "', address='" . $value3 . "', phone='" . $value4 . "', email='" . $value5 . "', pass='" . $newpass . "' WHERE user = '" . $user . "'"; 

Кроме того, вы не должны передавать эти значения, как, что в базе данных. Вы должны избегать их должным образом, чтобы предотвратить впрыск базы данных.

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