2013-09-14 4 views
0

Я хочу запустить этот скрипт для обновления db, а затем проверить, действительно ли оно было обновлено, а затем установить переменную, говорящую так, и перенаправить назад предыдущую страницу и эхо исключить успешное обновление или неудачное обновление на этой странице. В настоящее время он работает отлично, но не будет отражать успешную или неудачную часть. Что я могу сделать, чтобы исправить это?Установка переменной php и отображение ее на другой странице

<?php 
include_once('../../../_php/connect.php'); 

$update_e_id = $_POST['error_id']; 

//Update unresolved to resolved 
mysql_query("UPDATE error SET resolution='resolved' WHERE id=" . $update_e_id . " 
AND resolution='unresolved'"); 

//Check if it updated 
$checkE_update = "SELECT * FROM error WHERE id=" . $update_e_id . " AND 
resolution='resolved'"; 
$results = mysql_query($checkE_update); 
$nr = mysql_num_rows($results); 

while($row = mysql_fetch_assoc($results)) { 
    $checkResolution = $row['resolution']; 
} 
if($checkResolution = 'resolved') { 
    $successfullyUpdated = "<p>The error is now resolved.</p>"; 
    header("Location: ../lib_errors.php"); 
} else { 
     $didnotUpdateError = "<p>The update was unsuccessful.</p>"; 
     header("Location: ../lib_errors.php"); 
    } 
?> 
+1

Ваш код уязвим для SQL-инъекций. Также не используйте mysql_, он устарел. Вместо этого используйте mysqli или pdo. – Jonast92

+0

Да, это действительно неуверенно. Используйте подготовленные заявления или, по крайней мере, игнорировать пройденные переменные. –

ответ

0

Используйте сеанс ... убедитесь, что у вас это в верхней части каждой страницы в тегах php;

session_start(); 

затем сделать

$_SESSION['name'] = $varName; 

затем на другой странице вы можете повторить из сеанса

echo $_SESSION['name']; 
0

$_SESSION образом упоминается в других ответов один подход. Еще может быть, чтобы сохранить сообщение об успехе или неуспехе в $_GET переменном и передать их в вызываемом URI:

// ... 
if($checkResolution = 'resolved') { 
    $status = 'success'; 
    $message = "<p>The error is now resolved.</p>"; 
} else { 
    $status = 'error; 
    $message = "<p>The update was unsuccessful.</p>"; 
} 
$uri = '../lib_errors.php?status='.$status.'&message='.$message; 
header('Location: '.$uri); 

И тогда в вашем lib_errors.php вы можете использовать:

$status = $_GET['status']; 
$message = $_GET['message']; 
0
if($checkResolution = 'resolved') { 
    $successfullyUpdated = "<p>The error is now resolved.</p>"; 
    header("Location: ../lib_errors.php?msg=The error is now resolved."); 
} else { 
     $didnotUpdateError = "<p>The update was unsuccessful.</p>"; 
     header("Location: ../lib_errors.php?msg=The update was unsuccessful.?msg="); 
    } 
?> 

и эхо это сообщение на странице перенаправления:

<?php echo $_GET['msg']; ?> 
0

Я не знаю почему вы снова выполняете запрос выбора. От обновления запроса сама вы получите успех или не

//Update unresolved to resolved 
$rs = mysql_query("UPDATE error SET resolution='resolved' WHERE id=".$update_e_id." AND resolution='unresolved'"); 
if($rs) { 
    header("Location: ../lib_errors.php?msg=The error is now resolved"); 
} 
else { 
    header("Location: ../lib_errors.php?msg=The update was unsuccessful"); 
} 

И в lib_error.php вы получите сообщение, как $_GET['msg']; вы можете повторить его везде, где вы хотите

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