Поймав ошибку "die" и вставьте ее на исходную страницу
Итак, у меня есть форма на моей веб-странице, которая вставляется в базу данных. Это бросает die(mysql_error())
на пустую страницу, если не все поля имеют значение. Я хочу, чтобы это сообщение об ошибке было вставлено в мою форму, но не потеряло уже введенные значения. Я думал об перезагрузке страницы с page.php?error=...
и создание кода, чтобы проверить, все ли поля имеют значение (это будет долго и не нужно, поскольку то, что я хочу, уже на моем экране.
Вы думаете что-то вроде if(field1 has no value | field2 has no value | ....){ don't do anything and do rest
самый лучший и самый эффективный?
Но если я хочу показать, какое поле отсутствует, это будет много кода...
2 ответа
Вы на самом деле не хотите выводить точное сообщение об ошибке die(), так как пользователь не сможет его понять, и есть вероятность, что если он это поймет, то это потенциально те пользователи, которых вы не хотите видеть смог увидеть это!
Не совсем уверен в вашей ситуации (поскольку вы не публиковали никакого кода), но из того, что вы сказали, я бы предложил использовать try & catch и обрабатывать любые возникающие ошибки, например:
try {
// perform your database query
} catch (SQLException $error_msg) { // catch the error if goes wrong
//$error_msg contains the information from the error
return 'We`re sorry, your form submission could not be handled at this time.';
}
// if we got to this stage, there were no problems
return 'success';
Таким образом, вы можете проверить причины возникновения исключения, поймав реальное сообщение об ошибке, чтобы они его не увидели, а затем вернув какой-либо другой вывод пользователю обратно в формате, который он может понять.
Во всех ваших полях ввода установите атрибут html value в value
знак равно <?php echo @$_POST['fieldname'] ?>
также вместо использования die
использовать $error = mysql_error();
а потом echo $error
позже