Поймав ошибку "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 позже

Другие вопросы по тегам