2015-02-05 2 views
-1

양식의 정보를 MySQL 데이터베이스에 삽입하는 데 문제가 있습니다.PHP는 MySQL에 삽입하지 않습니다

"제출"버튼을 클릭하면 URL이 domain.com/register-form.php에서 domain.com/register-script.php로 변경되고 데이터베이스 테이블에 아무 것도 추가하지 않습니다.

원본 코드가 작동하지 않는다는 것을 알게 된 후 escape_strings 및 암호 해시가 없으면 최소한으로 단순화하기로 결정했으며 기본 버전은 여전히 ​​데이터베이스에 삽입되지 않았습니다.

나는 아주 기본적인 것을 간과 할 뿐이지 만 나는 내 삶에 대해 알아 내지 못합니다. 모든 데이터베이스 정보가 올 바르고 사용자에게 모든 권한이 있습니다.

참고 : 스크립트 및 사용자 권한에 대한 보안 부족은 무시하십시오. 이것은 작동하지 않는 매우 단순화 된 테스트입니다.

내 파일 구조는 database.php, register-form.php, register-script.php의 세 가지 파일로 구성된 단일 디렉토리입니다.

내 데이터베이스 테이블 Users는 다음과 같이 구성되어있다 :
user_email VARCHAR (255) utf8_unicode_ci을하지 COLLATE,

user_username VARCHAR (255) utf8_unicode_ci NULL NOT COLLATE는,
user_password VARCHAR (255) utf8_unicode_ci는 NULL NOT COLLATE NULL

database.php :

01 23,

레지스터 form.php

<?php require 'database.php' ?> 

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
</head> 
<body> 

<form name="register" action="register-script.php" method="post"> 
<label>Desired Username: </label> 
<input type="text" name="newuser_username" placeholder="Desired Username"> 
<label>Password: </label> 
<input type="password" name="newuser_password" placeholder="Password"> 
<label>Email: </label> 
<input type="email" name="newuser_email" placeholder="Email Address"> 
<input type="submit" name="register_button" value="Sign Up!"> 
</form> 

</body> 
</html> 

레지스터이 script.php 모두의

<?php 
    require 'database.php'; 

    if(isset($_REQUEST['register_button'])){ 
     $username = $_REQUEST['newuser_username']; 
     $password = $_REQUEST['newuser_password']; 
     $email = $_REQUEST['newuser_email']; 

     $sql = "INSERT INTO users (user_username,user_password,user_email) VALUES ('$username','$password','$email')"; 

     mysqli_query($database,$sql); 

    } 

?> 
+1

'error_reporting' 및 mysqli_error'을 아직 사용해 보지 않으셨습니까? – mario

+0

오류가 있습니까? 당신은'$ _REQUEST'를'$ _POST'로 대체하려고 시도 했습니까 – Baig

+0

디버깅의 작은 양은 먼 길을 갈 것입니다 –

답변

0

먼저 당신의 phpMyAdmin을 사용자 이름과 암호가 기본 경우 올바른지 확인은 루트 및 비어 .

mysqli_connect_errno()를 사용하여 실제로 데이터베이스에 연결되어 있는지 여부를 확인하십시오.

mysqli_num_rows()를 사용하여 쿼리가 결과를 반환하는지 확인하십시오.

그리고 마지막에는 mysqli 연결을 닫습니다.

+0

Thanks Buddy ... 그리고 mysqli 확장을 사용하여 db releted 작업을 구현하는 객체 지향 접근법을 따르십시오. –

관련 문제