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

0

Я использую heredocs для инструкции вставки php/mysql на godaddy. Однако, когда функция вызвана, страница обновляется правильно, однако данные не вставляются в базу данных и ошибок не появляется. Я тестировал локально с помощью 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>

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

Спасибо за любую помощь!

Теги:
insert

3 ответа

3

Ваша форма отправляется как POST:

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

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


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

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


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

  • 0
    Паскаль ... Спасибо за ответ. Я должен был упомянуть, что я пытался использовать $ _GET, $ _POST и $ _REQUEST. Ничто из этого не сработало.
0

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

0

Это оказалось проблемой глобальных регистров в файле php.ini. Для работы с w/register globals с флага ax, выглядящего как

if ( $ax == "new" )

Это должно быть

if ( $post['ax'] = "new")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню