2016-06-07 4 views
0

웹캠 이미지를 기반으로 양식에 서명을 구현하려고합니다. 분명히 코드에 오류가 없지만 정보가 데이터베이스에 게시되지 않았습니다. 여기 정보가 데이터베이스에 게시되지 않습니다.

가 데이터베이스에 삽입 정보를 PHP 코드 내 인덱스 :

<?php 
if (isset($_POST['desc'])) { 
    if (!isset($_POST['iscorrect']) || $_POST['iscorrect'] == "") { 
     echo "Sorry, important data to submit your question is missing. Please press back in your browser and try again and make sure you select a correct answer for the question."; 
     exit(); 
    } 
    if (!isset($_POST['type']) || $_POST['type'] == "") { 
     echo "Sorry, there was an error parsing the form. Please press back in your browser and try again"; 
     exit(); 
    } 
    require_once("scripts/connect_db.php"); 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $name = mysqli_real_escape_string($connection, $name); 
    $name = strip_tags($name); 
    $email = mysqli_real_escape_string($connection, $email); 
    $email = strip_tags($email); 
    if (isset($_FILES['image'])) { 
     $name = $_FILES['image']['tmp_name']; 
     $image = base64_encode(
       file_get_contents(
         $_FILES['image']['tmp_name'] 
       ) 
     ); 
    } 
    $sql = mysqli_query($connection, "INSERT INTO users (name,email,image) VALUES ('$name', '$email','$image')")or die(mysqli_error($connection)); 
    header('location: index.php?msg=' . $msg . ''); 
    $msg = 'merge'; 
} 
?>  
<?php 
$msg = ""; 
if (isset($_GET['msg'])) { 
    $msg = $_GET['msg']; 
} 
?> 
    <!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Licenta Ionut</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script> 
     <!-- font files --> 
     <link href='//fonts.googleapis.com/css?family=Muli:400,300' rel='stylesheet' type='text/css'> 
     <link href='//fonts.googleapis.com/css?family=Nunito:400,300,700' rel='stylesheet' type='text/css'> 
     <!-- /font files --> 
     <!-- css files --> 
     <link href="css/style.css" rel='stylesheet' type='text/css' media="all" /> 
     <link href="web.js" rel='stylesheet' type='text/css' media="all" /> 
     <script type="text/javascript" src="web.js"></script> 
     <!-- /css files --> 
    </head> 
    <body> 
     <p style="color:#06F;"><?php echo $msg; ?></p> 
     <h1>LogIn with Webcam Password</h1> 
     <div class="log"> 
      <div class="content1"> 
       <h2>Sign In Form</h2> 
       <form> 
        <input type="text" name="userid" value="USERNAME" onfocus="this.value = '';" onblur="if (this.value == '') { 
            this.value = 'USERNAME'; 
           }"> 
        <input type="password" name="psw" value="PASSWORD" onfocus="this.value = '';" onblur="if (this.value == '') { 
            this.value = 'PASSWORD';}"> 
        <div class="button-row"> 
         <input type="submit" class="sign-in" value="Sign In"> 
         <input type="reset" class="reset" value="Reset"> 
         <div class="clear"></div> 
        </div> 
       </form> 
      </div> 
      <div class="content2"> 
       <h2>Register</h2> 
       <form action="index.php", name="index.php" method="post" enctype="multipart/form-data"> 
        <input type="text" id="name" name="name" value="Nume"> 
        <input type="text" id="email" name="email" value="EmailAdress"> 
        <br> 

        <script type="text/javascript" src="webcam.js"></script> 
        <script language="JavaScript"> 
     document.write(webcam.get_html(320, 240)); 
        </script> 
        <div class="button-row"> 
         <input class="sign-in" type=button value="Configure" onClick="webcam.configure()" class="shiva"> 
         <input class="reset" type="submit" value="Register" id="image" onClick="take_snapshot()" class="shiva"> 
        </div> 
       </form>  
      </div> 
      <div class="clear"></div> 
     </div> 
    </body> 
</html> 

을 그리고 여기에 데이터베이스에 연결하기위한 스크립트입니다 : 내가 코드에서 오류를 발견하지 않습니다

<?php 

$db_host = "localhost"; 
// Place the username for the MySQL database here 
$db_username = "Ionut"; 
// Place the password for the MySQL database here 
$db_pass = "1993"; 
// Place the name for the MySQL database here 
$db_name = "users"; 

// Run the connection here 
$connection=mysqli_connect("$db_host","$db_username","$db_pass") or die (mysqli_connect_error()); 
mysqli_select_db($connection,"$db_name") or die ("no database"); 
?> 

및 나는 너의 충고/도움이 필요해!

내 문제에 대해 관심을 가져 주셔서 감사합니다.

+0

'ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); PHP 스크립트 상단에 error_reporting (E_ALL); 오류를 표시합니까? –

+0

$ _POST [ 'desc']'가 실제로 존재하는지 확인하는 것과 같이 모든 기본 디버깅을 완료 했습니까? 또한 [SQL 주입 공격] (http://bobby-tables.com)에 취약합니다. 탈출 호출을 잘못 사용하고 있습니다 (** 탈출 문자열을 나중에 조작하지 마십시오. 이탈시 위험에 처합니다). 게다가 업로드가 실제로 성공했는지 확인하는 것도 결코 어렵지 않습니다. $ _FILES에 정보가 없기 때문에 아무 것도 의미하지 않습니다. 실패한 업로드는 데이터를 $ _FILES에 저장합니다. –

+1

@NanaPartykar : 무의미한. 이와 같은 따옴표를 사용하는 것은 단순한화물 컬트 프로그래밍이지만 값을 변경하지는 않습니다. –

답변

1

이와 같은 문제를 해결하려면 문제를 부분으로 나누십시오.

(1) 첫째, PHP 파일을받는 이유는 무엇입니까? PHP 파일의 상단에 삽입 :

<?php 
    echo '<pre>'; 
    print_r($_POST); 
    echo '</pre>'; 
    die('-----------------------------------'); 
그 문제를 공개하지 않는 경우, 다음 단계는 PHP 파일을 복제하고 두 번째 사본, HARD CODE는 정보를 당신이 될 것입니다 (2)

그런 다음

<?php 
    $_POST['desc'] = 'TEST - Description'; 
    $_POST['iscorrect'] = 'what it should be'; 
    $_POST['type'] = 'TEST - Type'; 
    etc 

, 실행 파일을 수정하고 데이터가 제출되는 경우 참조 : 상단에 제출 (일반적으로 제출 될 것 PHP 데이터를 대체).

(3) 문제가 해결되지 않으면 중복 된 PHP 파일을 계속 사용하고 파일이 손상되는 곳을 여러 위치에 echo 문을 추가하십시오. 예 :

$name = $_POST['name']; 
$email = $_POST['email']; 
$name = mysqli_real_escape_string($connection, $name); 
echo 'HERE 01'; 
$name = strip_tags($name); 
$email = mysqli_real_escape_string($connection, $email); 
$email = strip_tags($email); 
echo 'HERE 02'; 
if (isset($_FILES['image'])) { 
    $name = $_FILES['image']['tmp_name']; 
    $image = base64_encode(
      file_get_contents(
        $_FILES['image']['tmp_name'] 
      ) 
    ); 
} 
echo 'HERE 03'; 
$sql = mysqli_query($connection, "INSERT INTO users (name,email,image) VALUES ('$name', '$email','$image')")or die(mysqli_error($connection)); 
echo 'HERE 04: $sql = ' .$sql; 
+0

정말로 조언 해 주셔서 감사합니다! 매우 유용합니다. 나는 내 문제를 해결하기를 희망한다. 다시 감사합니다! :) –

관련 문제