Я использую 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>
===================
Спасибо за любую помощь!
Ваша форма отправляется как 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
.
Недавно у меня была аналогичная проблема с использованием сервисов godaddy. Удостоверьтесь и войдите в свой план хостинга и FTP. Выберите папку, в которой находится эта страница, и убедитесь, что параметры конфиденциальности наследуются и в противном случае правильно настроены. Если это не так, вы можете просто получить ту же самую проблему, где ее не работает, и нет реальной причины кода. Он нужен reset каждый раз, когда вы используете FTP-менеджер в Интернете. Использование FileZilla для загрузки файлов, которые вы отредактировали, похоже, не вызывает проблемы.
Это оказалось проблемой глобальных регистров в файле php.ini. Для работы с w/register globals с флага ax, выглядящего как
if ( $ax == "new" )
Это должно быть
if ( $post['ax'] = "new")