我在godaddy上使用heredocs作为php / mysql插入语句。但是,当调用该函数时,页面正确刷新,数据不会插入数据库,也不会出现错误。我已经使用MAMP进行了本地测试,当文件上传到服务器时它无法正常工作。有没有人在godaddy之前遇到过这个问题?下面是我的插入声明和表单。
=================================
if ( $ax == "new" ) {
$sql=<<<SQL
INSERT INTO college (member_id, name, date_entered, date_completed, degree, professor, method, friends, memory_1)
VALUES (
'{$_SESSION['SESS_MEMBER_ID']}',
'{$_GET['name']}',
'{$_GET['date_entered']}',
'{$_GET['date_completed']}',
'{$_GET['degree']}',
'{$_GET['professor']}',
'{$_GET['method']}',
'{$_GET['friends']}',
'{$_GET['memory_1']}'
)
SQL;
echo $sql; exit;
if(mysql_query( $sql ) or die ( "Insert failed." . mysql_error()) );
header( "Location: education.php");
}
=====================
<form action="<?= $_SERVER["PHP_SELF"];?>" method="post">
<input type="hidden" name="ax" value="new">
Institution<br><input type="text" name="name" /><br>
Date Entered<br><input id="entered" type='text' name="date_entered" /><br>
Date Completed<br><input id="completed" type='text' name="date_completed" /><br>
Degree(s) Earned<br><input type="text" name="degree" /><br>
Favorite Professor <br><input type="text" name="professor" /><br>
Method of Study<br><select name="method" WIDTH="155" STYLE="width: 155px">
<option value="Classroom">Classroom</option>
<option value="Online">Online</option>
</select><br>
Friends<br><input type="text" name="friends" /><br>
<br><br>
Favorite Memory
<br>
<textarea cols="50" rows="4" name="memory_1"></textarea>
<br>
<input type="submit" name="submit" value="submit" class="ui-button ui-state-default ui-corner-all"/>
</form>
===================
感谢您的帮助!
答案 0 :(得分:3)
您的表单以POST方式发送:
<form action="<?= $_SERVER["PHP_SELF"];?>" method="post">
这意味着您将在PHP端接收$_POST
超全局变量中的数据。
但是你的代码使用$ _GET。
(仅当您在表单中使用action="get"
时才应填充
因此,在PHP脚本中,您应该使用$_POST
而不是$_GET
。
另外,作为旁注:您的脚本尖叫SQL Injection:您必须在将数据注入SQL查询之前转义数据!
关于这一点,您可以查看mysql_real_escape_string
。
答案 1 :(得分:0)
这结果是php.ini文件中的注册全局问题。因为它可以使用注册全局变量来关闭ax标志,看起来像
if ( $ax == "new" )
应该是
if ( $post['ax'] = "new")
答案 2 :(得分:0)
我最近使用godaddy服务有类似的问题。确保并登录您的托管计划和FTP。选择此页面所在的文件夹,并确保隐藏选项继承并正确设置。如果不是,你可以在不工作的情况下得到同样的问题,并且没有真正的代码原因。每次在Web上使用FTP管理器时都需要重置。使用FileZilla上传您编辑过的文件似乎不会引发问题。