localhost上的相同脚本php不能在线工作

时间:2016-11-05 23:55:43

标签: php sql database

我的php脚本正在使用localhost,否则它无法在线工作(虚拟主机)

php版本和SQL一样

我不知道它有什么问题:

    <?php

error_log();

$host = 'localhost';
$user = 'root';
$pass = '';
$db   = 'controleestoque';

// conexão e seleção do banco de dados
$con = mysqlI_connect($host, $user, $pass, $db);

// GET ID
 if(isset($_GET['id']))
 {
    $idUsuario = $_GET['id'];

    $query = "SELECT * FROM usuarios WHERE idUsuario = '$idUsuario'";
    $qr = mysqli_query($con, $query) or die(mysqli_error());
    $ln = mysqli_fetch_assoc($qr);

    $nomeUsuario = $ln['nomeUsuario'];
    $celularUsuario = $ln['celularUsuario'];
    $emailUsuario = $ln['emailUsuario'];
    $dataBoleto = date("Y-m-d");
    $tipoPlano = "planoPrata";
    $valorBoleto = "120,00";


    /* Verifica se já tem um ID Boleto Repetido */
    while(true){

    $idBoleto = rand(1, 99999999999);
    $res = "SELECT * FROM boleto WHERE idBoleto = '$idBoleto'";
    $search = mysqli_query($con, $res);

    if(mysqli_num_rows($search) == 0){
    break;
    }
}

    /* Se não retornar com ID Boleto igual -> Continua */

    $sql = mysqli_query("INSERT INTO boleto (idBoleto, tipoPlano, valorBoleto, idUsuario, nomeUsuario, celularUsuario, emailUsuario, dataBoleto) values ('$idBoleto', '$tipoPlano', '$valorBoleto', '$idUsuario', '$nomeUsuario', '$celularUsuario', '$emailUsuario', '$dataBoleto')");

    header("Location:gerar_boletoPrata.php?id=$idBoleto");

 } /* Termina Isset Get ID */

 else {
     echo "
            <meta http-equiv='refresh' content='0; url=index1.php' />
            <script type='text/javascript'>alert ('Você precisa estar logado para visualizar esta página!!')</script>
     ";
     }
// END
?>

错误是:没有在数据库上插入,也没有为用户显示正确的$ idBoleto

有人可以帮我吗???

1 个答案:

答案 0 :(得分:1)

您从未将连接传递给此:

$sql = mysqli_query("INSERT INTO boleto ... ");

因此:

$sql = mysqli_query($con, "INSERT INTO boleto ... ");

并检查所有查询的错误:

你也开始严肃的SQL注入;使用准备好的声明:

最好在标题后添加exit;

header("Location:gerar_boletoPrata.php?id=$idBoleto");
exit;

否则,您的代码可能希望继续执行。

另请注意,mysqli_error()需要数据库连接作为参数。

  • mysqli_error($ CON)

根据the manual

  

字符串mysqli_error(mysqli $ link)

<强>脚注:

我建议您使用全部小写字母mysqli_connect而不是mysqlI_connect,因为大写I(i)可能会分散注意力。