我收到了回复:
注意:第11行的Page1.php中未定义索引yy
注意:第12行的Page1.php中未定义的索引mm
注意:第13行的Page1.php中未定义的索引dd
我该怎么做才能定义这些yy,mm,dd?
<?php
$redirect_page = 'Page2.php';
$_SESSION['yy'] = $_POST['yy']; // This is on line 11
$_SESSION['mm'] = $_POST['mm']; // This is on line 12
$_SESSION['dd'] = $_POST['dada']; // This is on line 13
if (isset($_POST['Submit'])) {
header('Location: ' . $redirect_page);
}
?>
<HTML>
<Form name="Page1" action="" method="POST">
<select name="yy">
<option value="2001">2001</option>
// ...Another 100 years
</select>
<select name="mm">
<option value="1">1</option>
<option value="2">2</option>
// ... another 10 months
</select>
<select name="dd">
<option value="1">1</option>
<option value="2">2</option>
// ...another 29 days
</select>
<input type="Submit" name="Submit" value="Submit">
</Form>
</HTML>
Run Code Online (Sandbox Code Playgroud)
我知道人们已经回答了,但我会给你一点建议.使用下面的这个小功能:
function _post($Var, $Default=''){
return (isset($_POST[$Var]) === TRUE ? $_POST[$Var] : $Default);
}
Run Code Online (Sandbox Code Playgroud)
如果找不到变量,您可以设置默认值.它还将处理未定义的索引错误;)
未定义的索引表示在数组中找不到该条目.在这种情况下,条目yy,mm并且dd不将在存在$_POST阵列.您必须使用PHP语言构造命令isset检查它们是否存在.使用方法如下:
$_SESSION['yy'] = _post('yy', date('Y')); // will be the value of $_POST['yy'] or it not found will be the current year
$_SESSION['mm'] = _post('mm', date('M')); // ... or will be the current month (MM)
$_SESSION['dd'] = _post('dd', date('d')); // ... or will be the current day (DD)
Run Code Online (Sandbox Code Playgroud)
您可以根据需要创建不同的功能:
function _get($Var, $Default=''){
return (isset($_GET[$Var]) === TRUE ? $_GET[$Var] : $Default);
}
function _session($Var, $Default=''){
return (isset($_SESSION[$Var]) === TRUE ? $_SESSION[$Var] : $Default);
}
function _put($Var, $Default=''){
return (isset($_PUT[$Var]) === TRUE ? $_PUT[$Var] : $Default);
}
function _delete($Var, $Default=''){
return (isset($_DELETE[$Var]) === TRUE ? $_DELETE[$Var] : $Default);
}
function _files($Var, $Default=NULL){
return (isset($_FILES[$Var]) === TRUE ? $_FILES[$Var] : $Default);
}
Run Code Online (Sandbox Code Playgroud)
尝试将这些post变量包装在isset函数中
$_SESSION['yy'] = isset($_POST['yy']) ? $_POST['yy'] : ""; // This is on line 11
$_SESSION['mm'] = isset($_POST['mm']) ? $_POST['mm'] : ""; // This is on line 12
$_SESSION['dd'] = isset($_POST['dada']) ? $_POST['dada'] : ""; // This is on line 13
Run Code Online (Sandbox Code Playgroud)