2017-11-03 1 views
0

PHP 페이지를 MySQL에 연결하는 데 문제가 있습니다. PHP를 처음 사용하고 온라인에서 찾을 수있는 모든 것을 시도했지만 그 중 아무 것도 작동하지 않았습니다. PHP 폼을 다운로드하고이 페이지에 대한 데이터베이스를 만들었지 만 여전히 데이터베이스에 아무 것도 추가하지 않습니다.PHP 페이지를 mySql에 연결하십시오.

<html> 

<link href="//db.onlinewebfonts.com/c/a4e256ed67403c6ad5d43937ed48a77b?family=Core+Sans+N+W01+35+Light" rel="stylesheet" type="text/css"/> 
<link rel="stylesheet" href="form.css" type="text/css"> 
<div class="body-content"> 
    <div class="module"> 
    <h1>Create an account</h1> 

    <?php 
session_start(); 
$_SESSION['message'] = ''; 
$mysqli = new mysqli("127.0.0.1", "root", "", "accounts_complete"); 

//the form has been submitted with post 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    //two passwords are equal to each other 
    if ($_POST['password'] == $_POST['confirmpassword']) { 

     //set all the post variables 
     $username = $mysqli_real_escape_string($_POST['username']); 
     $email = $mysqli_real_escape_string($_POST['email']); 
     $password = md5($_POST['password']); //md5 has password for security 
     $avatar_path = $mysqli_real_escape_string('images/'.$_FILES['avatar']['name']); 

     //make sure the file type is image 
     if (preg_match("!image!",$_FILES['avatar']['type'])) { 

      //copy image to images/ folder 
      if (copy($_FILES['avatar']['tmp_name'], $avatar_path)){ 

       //set session variables 
       $_SESSION['username'] = $username; 
       $_SESSION['avatar'] = $avatar_path; 

       //insert user data into database 
       $sql = "INSERT INTO users (username, email, password, avatar) " 
         . "VALUES ('$username', '$email', '$password', '$avatar_path')"; 

       //if the query is successsful, redirect to welcome.php page, done! 
       if ($mysqli_query($sql) === true){ 
        $_SESSION['message'] = "Registration succesful! Added $username to the database!"; 
        header("location: welcome.php"); 
       } 
       else { 
        $_SESSION['message'] = 'User could not be added to the database!'; 
       } 
       $mysqli_close();   
      } 
      else { 
       $_SESSION['message'] = 'File upload failed!'; 
      } 
     } 
     else { 
      $_SESSION['message'] = 'Please only upload GIF, JPG or PNG images!'; 
     } 
    } 
    else { 
     $_SESSION['message'] = 'Two passwords do not match!'; 
    } 
} 
?> 


    <form class="form" action="form.php" method="post" enctype="multipart/form-data" autocomplete="off"> 
     <div class="alert alert-error"><?= $_SESSION['message'] ?></div> 
     <input type="text" placeholder="User Name" name="username" required /> 
     <input type="email" placeholder="Email" name="email" required /> 
     <input type="password" placeholder="Password" name="password" autocomplete="new-password" required /> 
     <input type="password" placeholder="Confirm Password" name="confirmpassword" autocomplete="new-password" required /> 
     <div class="avatar"><label>Select your avatar: </label><input type="file" name="avatar" accept="image/*" required /></div> 
     <input type="submit" value="Register" name="register" class="btn btn-block btn-primary" /> 
    </form> 
    </div> 
</div> 
</html> 

암호가 없기 때문에 암호가 비어 있습니다. 도와 주시겠습니까? 미리 감사드립니다.

+5

'$ password = md5 ($ _ POST [ 'password']); // md5에는 보안을위한 암호가 있습니다. "... 지금 나를 죽이십시오. - 어디서부터 시작해야할지 모르겠다. – CD001

+0

"작동하지 않는 것"을 지정할 수 있습니까? 오류 메시지가 있습니까? – Connum

+0

@ CD001, 내게 껄끄 러운 말을해라.하지만 나는 너와 100 % 동의한다! – Option

답변

0

는 사실이 많은 실수 있지만, 기본 데이터베이스에 대한 질문에 :

  1. 모든 mysqli_ 구문은 함수가 아니라 변수입니다. 따라서 처음에 $mysqli_ 구문으로 제거하면됩니다.
  2. mysqli에서 연결 변수를 첫 번째 매개 변수 mysqli_ 함수에 전달해야합니다.

예 :

전 : $mysqli_query($sql);

후 : mysqli_query($mysqli, $sql)

AND

전 : $mysqli_close();

후 : mysqli_close($mysqli)

,
+0

감사합니다. 데이터베이스를 작동시킬 수있었습니다. mySQL에 문제가있었습니다. 이제 테이블에서 VALUES를 수동으로 할당하면 양식의 값을 DB 테이블에 할당하는 방법을 이해해야합니다. – Lorenzo

관련 문제