2017-12-15 1 views
-2

전자 메일 확인 및 거의 작동하는 가입 스크립트가 있습니다. 사용자 정보는 먼저 양식에서 "임시"테이블로 전송되며 전자 메일 확인 링크를 따르면 정보가 "임시"테이블에서 "최종"대상인 "인도"테이블로 이동합니다.PHP IF 메시지가 인쇄되지 않습니다.

확인 링크는 "confirmation.php"라는 파일입니다.

코드가 하나의 테이블에서 다른 테이블로 데이터를 보내고 있지만 "감사합니다. 등록이 이제 유효성을 검사했습니다."라는 메시지가 나타나면서 "Obrigado, o seu registo foi validado.", 포르투갈어가 인쇄되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

감사합니다. Confirmation.php

<?php 
include_once ('config.php'); 

$confirm_code = $_GET["confirm_code"]; 

$sql1 = mysqli_query($conn, "SELECT * FROM temp WHERE confirm_code = '$confirm_code'"); 
$result1= mysqli_fetch_array($sql1, MYSQLI_ASSOC); 

if(mysqli_num_rows($sql1) == 1) { 
    $query = mysqli_query($conn, "INSERT INTO india (confirm_code, name, password, email) SELECT confirm_code, name, password, email FROM temp WHERE confirm_code = '$confirm_code'"); 

    if($query) { 
     $del = mysqli_query($conn, "DELETE FROM temp WHERE confirm_code = '$confirm_code'"); 
     if($del) { 
      $msg = "Obrigado, o seu registo foi validado."; 
     }  
    } 
} else { 
    $msg2 = "Erro no registo"; 
} 
$conn->close(); 
?> 
+0

설명처럼

또한 매개 변수화 쿼리를 사용하십시오. –

+2

mysqli 함수를 사용하는 경우 변수를 무작위로 덤프하는 대신 보안을 위해 [매개 변수 바인드] (http://php.net/manual/en/mysqli-stmt.bind-param.php)를 참조하십시오. 쿼리. – cteski

+0

메시지와 함께 두 개의 변수를 설정했지만이 스크립트의 값을 인쇄하는 것은 없습니다. –

답변

0

이 같은 경우 조건에 mysqli_query($conn, "DELETE FROM temp WHERE confirm_code = '$confirm_code'");

을 시도

는 :(당신이

if(mysqli_query($conn, "DELETE FROM temp WHERE confirm_code = '$confirm_code'"))` 
{ 
    $msg = "Obrigado, o seu registo foi validado."; 
echo $msg; 
} 
+0

'$ msg'가 성공적으로 등록되지 않은 경우 다른 것으로 설정되어 있으므로'$ msg'를'if' 명령문의 바깥쪽에 에코하는 것이 더 낫습니다. – MCMXCII

1

당신은 대신 if(mysqli_num_rows($sql1) == 1) { 결과 사용해야합니다) 내가 생각하는 인쇄 놓쳤다 변수 : if(mysqli_num_rows($result1) == 1) {. 이 같은 읽을 수의 PHP 코드를 들여하십시오 How can I prevent SQL injection in PHP?

관련 문제