在GoDaddy上插入PHP / MySql

时间:2009-12-01 06:30:11

标签: php mysql insert

我在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>

===================

感谢您的帮助!

3 个答案:

答案 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上传您编辑过的文件似乎不会引发问题。