簡體   English   中英

PHP在MySQL數據庫上提交錯誤信息(PHP + MySQL)

[英]PHP Submitting wrong information on a MySQL database (PHP+MySQL)

我一直遇到這個奇怪的錯誤,基本上發生的事情是我在Android上安裝了該應用程序,每當我嘗試添加一個新的“用戶”時,其中一個值(稱為“ Contacto”)有時是錯誤的,這是一個奇怪的部分它以完全隨機的方式發生,這是我的.php

<?PHP
$con=mysqli_connect("localhost","root","","proyecto");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

if(isset($_POST['txtNombre']) && isset($_POST['txtcontactousuarionuevo']) && 
   isset($_POST['txtPass']) && isset($_POST['txtprograma'])){

$nombreestudiante = $_POST['txtNombre'];
$contactoestudiante = $_POST['txtcontactousuarionuevo'];
$passestudiante = $_POST['txtPass'];
$programa = $_POST['txtprograma'];

$query = "INSERT INTO estudiante(Nombre, Contacto,  Id_Periodo_FK, Pass)
VALUES ('$nombreestudiante', $contactoestudiante, 4, '$passestudiante');"; 

$query .= "INSERT INTO estudiante_programa(EstudianteE_P_FK, ProgramaE_P_FK)
VALUES(LAST_INSERT_ID(), $programa)";


$result =mysqli_multi_query($con,$query);

if($result > 0){

    if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
        echo "success";
        exit;
    }
    echo "Insert Successfully";   
}
else{
    if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
        echo "failed";
        exit;
    }
    echo "Something Error";   
}
}

?>
<html>
<head><title>Insert | ProyectoBD</title></head>
   <body>
       <h1>Insert ProyectoBD| <a>Santiago Troitiño C - 201421697</a></h1>
       <form action="<?PHP $_PHP_SELF ?>" method="post">
        Nombre <input type="text" name="txtNombre" value=""/><br/>
        Contacto <input type="text" name="txtcontactousuarionuevo" value=""/><br/>
        Pass <input type="text" name="txtPass" value=""/><br/>
        <input type="submit" name="btnSubmit" value="Insert"/>
    </form>
</body>

我的應用程序有一個登錄屏幕和一個將其帶到注冊表單的按鈕,在該頁面(登錄頁面)上執行的.php如下所示:

<?PHP
include_once("connection.php"); 
if(isset($_POST['txtUsername']) && isset($_POST['txtPassword'])){

$username = $_POST['txtUsername'];
$password = $_POST['txtPassword'];
$query = "SELECT * FROM estudiante WHERE Nombre = '$username' 
    AND Pass = '$password'";

$result = mysqli_query($conn, $query);
if($result->num_rows > 0){ //has record. correct username and password
    echo "success";
    while($row = $result->fetch_assoc()) {
     echo " ". $row["Id_Estudiante"]. "";
     exit;
 }
    exit;
}
else{
    echo "Wrong username and password"; 
    exit;
    }
    exit;
}
?>


<html>
<head><title>Login | ProyectoBD</title></head>
<body>
    <h1>Login ProyectoBD | <a>Santiago Troitiño C - 201421697</a></h1>
    <form action="<?PHP $_PHP_SELF ?>" method="post">
        Nombre <input type="text" name="txtUsername" value="" placeholder="Ingresar Nombre" /><br/>
        Password <input type="password" name="txtPassword" value="" placeholder="Ingresar Pass" /><br/>
        <input type="submit" name="btnSubmit" value="Login"/>
    </form>
</body>
</html>

這些是該應用程序部分中唯一受到攻擊的.php文件... 正如您在該圖像上看到的那樣,數字“ 2147483647”總是在完全隨機的時間出現,我使用該數字注冊過一次,但是出現了kkeps

關於如何解決這個問題的任何想法? 謝謝!

數據庫中Contacto的數據類型是什么? 當您包含非數字字符時,是否會出現問題? 例如,如果您在數據庫中將電話號碼的數據類型作為數字類型(BIGINT,INT),並且您的用戶嘗試輸入VARCHAR字符,例如連字符,即“ 111-111-1111”,則可能導致數據庫保存該條目是數據類型可以容納的最高編號。 如果在使用非數字字符時發生此問題,請將Contacto的數據類型更改為VARCHAR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM