2016-07-10 3 views
-2

코드에 문제가 있습니다. 입력이 비어 있으면 필요합니다. 데이터베이스에서 아무 것도 실행하지 않고 모든 필드를 채우는 메시지를 보내십시오. 하루 종일 조사했지만 해결책을 제시 할 수 없습니다. 누군가 나를 도울 수 있기를 바랍니다.필드가 비어 있습니다. mysqli

필드가 비어 있으면 오류가 발생하고 데이터베이스에서 아무 것도 실행하지 않는 메시지를 보내려면 어떻게해야합니까?

<?php 
session_start(); 
if(isset($_SESSION['userSession'])!="") 
{ 
header("Location: me.php"); 
} 
include_once 'sistema/config.web.php'; 

if(isset($_POST['btn-login'])) 
{ 
$email = $MySQLi_CON->real_escape_string(trim($_POST['user_email'])); 
$upass = $MySQLi_CON->real_escape_string(trim($_POST['password'])); 

$query = $MySQLi_CON->query("SELECT * FROM users WHERE mail='$email'"); 
$row=$query->fetch_array(); 

if(password_verify($upass, $row['password'])) 
{ 
    $_SESSION['userSession'] = $row['id']; 
    header("Location: me.php"); 
} 
else 
{ 
    $msg = "Email o contraseña no encontrados"; 
} 

$MySQLi_CON->close(); 

} 

if(isset($_POST['btn-signup'])) 
{ 
$uname = $MySQLi_CON->real_escape_string(trim($_POST['user_name'])); 
$email = $MySQLi_CON->real_escape_string(trim($_POST['user_email'])); 
$upass = $MySQLi_CON->real_escape_string(trim($_POST['password'])); 
$new_password = password_hash($upass, PASSWORD_DEFAULT); 
$check_email = $MySQLi_CON->query("SELECT mail FROM users WHERE mail='$email'"); 
$count=$check_email->num_rows; 
if($count==0){ 
$query = "INSERT INTO users(username,mail,password) VALUES('$uname','$email','$new_password')"; 
if($MySQLi_CON->query($query)) 
{ 
$msge = "Registrado correctamente"; 
} 
else 
{ 
$msge = "Eror al registrarte"; 
} 
} 
else{ 
$msge = "Email en uso"; 
} 
$MySQLi_CON->close(); 
} 
?> 

답변

1

이 작업을 시도 할 수 있습니다 :

if(isset($_POST['btn-signup'])) { 

    $uname = $MySQLi_CON->real_escape_string(trim($_POST['user_name'])); 
    $email = ...... 
    $upass = ...... 

    /* Modified code starts */ 

    $valid = true; 

    if(empty($uname)) { 
     $msge[] = "Username is required."; 
     $valid = false; 
    } if(empty($email)) { 
     $msge[] = "email is required."; 
     $valid = false; 
    } if(empty($upass)) { 
     $msge[] = "Password is required."; 
     $valid = false; 
    } 

    /* Modified code ends */ 

    $new_password = ...... 
    $check_email =.... 
    $count = .... 

    /* Modified code starts again */ 

    if ($count > 0) { 
     $msge[] = "Email en uso"; 
     $valid = false; 
    } 

    if ($valid) { 

      $query = "INSERT INTO users(username,mail,password) VALUES('$uname','$email','$new_password')"; 
      if ($MySQLi_CON->query($query)) { 
      $msge = "Registrado correctamente"; 
      } else { 
       $msge = "Eror al registrarte"; 
      } 
     } 

    $MySQLi_CON->close(); 
    } 

을 마지막으로, 인쇄 경고 메시지 :

echo implode('<br/>', $msge); 
+0

Woow가, 감사, 제대로 일을 –

관련 문제