Это мой первый проект PHP, поэтому, пожалуйста, объясните, как эффективно отлаживать:
Я создал эту форму:
<form action="<?php $self ?>" method="post">
<div class="fname">
<label for="name"><span> Name: </span>
<input name="name" value= "<?php
if($error_count != 0) {
echo $name;
}// To avoid filling name again in case of error?>"
type="text" cols="20" />
</label>
</div>
<div class="femail">
<label for="email"><span> Email: </span>
<input name="email" value= "<?php
if($error_count != 0) {
echo $email;
}// To avoid filling email again in case of error?>"
type="text" cols="20" />
</label>
</div>
<br/>
<textarea name="post" rows="5" cols="40"><?php
if($error_count != 0) {
echo $post;
}// To avoid filling textarea again in case of error?>
</textarea>
<input name="send" type="hidden" />
<p>
<input type="submit" value="shout" />
</p>
и следующая функция для проверки формы (в отдельном файле form_validation.php):
<?php
function validate_shout($vmail,$vname,$vpost)
{
$error_count = 0;
// To check email.
if(!preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/',$vmail)) {
echo "<p class =\"error\"> Please enter valid email address </p><br/>";
$error_count++;
}
// To check required fields
if($vname == NULL) {
echo "<p class =\"error\"> Oops!! You forgot to enter your name </p><br/>";
$error_count++;
}
if($vpost == NULL) {
echo "<p class =\"error\"> I guess your shout was blank </p><br/>";
$error_count++;
}
return $error_count;
}
?>
И использовал его таким образом
if(isset($_POST['send'])) {
if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['post'])) {
echo "<p class=\"error\">Unable to connect to the database server at this time.</p>";
}
else {
$name = htmlspecialchars(mysql_real_escape_string($_POST['name']));
$email = htmlspecialchars(mysql_real_escape_string($_POST['email']));
$post = htmlspecialchars(mysql_real_escape_string($_POST['post']));
$error_count = validate_shout($email,$name,$post);
//PHP code to add shout to database
if ($error_count == 0)
{
$query = "INSERT INTO shouts SET name='$name', email='$email', post='$post';";
- Теперь проблема в том, что не проверяет текстовую область .два других работают нормально.Код работал нормально несколько дней назад.но сегодня, когда я открыл его, я обнаружил эту проблему.
Еще одна вещь, которую я заметил, была в phpMyadmin, как указано ниже
Дополнительные функциидля работы со связанными таблицами были деактивированы.Чтобы выяснить, почему нажмите здесь.
при нажатии он отобразил это:
$cfg['Servers'][$i]['pmadb'] ... not OK [ Documentation ]
$cfg['Servers'][$i]['relation'] ... not OK [ Documentation ]
General relation features: Disabled
$cfg['Servers'][$i]['table_info'] ... not OK [ Documentation ]
Display Features: Disabled
$cfg['Servers'][$i]['table_coords'] ... not OK [ Documentation ]
$cfg['Servers'][$i]['pdf_pages'] ... not OK [ Documentation ]
Creation of PDFs: Disabled
$cfg['Servers'][$i]['column_info'] ... not OK [ Documentation ]
Displaying Column Comments: Disabled
Browser transformation: Disabled
$cfg['Servers'][$i]['bookmarktable'] ... not OK [ Documentation ]
Bookmarked SQL query: Disabled
$cfg['Servers'][$i]['history'] ... not OK [ Documentation ]
SQL history: Disabled
$cfg['Servers'][$i]['designer_coords'] ... not OK [ Documentation ]
Designer: Disabled
$cfg['Servers'][$i]['tracking'] ... not OK [ Documentation ]
Tracking: Disabled
Я полагаю, обе проблемы возникли вместе без каких-либо изменений в настройках или коде мной.Хотя они выглядят отдельно друг от друга.
Пожалуйста, помогите ..
Основная проблема заключается в том, почему $ post не проходит проверку и почему phpMyadmin внезапно показывает указанное выше сообщение