2014-05-11 6 views
0

Я пишу сценарий, в котором пользователь выбирает параметр из окна, после чего они нажимают кнопку «Отправить», и их выбор записывается в базу данных MySQL. Однако, когда я пытаюсь нажать кнопку «Отправить», URL изменяется с (например: www.stackoverflow.com/questions на www.stackoverflow.com/questions/unknown). Я много часов искал и не могу понять, почему это происходит. Есть ли у кого-нибудь какие-либо предложения относительно того, что может быть причиной этого? Это сценарий, который должен запускаться, когда кто-то нажимает кнопку отправки.PHP Script собирается под названием «unknown»

if($_POST) 
{ 
$con = mysql_connect("localhost","username","password"); 

if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("db_name", $con); 

$q1 = $_POST['q1']; 
$q2 = $_POST['q2']; 
$q3 = $_POST['q3']; 
$q4 = $_POST['q4']; 
$q5 = $_POST['q5']; 
$q6 = $_POST['q6']; 
$q7 = $_POST['q7']; 
$q7 = $_POST['q7']; 
$q8 = $_POST['q8']; 
$qf1 = $_POST['qf1']; 
$qf2 = $_POST['qf2']; 
$qf3 = $_POST['qf3']; 
$qf4 = $_POST['qf4']; 
$s1 = $_POST['s1']; 
$s2 = $_POST['s2']; 
$final = $_POST['final']; 
$fname = $_POST['fname']; 
$lname = $_POST['lname']; 


$q1 = mysql_real_escape_string($q1); 
$q2 = mysql_real_escape_string($q2); 
$q3 = mysql_real_escape_string($q3); 
$q4 = mysql_real_escape_string($q4); 
$q5 = mysql_real_escape_string($q5); 
$q6 = mysql_real_escape_string($q6); 
$q7 = mysql_real_escape_string($q7); 
$q8 = mysql_real_escape_string($q8); 
$qf1 = mysql_real_escape_string($qf1); 
$qf2 = mysql_real_escape_string($qf2); 
$qf3 = mysql_real_escape_string($qf3); 
$qf4 = mysql_real_escape_string($qf4); 
$s1 = mysql_real_escape_string($s1); 
$s2 = mysql_real_escape_string($s2); 
$final = mysql_real_escape_string($final); 
$fname = mysql_real_escape_string($fname); 
$lname = mysql_real_escape_string($lname); 


    $query = " 
INSERT INTO `db_name`.`table_name` (`qualifier_1`, `qualifier_2`, `qualifier_3`, `qualifier_4`, `qualifier_5`, `qualifier_6`, `qualifier_7`, `qualifier_8`, `quarter_1`, `quarter_2`, `quarter_3`, `quarter_4`, `semi_1`, `semi_2`, 'final', 'first_name', 'last_name', 'TimeDate') VALUES ('$q1', '$q2', '$q3', '$q4', '$q5', '$q6', '$q7', '$q8', '$qf1', '$qf2', '$qf3', '$qf4', '$s1', '$s2', '$final', '$fname', '$lname', CURRENT_TIMESTAMP);"; 

mysql_query($query); 

echo "<h2>Thank you for your Submission!</h2>"; 

mysql_close($con); 
} 

?> 
+1

Ничто из этого кода не изменяет действие

действие. Я предполагаю, что ваше «неизвестное» исходит из javascript, и вы используете старую версию IE, которая говорит «unknown», а не «undefined». –

+0

Можете ли вы уточнить, что вы имеете в виду, когда говорите об изменении действия? action? И да, это верно в отношении старых, т.е. – rreichel

+0

У вас есть javascript, который обновляет вашу , чтобы добавить переменную. Ищите какой-нибудь код где-нибудь, который объединяет путь для совершения действия. Этот js-код будет иметь переменную, которую вы конкатенируете, которая не задана, поэтому она создаст ваш путь с «неизвестным» в нем. –

ответ

3

Как вы работаете на старой версии IE, что вы видите, это не связано с PHP на всех, но JavaScript. В JavaScript, если вы конкатенации неопределенной переменной, слово «неопределенными» буквально сцеплены, например .:

var mystring = "foo" + bar; 

Будет, если бар не определен, установите MyString в «fooundefined». В IE7 и старше он будет «foounknown».

Должен быть установлен JavaScript для настройки вашей формы, так что все это происходит вне кода, который вы опубликовали. Проверьте MDN (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) для получения более подробной информации об использовании элемента формы. Либо «действие» на вас устанавливается в js, либо «formaction» кнопки устанавливается. Проверьте этот код, и вы увидите некоторую конкатенацию неопределенной переменной, вызывающей это.

Смежные вопросы