这让我很困惑..我现在有这么头疼!我已经学习了一个月的php,这是我期望在4周前进行srtuggle的那种东西:
我收到警告Undefined index并且数据库正在使用date 0000-00-00更新,然后在其他列中没有任何内容,我将查询转换为回显以查看发生了什么但似乎没有任何内容被分配从表单发送的变量!
守则: (简化的)
calender.php
<form name="slots" action="updatecalender.php" method="post">
Day: <input type="text" name="dayofmonth" />
<select name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="year">
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
<option value="2023">2023</option>
</select><br /><br />
Slots Available:
<input type="text" name="noslots" /><br />
<input type="submit" value=" - Go - " />
</form>
updatecalender.php
<?php
//connect to database
require "dbconn.php";
$dayofmonth = $_GET['dayofmonth'];
$month = $_GET['month'];
$year = $_GET['year'];
$noslots = $_GET['noslots'];
$query = INSERT INTO calender VALUES ('".$year."-".$month."-".$dayofmonth."','".$noslots."')";
$results = mysql_query($query)
or die(mysql_error());
header('Location:calender.php');
?>
我是初学者,所以我不是在努力让它变得安全......只是让它变得有效!
非常感谢你提供任何建议和帮助!
答案 0 :(得分:2)
首先在你的php代码中使用$ _POST,例如:
$dayofmonth = $_POST['dayofmonth'];
$month = $_POST['month'];
$year = $_POST['year'];
$noslots = $_POST['noslots'];
另外,请考虑学习PDO
。您的代码不是很安全。 PDO
将有助于清理您的输入并帮助防止诸如SQL注入之类的事情
答案 1 :(得分:1)
这可能适合你。
<?php
//connect to database
require "dbconn.php";
$dayofmonth = $_POST['dayofmonth'];
$month = $_POST['month'];
$year = $_POST['year'];
$noslots = $_POST['noslots'];
$results = mysql_query ("INSERT INTO calender VALUES ('".$year."-".$month."-".$dayofmonth."','".$noslots."')");
header('Location:calender.php');
?>
答案 2 :(得分:1)
您的表单使用POST,您的PHP使用GET。使用$ _POST
(最初在评论中提出)