データベースから値を取得するフォームがあり、送信時に値が空かどうかを確認します。値は現在入力されていますが、チェックするとそこにあると登録されていません。
簡略化されたフォーム コード:
if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
echo '<ul class="err">';
foreach($_SESSION['ERRMSG_ARR'] as $msg) {
echo '<li>',$msg,'</li>';
}
echo '</ul>';
unset($_SESSION['ERRMSG_ARR']);
}
<form action="addStudent.php" method="post" >
<?php
$result = mysql_query("SELECT firstname, lastname FROM members WHERE login='$_SESSION[SESS_LOGIN]'");
$row = mysql_fetch_array($result);
?>
Student Name: <input type="text" name="student" value="<?php echo $row['firstname'] . ' ' . $row['lastname']; ?>" >
<input type="submit" value="Submit" >
</form>
値が空かどうかをチェックするコード:
$errmsg_arr = array();
$errflag = false;
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$student = clean($_POST['student']);
if($student == '') {
$errmsg_arr[] = 'Please add student name.';
$errflag = true;
}
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: classSignUp.php);
exit();
}
私を本当に混乱させているのは、これが私のローカルホストで機能していて、コードを転送しようとすると機能しなくなったことです。値がフォームに入力されているため、送信時に値が表示されないだけなので、データベースの問題ではないと思います。