2017-01-04 2 views
1

Я пытаюсь для формы регистрации с сохранением для предотвращения инъекций SQL в виду, но в конечном итоге с фатальной ошибкой: -PHP заявление bind_param не работает

(Call to undefined method mysqli_stmt::bind_parm()),

Можете ли вы, ребята, помогите мне, почему я «Я получаю эту фатальную ошибку, а также хочу знать, что мое кодирование защищено или нет от взлома.

Вот файл соединения

<?php 
define('HOST','localhost'); 
define('USER','root'); 
define('PASSWORD_HOST',''); 
define('DATABASE','ubhs'); 

if(defined('HOST') && defined('USER') && defined('PASSWORD_HOST') && defined('DATABASE')){ 
    $conn = mysqli_connect(HOST, USER, PASSWORD_HOST, DATABASE); 


}else{ 
    die(connection_failed.mysqli_connection_error()); 
} 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

?> 

и здесь isportion РНР файл

$st_f_name_err1 = ""; 
    $st_f_name_err2 = ""; 
    $st_l_name_err1 = ""; 
    $st_l_name_err2 = ""; 
    $st_f_name = $_POST['st_f_name']; 
    $st_l_name = $_POST['st_l_name']; 
    $userinput = true; //trigger 

if(isset($_POST['st_submit'])){ 

    if(empty($st_f_name)){ 
     $st_f_name_err1 = "You have to provide first Name"; 
     $userinput = false; 
    } 
    if (!preg_match("/^[a-zA-Z ]*$/",$st_f_name)){ 
     $st_f_name_err2 = "You can't provide numeric value in name field"; 
     $userinput = false; 
    }else{ 
     $st_f_name = test_input($st_f_name); 
    }if(empty($st_l_name)){ 
     $st_l_name_err1 = "You have to provide last Name"; 
     $userinput = false; 
    } 
    if (!preg_match("/^[a-zA-Z ]*$/",$st_l_name)){ 
     $st_l_name_err2 = "You can't provide numeric value in name field"; 
     $userinput = false; 
    }else{ 
     $st_l_name = test_input($st_l_name); 
    } 
if($userinput==true) 
      { 

      $stmt = $conn->prepare("INSERT INTO student_info (st_f_name,st_l_name,st_class,st_dob) VALUES(?,?,?,?)"); 
      $stmt->bind_parm("sssi",$st_f_name,$st_l_name, $st_class,$st_dob); 
      $stmt->execute(); 
} 
} 
+1

все это выше код в том же файле? или два разных файла? –

+3

Вы имели в виду ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)? – tyteen4a03

+1

Как @ tyteen4a03 в вашем вызове 'bind_parm' есть опечатка, которая должна быть' bind_param'. –

ответ

1

я предположил, что у вас есть два файла (так улучшения кода наряду с индикацией опечатка): -

<?php  
include_once('connection.php'); // include your connection file or put your code directly here 

$st_err = array(); // take error array 
$st_f_name = ''; 
$st_l_name = ''; 

if(!empty($_POST['st_f_name']) && !empty($_POST['st_l_name'])){ // check with posted values not with button name 
    $st_f_name = $_POST['st_f_name']; // assign values to variable 
    $st_l_name = $_POST['st_l_name']; 
    if (!preg_match("/^[a-zA-Z ]*$/",$st_f_name)){ 
     $st_err[] = "You can't provide numeric value in first name field"; // assign error to error array 
    }else{ 
     $st_f_name = test_input($st_f_name); 
    } 
    if (!preg_match("/^[a-zA-Z ]*$/",$st_l_name)){ 
     $st_err[] = "You can't provide numeric value in last name field";// assign error to error array 
    }else{ 
     $st_l_name = test_input($st_l_name); 
    } 
}else{ 
    $st_err[] = "your need to provide both first name and last name";// assign error to error array 
} 
if(count($st_err)>0){ // now check if error array have some value 
    $error_string = "<ul>" // create a string of ul li to show all errors 
    foreach ($st_err as $st_er){ 
     $error_string .= "<li>".$st_er."</li>"; // append all errors 
    } 
    $error_string .= "</ul>"; 
    die($error_string); // show errors and stop execution 
}else{ // if no error is there 
    $stmt = $conn->prepare("INSERT INTO student_info (st_f_name,st_l_name,st_class,st_dob) VALUES(?,?,?,?)"); 
    $stmt->bind_param("sssi",$st_f_name,$st_l_name, $st_class,$st_dob); // TYPO HERE a is missed in param 
    $stmt->execute(); 
} 
+0

Спасибо, друг ... подожди, просто открой дверь! Я отправил полный грузовик с благодарностью! :) – phpLover

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