2011-01-08 6 views
1

안녕하세요, 저는 최근에 준비된 진술이 내 웹 사이트를 mysql 주입에서 안전하게 보호하는 가장 좋은 방법이라고 들었습니다. 문제가 해결되지 않는 이유 그래서 질문이, 이해 수없는 것 :에 /var/www/JMToday/loginchk.php에서 mysqli : 공지 사항 : 정의되지 않은 변수 나는 다음과 같은 오류가준비된 문에 대한 도움말

$mysqli=new mysqli("localhost", "***", "***","***") or die(mysql_error()); 


       function checklogin($username, $password){ 


       $result = $mysqli->prepare("SELECT * FROM users WHERE username = ?"); 
       $result->bind_param("s", $username); 
       $result->execute(); 

을 line 45 치명적인 오류 : 행 45에있는 /var/www/JMToday/loginchk.php에있는 객체가 아닌 객체에서 prepare() 함수를 호출하십시오.

답변

3

전역 변수 ($ mysqli)를 사용하려고합니다. 함수. (오류 메시지 "정의되지 않은 변수는"이 경우에 매우 통찰력입니다.)

당신이 중 하나를 수행해야합니다

  1. 가 글로벌로 변수를 선언합니다. (예 : checklogin 함수의 첫 번째 줄에 "global $mysqli;"을 추가하십시오.)

  2. $ mysqli의 정의를 checklogin 함수 내로 옮깁니다.

일반적인 조언으로, PHP 설명서의 variable scope 섹션을 읽는 것이 좋습니다.