2013-11-18 1 views
-2

Я попытался выяснить ошибку в течение некоторого времени. Даже пытались использовать try и catch, но безрезультатно. Результат, который я получаю, это «запрос с ошибкой» (который является частью else). Также код работает на другой машине. Может ли кто-нибудь помочь мне понять это?PHP-код не работает и не упоминается об ошибках

<?php 
session_start(); 

//Include database connection details 
    require_once('connect.php'); 

    //Array to store validation errors 
    $errmsg_arr = array(); 

    //Validation error flag 
    $errflag = false; 

//Function to sanitize values received from the form. Prevents SQL injection 

    function clean($str) { 
    $str = @trim($str); 
    if(get_magic_quotes_gpc()) { 
     $str = stripslashes($str); 
    } 
    return mysql_real_escape_string($str); 
} 
    try { 
    //Sanitize the POST values 
    $username = clean($_POST['username']); 
    $phone = clean($_POST['phone']); 
    /*$username = 'Ajay M'; 
    $phone = '9810827804';*/ 
    //Input Validations 
    if($username == '') { 
     $errmsg_arr[] = 'Username missing'; 
     $errflag = true; 
    } 
    if($phone == '') { 
     $errmsg_arr[] = 'phone missing'; 
     $errflag = true; 
    } 

//If there are input validations, redirect back to the login form 
if($errflag) { 
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr; 
    session_write_close(); 
    header("location: log.php"); 
    exit(); 
} 
//Create query 

     $qry="SELECT * FROM app_user WHERE name='$username' AND phone='$phone'"; 
    $result=mysql_query($qry); 
    //Check whether the query was successful or not 
    if($result) { 
     if(mysql_num_rows($result) > 0) { 
      //Login Successful 
      session_regenerate_id(); 
      $member = mysql_fetch_assoc($result); 
      $_SESSION['SESS_MEMBER_ID'] = $member['id']; 
      $_SESSION['SESS_NAME'] = $member['username']; 
      $_SESSION['SESS_PHONE'] = $member['phone']; 
      session_write_close(); 
      header("location: suzuki_home.php"); 
      exit(); 
     }else { 
      //Login failed 
      $errmsg_arr[] = 'user name and phone not found'; 
      $errflag = true; 
      if($errflag) { 
       $_SESSION['ERRMSG_ARR'] = $errmsg_arr; 
       session_write_close(); 
       header("location: fail.php"); 
       exit(); 
      } 
     } 
    }else { 
     die("Query failed"); 
    } 
} 
catch (Exception $e) { 
    echo ($e->getMessage()); 
} 
?> 
+1

http://php.net/mysql_error – deceze

+0

Это может быть ошибка MYSQL, которая не возвращает ничего, кроме, если вы используете mysql_error. Вы можете найти информацию об этом по ссылке выше. – Mordalthunder

+0

Попробуйте отладить код, распечатав переменные в разных точках. И посмотри, где он застрял. – aBhijit

ответ

-1

Сообщения об ошибках должен быть установлен в ini-файле, но вы можете сделать это в файле .php тоже:

ini_set("display_errors", true); 
error_reporting(E_ALL); 
1

name зарезервированное слово на MySQL. Поэтому приложите имена столбцов, используя обратные ссылки в вашем запросе.

$qry="SELECT * FROM `app_user` WHERE `name`='$username' AND `phone`='$phone'"; 
+4

Можете ли вы сделать резервную копию своего утверждения, что 'name' является зарезервированным словом в MySQL? –

+1

** ['имя' НЕ зарезервированное слово в MySQL] (http://dev.mysql.com/doc/refman/5.5/ru/reserved-words.html) ** –

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