2012-02-23 5 views
-1

У меня есть форма, которая требует, чтобы пользователь вводил свой номер NI и номер Refence. Как только это будет введено и проверено в системе, оно должно перенести их на другую страницу, но выйдет с помощью инструкции else, в которой ni-номер и ссылочный номер не могут быть найдены в базе данных. Что я делаю не так?Оператор выбора языка PHP/SQL не работает

здесь моя форма:

<form action="checknumbers.php" method="post"> 

<table width="50%" border="0"> 
    <tr> 
    <td><label for="ni">National Insurance Number</label> 
</td> 
    <td><span id="sprytextfield1"> 
    <input type="text" name="ni" id="ni" /> 
    <span class="textfieldRequiredMsg">*</span><span class="textfieldMaxCharsMsg">*</span></span></td> 
    </tr> 
    <tr> 
    <td><br /><label for="ref">Reference Number</label> 
</td> 
    <td><br /><span id="sprytextfield2"> 
    <input type="text" name="ref" id="ref" /> 
    <span class="textfieldRequiredMsg">*</span></span></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td><br /><br /><input name="" type="submit" value="Continue" /></td> 
    </tr> 
</table> 

</form> 

вот мой PHP:

<?php 
$host="localhost"; // Host name 
$username="**"; // Mysql username 
$password="**"; // Mysql password 
$db_name="***"; // Database name 
$tbl_name="public"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 


$ni=$_POST['ni']; 
$ref=$_POST['ref']; 

// To protect MySQL injection (more detail about MySQL injection) 
$ni = stripslashes($username); 
$ref = stripslashes($password); 
$ni = mysql_real_escape_string($username); 
$ref = mysql_real_escape_string($password); 

$sql="SELECT * FROM $tbl_name WHERE ni ='$ni' AND ref='$ref' AND active = 'not_activated'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 

header("location:securityquestion.php"); 
} 

else { 

    echo '<hr><h4>Your National Insurance Number Or Reference Number Does Not Match</h4><hr><a href="register.html">Please try Again</a>'; 
} 
?> 

помощь Meeeee

ответ

3

Вы перезаписывать переменные $ Ní и $ реф.

Заменить:

$ni=$_POST['ni']; 
     $ref=$_POST['ref']; // To protect MySQL injection (more detail about MySQL injection) 
     $ni = stripslashes($username); 
     $ref = stripslashes($password); 
     $ni = mysql_real_escape_string($username); 
     $ref = mysql_real_escape_string($password); 

С:

$ni= mysql_real_escape_string(stripslashes($_POST['ni'])); 
$ref= mysql_real_escape_string(stripslashes($_POST['ref'])); 
+0

привет, спасибо я исправил эту ошибку. Теперь я получаю следующую ошибку: Предупреждение: невозможно изменить информацию заголовка - уже отправленные заголовки (вывод начат в /home/jahedhus/public_html/system/checknumbers.php:61) в/home/jahedhus/public_html/system/checknumbers. php в строке 91 –

+0

строка 91: заголовок ("location: securityquestion.php"); –

+0

Проверьте пробел перед открытием php-тега ' buck54321

0

Вы назначаете ваш MySQL имя для переменной $ni и ваш MySQL пароль для $ref. Изменение

$ni = stripslashes($username); 
$ref = stripslashes($password); 

в

$ni = stripslashes($ni); 
$ref = stripslashes($ref); 
+0

привет, спасибо, я исправил эту ошибку. Теперь я получаю следующую ошибку: Предупреждение: невозможно изменить информацию заголовка - уже отправленные заголовки (вывод начат в /home/jahedhus/public_html/system/checknumbers.php:61) в/home/jahedhus/public_html/system/checknumbers. php on line 91 –

+0

строка 91: заголовок ("location: securityquestion.php") –

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