PHP / MySql Вставка на GoDaddy - PullRequest
       12

PHP / MySql Вставка на GoDaddy

0 голосов
/ 01 декабря 2009

Я использую heredocs для оператора вставки php / mysql на godaddy. Когда функция вызывается, страница обновляется корректно, однако данные не вставляются в базу данных и не появляются ошибки. Я тестировал локально, используя MAMP, и когда файл загружен на сервер, он не работает. У кого-нибудь была эта проблема раньше на Годди? Ниже мое заявление вставки и форма.

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

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 ]

3 голосов
/ 01 декабря 2009

Ваша форма отправлена ​​как ПОЧТА:

<form action="<?= $_SERVER["PHP_SELF"];?>" method="post">

Это означает, что вы получите данные на стороне PHP в суперглобальной переменной $_POST.


Но ваш код использует $ _GET. (который должен быть заполнен только в том случае, если вы указали action="get" в вашей форме)

Итак, в вашем PHP-скрипте вы, вероятно, должны использовать $_POST вместо $_GET.


Кроме того, в качестве идентификатора: ваш скрипт кричит SQL-инъекция : вы должны экранировать данные, прежде чем вводить их в SQL-запрос! Об этом вы можете взглянуть на mysql_real_escape_string.

0 голосов
/ 24 октября 2014

У меня недавно была похожая проблема с использованием сервисов Godaddy. Убедитесь и войдите в свой хостинг-план и FTP. Выберите папку, в которой находится эта страница, и убедитесь, что параметры конфиденциальности наследуются и иным образом настроены правильно. Если это не так, вы можете просто получить эту же проблему, когда она не работает и нет реальной причины кода. Он должен сбрасываться каждый раз, когда вы используете FTP-менеджер в Интернете. Использование FileZilla для загрузки отредактированных файлов, похоже, не вызывает проблемы.

0 голосов
/ 09 декабря 2009

Это оказалось проблемой глобальных регистров из файла php.ini. Для того, чтобы он работал без регистрации глобалов с флагом топора, похожим на

if ( $ax == "new" )

должно быть

if ( $post['ax'] = "new")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...