PHP를 사용하여 데이터베이스에 값 삽입

마흐무드 무사

나는 php와 mysql db를 사용하고 있는데, 두 가지 입력 유형에서 값을 가져 와서 표시된 코드를 실행할 때 버튼 저장을 클릭했을 때 데이터베이스에 삽입하고 싶지만 여기에 db에 저장하지 않는 코드가 있습니다. (id는 자동 증분이고 admin 테이블에는 id, username, password의 세 열이 있습니다.) addAdmin.php :

<?php include("connect.php");?>
<div class="col-md-12">
<!-- Add admin -->
<div class="box box-info">
  <div class="box-header with-border">
    <h3 class="box-title">Add admin</h3>
  </div>
  <!-- /.box-header -->
  <!-- form start -->
  <form id="adminForm" class="form-horizontal" action="" method = "get">
    <div class="box-body">

        <div class="form-group">
        <label for="inputName" class="col-sm-2 control-label">User 
  name</label>

        <div class="col-sm-10">
          <input type="text" class="form-control" id="inputName" 
           placeholder="user name" name="username" required >
        </div>
      </div>

      <div class="form-group">
        <label for="inputPassword3" class="col-sm-2 control-
  label">Password</label>

        <div class="col-sm-10">
          <input type="password" class="form-control" id="inputPassword3" 
  placeholder="Password" name="password" required>
        </div>

      </div>





    </div>
    <!-- /.box-body -->
    <div class="box-footer">
        <input  type = "submit" class="btn btn-info pull-right save" name = 
     "submit" value = "save">
      <?php 
      if(isset($_POST["submit"])) {
          $name = $_GET['username'];
          $password = $_GET['password'];


          $insertNewAdmin = "INSERT INTO `admin` VALUES 
          ('$name','$password')";
          mysql_query($insertNewAdmin);

      }
      ?>
    </div>
    <!-- /.box-footer -->
  </form>
</div>
<!-- /.box -->
</div>
대규모 Cokile

권장되는 업계 표준을 사용하여 전체 코드를 다시 작성할 수 있습니다. 우선 $_GET데이터베이스에 양식 데이터를 보낼 때 특히 암호가 포함 된 경우 get 메서드를 사용해서는 안됩니다 .

mysql_*당신이 사용하고있는 API는 내가 대학에서 2 학년 때부터 감가 상각되었고, 나는 졸업했고, 3 년의 실무 경험을 가지고 있습니다. 감가 상각 되었기 때문에;) 그리고 php 7에서 완전히 제거되었습니다. 따라서 당신은 mysqli_*or PDOas 를 사용해야합니다. of v5.5.0see : PHP에서 mysql_ * 함수를 사용하지 않는 이유는 무엇입니까?

코드의 또 다른 문제는 @Jay Blanchard가 위에서 언급했듯이 SQL 감염의 위험이 있습니다. 여기에서 그의 블록을 따라 가며 그가 말하는 것에 대해 자세히 알아볼 수 있습니다. http://jayblanchard.net/demystifying_php_pdo.html

따라서 Jay가 위에서 강조한 내용을 해결하기 위해 p repared 문을 사용합니다 . 이는 SQL 삽입을 방지합니다.

그런 다음 현대에는 암호를 일반 텍스트로 저장하지 않거나 md5요즘에는 password_hash ()를 사용 password_verify()하고 데이터베이스에 암호 해시를 저장하고 저장된 암호를 사용자가 입력 한 암호와 비교하여 확인합니다.

내 코드에서 볼 수 있습니다 : (userNameColumnName,passwordColumnName)userNameColumnName은 사용자 이름을 저장할 테이블의 열이고 passwordColumnName은 암호를 저장할 테이블의 열이며 문자 길이가 최소 60 자 이상인지 확인하십시오 255.

당신은 할 수없는이 같은 값을 삽입 "INSERT INTO관리자 VALUES ('$name','$password')난 당신이이어야 3.해야하지 않는 생각으로 당신이 당신의 TABL 전자 정확히 두 개의 필드가 없다면 connect.php을

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

다음 페이지

<?php include("connect.php");

    $errors=false;

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

    $fields = array("username","password");
    foreach($fields as $fieldname){
        if(!isset($_POST[$fieldname]) && empty($_POST[$fieldname])){

            echo "enter username and password";
            $errors = true;
        }
    }

    if(!$errors){

        $username = $_POST['username'];
        $password = $_POST['password'];

        $hash = password_hash($password);

        $sql = "INSERT INTO admin (userNameColumnName,passwordColumnName) VALUES(?,?)";

        $stmt = $conn->prepare($sql);
        $stmt->bind_param("ss",$username,$hash);
        if($stmt->execute()){

            echo "user added";
        }else{

            echo "error adding user";
            error_log("error".$conn->error); // go and check your error log what was the error
        }
    }

}

?>
<div class="col-md-12">
    <!-- Add admin -->
    <div class="box box-info">
        <div class="box-header with-border">
            <h3 class="box-title">Add admin</h3>
        </div>
        <!-- /.box-header -->
        <!-- form start -->
        <form id="adminForm" class="form-horizontal" action="" method = "POST">
            <div class="box-body">
                <div class="form-group">
                    <label for="inputName" class="col-sm-2 control-label">User 
                    name</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="inputName" 
                            placeholder="user name" name="username" required >
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputPassword3" class="col-sm-2 control-
                        label">Password</label>
                    <div class="col-sm-10">
                        <input type="password" class="form-control" id="inputPassword3" 
                            placeholder="Password" name="password" required>
                    </div>
                </div>
            </div>
            <!-- /.box-body -->
            <div class="box-footer">
                <input  type = "submit" class="btn btn-info pull-right save" name = "submit" value = "save">
            </div>
            <!-- /.box-footer -->
        </form>
    </div>
    <!-- /.box -->
</div>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

bash를 사용하여 sqlite 데이터베이스에 값 삽입

분류에서Dev

업데이트 삽입 쿼리를 사용하여 .csv 값을 데이터베이스에 삽입

분류에서Dev

PHP를 사용하여 데이터베이스에 값을 삽입 할 수 없습니다.

분류에서Dev

Excel에서 값을 삽입하여 Java를 사용하여 데이터베이스에 액세스

분류에서Dev

PHP PDO를 통해 MySQL 데이터베이스에 여러 값 삽입

분류에서Dev

implode를 사용하여 데이터베이스에 값을 삽입하는 방법

분류에서Dev

codeigniter를 사용하여 데이터베이스에 옵션 값을 삽입하는 방법

분류에서Dev

for each 루프를 사용하여 데이터베이스에 배열 값을 삽입하는 방법

분류에서Dev

PHP를 사용하여 데이터베이스에 삽입-한 행만 삽입

분류에서Dev

PHP를 사용하여 mysql 데이터베이스에 데이터 삽입

분류에서Dev

준비된 문을 사용하여 데이터베이스에 null 값 삽입 PHP MYSQL

분류에서Dev

PHP를 사용하여 데이터를 구문 분석하고 mysql 데이터베이스에 값을 삽입합니까?

분류에서Dev

MS Access 데이터베이스는 vba 및 SQL 쿼리를 사용하여 열에 값을 삽입합니다.

분류에서Dev

codeigniter를 사용하여 데이터베이스에 값을 삽입 할 수 없습니다.

분류에서Dev

EF를 사용하여 ASP.NET의 데이터베이스 필드에있는 값만 삽입합니다.

분류에서Dev

LINQ를 사용하여 데이터베이스에 삽입

분류에서Dev

PHP와 mysql을 사용하여 생성 된 행 값에 여러 jquery를 데이터베이스에 삽입하는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 데이터베이스의 단일 열에 여러 확인란 값을 삽입하는 방법

분류에서Dev

Ajax 및 PHP를 사용하여 데이터베이스 (mysql)에 삽입

분류에서Dev

다차원 배열 PHP를 사용하여 데이터베이스에 삽입

분류에서Dev

PHP를 사용하여 MySQL 데이터베이스에 배열 삽입?

분류에서Dev

청크를 사용하여 데이터베이스 Laravel에 데이터 삽입

분류에서Dev

Dart를 사용하여 Postgres 데이터베이스에 데이터 삽입

분류에서Dev

jquery를 사용하여 데이터베이스의 요소 값과 데이터를 텍스트 영역에 삽입

분류에서Dev

PHP MySQL : 루프를 반복하여 데이터베이스에 Json 응답 값 삽입

분류에서Dev

즉석에서 Java를 사용하여 MySql 데이터베이스에 setNull을 사용하여 null 값을 삽입 할 수 없습니까?

분류에서Dev

PHP 및 Codeigniter를 사용하여 데이터베이스에 데이터를 삽입하는 방법

분류에서Dev

PHP를 사용하여 mysql 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

분류에서Dev

PHP를 사용하여 MYSQL 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

Related 관련 기사

  1. 1

    bash를 사용하여 sqlite 데이터베이스에 값 삽입

  2. 2

    업데이트 삽입 쿼리를 사용하여 .csv 값을 데이터베이스에 삽입

  3. 3

    PHP를 사용하여 데이터베이스에 값을 삽입 할 수 없습니다.

  4. 4

    Excel에서 값을 삽입하여 Java를 사용하여 데이터베이스에 액세스

  5. 5

    PHP PDO를 통해 MySQL 데이터베이스에 여러 값 삽입

  6. 6

    implode를 사용하여 데이터베이스에 값을 삽입하는 방법

  7. 7

    codeigniter를 사용하여 데이터베이스에 옵션 값을 삽입하는 방법

  8. 8

    for each 루프를 사용하여 데이터베이스에 배열 값을 삽입하는 방법

  9. 9

    PHP를 사용하여 데이터베이스에 삽입-한 행만 삽입

  10. 10

    PHP를 사용하여 mysql 데이터베이스에 데이터 삽입

  11. 11

    준비된 문을 사용하여 데이터베이스에 null 값 삽입 PHP MYSQL

  12. 12

    PHP를 사용하여 데이터를 구문 분석하고 mysql 데이터베이스에 값을 삽입합니까?

  13. 13

    MS Access 데이터베이스는 vba 및 SQL 쿼리를 사용하여 열에 값을 삽입합니다.

  14. 14

    codeigniter를 사용하여 데이터베이스에 값을 삽입 할 수 없습니다.

  15. 15

    EF를 사용하여 ASP.NET의 데이터베이스 필드에있는 값만 삽입합니다.

  16. 16

    LINQ를 사용하여 데이터베이스에 삽입

  17. 17

    PHP와 mysql을 사용하여 생성 된 행 값에 여러 jquery를 데이터베이스에 삽입하는 방법은 무엇입니까?

  18. 18

    PHP를 사용하여 데이터베이스의 단일 열에 여러 확인란 값을 삽입하는 방법

  19. 19

    Ajax 및 PHP를 사용하여 데이터베이스 (mysql)에 삽입

  20. 20

    다차원 배열 PHP를 사용하여 데이터베이스에 삽입

  21. 21

    PHP를 사용하여 MySQL 데이터베이스에 배열 삽입?

  22. 22

    청크를 사용하여 데이터베이스 Laravel에 데이터 삽입

  23. 23

    Dart를 사용하여 Postgres 데이터베이스에 데이터 삽입

  24. 24

    jquery를 사용하여 데이터베이스의 요소 값과 데이터를 텍스트 영역에 삽입

  25. 25

    PHP MySQL : 루프를 반복하여 데이터베이스에 Json 응답 값 삽입

  26. 26

    즉석에서 Java를 사용하여 MySql 데이터베이스에 setNull을 사용하여 null 값을 삽입 할 수 없습니까?

  27. 27

    PHP 및 Codeigniter를 사용하여 데이터베이스에 데이터를 삽입하는 방법

  28. 28

    PHP를 사용하여 mysql 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

  29. 29

    PHP를 사용하여 MYSQL 데이터베이스에 데이터를 삽입 할 때 발생하는 문제

뜨겁다태그

보관