繁体   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