2012-04-23 1 views
0

Я использую плагин проверки JQuery. Я получил удаленную функцию, работающую с файлом php по умолчанию.Проверка JQuery Удаленная проверка и проверка базы данных Ошибка PHP MySQL

Я изменил файл PHP, чтобы использовать свою собственную версию, но MySQL возвращает

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/fastbluf/syatch/module/1.func.php on line 15 

Мой PHP код заключается в следующем. Весь мой синтаксис выглядит корректно.

<?php 
// Last Edited: 4/23/12 
$conn = mysql_connect('localhost','hidden','hidden') or die('Iam dying'); 
$rs = @mysql_select_db("hidden", $conn) or die("Err:Db"); 

$do = $_REQUEST['do']; 
$email= $_REQUEST['email']; 
$user= $_REQUEST['user']; 

function checkInfo($do,$email,$user){ 
    switch ($do) { 
     case 1: 
      $sql = "select * from User_Base where Email_Address = $email"; 
      $results = mysql_query($sql). mysql_error(); 
      $nResults = mysql_num_rows($results); 
      if ($nResults > 0) { 
       $valid="false"; 
      } else { 
       $valid="true"; 
      } 
     break; 

     case 2: 
     //not yet 
     break;  
    } 
    return $valid; 
} 
echo checkInfo($do,$email,$user); 
?> 

ответ

2

Проблема заключается в том, что вы добавления в ваш результат, в результате чего он больше не является действительным результатом.

$results = mysql_query($sql). mysql_error(); 

Попробуйте изменить это, чтобы быть что-то вроде этого:

$results = mysql_query($sql) or die(mysql_error()); 

Ваш запрос также должен быть изменен, чтобы цитировать адрес электронной почты и адрес должны быть экранированы для предотвращения атак (SQL Injection):

$email = mysql_real_escape_string($_REQUEST['email']); 
$sql = "select * from User_Base where Email_Address = '$email'"; 
+0

спасибо. много .. даже не отслеживал настоящую escape-строку. .. Неплохо придется реализовать это везде сейчас. – Ray

+0

Без проблем, рад, что я мог бы помочь :) – Developer

2

Фикс запрос к

$sql = "select * from User_Base where Email_Address = '".$email."'";