+ Responder ao Tópico



  1. #1

    Padrão mensagem de erro

    Não estou conseguindo desvendar um erro. Tenho o seguinte código:


    $redirect = $_SESSION['PrevUrl'];
    $query = sprintf("SELECT login, pass_md5, gid, id FROM usuarios_incaper WHERE login='%s' AND pass_md5='%s'",$login,$pass_md5);
    $requestBD = mysql_query($query,$conn1) or die(mysql_errno());
    $ok = mysql_num_rows($requestBD);


    if ($ok)
    {
    $linha = mysql_fetch_assoc($requestBD);
    $_SESSION['aceito']=true;
    $_SESSION['gid']=$linha['gid'];
    $_SESSION['uid']=$linha['id'];






    O arquivo de conexão com o banco está da seguinte maneira?




    $user="usuario"
    $pass="senha"
    $host="host"


    $bd="nome"


    $conn1 = new mysqli($host, $user, $pass, $bd);
    if (mysqli_connect_errno()) trigger_error(mysqli_connect_error());






    Alguém pode me ajudar?


    A mensagem de erro é a seguinte: ( ! ) Warning: mysqli_query() expects parameter 1 to be mysqli, string given in F:\wamp\www\propostas\admin\login2.php on line 30

  2. #2

    Padrão Re: mensagem de erro

    Me desculpa se eu não souber explicar direito porque meu php tá meio enferrujado.
    Mas vamos lá, resumindo você começou usando a função mysqli e depois passou a usar mysql por isso ele retorna este erro.

    Você tem 2 opções:

    Trocar o tipo de conexão para mysql:

    $conn1=mysql_connect($host, $user, $pass)or die ("Erro na conexao");
    mysql_select_db($bd)or die ("Erro na selecao do banco de dados");

    Ou trocar o restante das funções para mysqli:

    mysql_query troca por mysqli_query
    mysql_errno troca por mysqli_errno
    mysql_num_rows troca por mysqli_num_rows
    mysql_fetch_assoc troca por mysqli_fetch_assoc

    Outro detalhe muito importante que você deve observar:
    mysql_query(consulta, identificação/conexão).
    No seu caso esta correto, mas se for trocar as funções para mysqli_query
    voce deve inverter as variaveis:
    mysqli_query(identificação/conexão, consulta).

    Espero que ajude!

  3. #3

    Padrão Re: mensagem de erro

    Oi eeds,
    Ao usar o mysqli, se eu inverter as variaveis:
    mysqli_query(identificação/conexão, consulta), ele não executa nada, nem consigo me logar. Se deixar da forma contrária, aparecem os erros:

    ! ) Warning: mysqli_query() expects parameter 1 to be mysqli, string given in F:\wamp\www\propostas\admin\login2.php on line 30
    Call Stack
    # Time Memory Function Location
    1 0.0010 149096 {main}( ) ..\login2.php:0
    2 0.0300 512576 mysqli_query ( ) ..\login2.php:30

    ( ! ) Warning: mysqli_error() expects exactly 1 parameter, 0 given in F:\wamp\www\propostas\admin\login2.php on line 30
    Call Stack
    # Time Memory Function Location
    1 0.0010 149096 {main}( ) ..\login2.php:0
    2 0.0340 512688 mysqli_error ( ) ..\login2.php:30

  4. #4

    Padrão Re: mensagem de erro

    Da forma correta não aparece nada porque nenhum erro é gerado no código.
    Não é que ele não executa nada é que nenhum resultado foi gerado.
    Já da forma contraria ele gera este erro ai, se você não consegue logar é porque ta faltando algum parâmetro para concluir o login.

    essas variáveis do sprintf = $login,$pass_md5 você pega os valores de onde ? via formulário ? se for adiciona um "echo" na sua consulta!!!

    logo abaixo da consulta:

    echo $query;

    e veja se ela esta correta, caso esteja coloque um echo nos parâmetros que retorna do banco de dados!!

    echo $linha['gid'];
    echo $linha['id'];

    veja se o retorno esta correto !

    Caso precise, pode postar o código todo pra eu te ajudar !
    Lembrando que copiei seu código e testei aqui e com as alterações que mencionei antes funcionou perfeitamente, Criei até uma tabela teste com os campos da consulta.

  5. #5

    Padrão Re: mensagem de erro

    Está da forma correta, creio eu. No entanto não consigo efetuar o login agora. Não mexi no arquivo de configuração. Ele está ok. Olhe o código todo, por favor.

    <?php include ("topo.php");?>


    <?php
    require_once '../../vendor/autoload.php';
    Dotenv::load(__DIR__);
    include_once("../config2.php");
    if (!isset($_SESSION)) {
    session_start();
    }






    if (isset($_GET['s'])) {
    $_SESSION['PrevUrl'] = $_GET['s'];
    } else {
    $_SESSION['PrevUrl'] = '';
    }


    if (isset($_POST['login']) && $_POST['login'] != "")
    {
    $login = $_POST['login'];
    $pass_md5 = MD5($_POST['pass_md5']);


    $login = addslashes($login);
    $pass_md5 = addslashes($pass_md5);


    $redirect = $_SESSION['PrevUrl'];


    //$query = "SELECT login, pass, gid, id FROM usuarios_incaper WHERE login='" . $login . "' AND pass='" . $pass . "'";
    $query = sprintf("SELECT login, pass_md5, gid, id FROM usuarios_incaper WHERE login='%s' AND pass_md5='%s'",$login,$pass_md5);
    $requestBD = mysqli_query($conn1, $query) or die(mysqli_error());
    $ok = mysqli_num_rows($requestBD);




    if ($ok)
    {
    $linha = mysqli_fetch_assoc($requestBD);
    $_SESSION['aceito']=true;
    $_SESSION['gid']=$linha['gid'];
    $_SESSION['uid']=$linha['id'];


    header ("Location: index.php" . $redirect);
    //header ("Location: index.php");
    exit();
    } else
    {
    $_SESSION['aceito']=false;
    //header ("Location: login2.php?err=1&s=''" . $redirect);
    header ("Location: login2.php" . $redirect);
    exit();
    }


    }


    //print "<pre>"; print_r ($_SERVER); print "</pre>";
    ?>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. Transitional//EN">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <?php @header("Content-Type: text/html; charset=utf-8",true); ?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


    <link rel="stylesheet" type="text/css" href="../css/estilo.css" />
    <link type="text/css" href="../css/estilo2.css" rel="stylesheet" />
    <script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="../js/jquery-ui-1.7.2.custom.min.js"></script>


    <style type="text/css">
    <!--
    .style4 {
    color: #FFFFFF;
    font-weight: bold;
    font-size: 12px;
    }
    body {
    background-color: #639A9C;
    }
    .style5 {
    font-size: 16px;
    font-weight: bold;
    color: #FF0000;
    }


    -->
    </style>


    </head>
    <body>


    <table border=0 cellpadding="0" cellspacing="0" style="HEIGHT:100%;WIDTH:100%;" bgcolor="#639A9C">
    <tr align="center" bottom="middle">
    <td>














    <!--<form action="login2.php<?php echo ((isset ($_GET['s'])) ? '?s=' . $_GET['s'] : ''); ?>" method="post">-->
    <form action="login2.php" method="post">
    <div align="center">








    </div>


    <p>&nbsp;</p>
    <table width="60%" border="1">
    <tr>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><p>&nbsp;</p>
    <p><img src="../images/addedit.png" width="612" height="100"></p>
    <table width="70%" border="0">


    <tr>
    <td bgcolor="#CC3300"><div align="center" class="style4">Utilize seu login e senha
    (conta de e-mail Incaper)<br>
    para acesso ao formul&aacute;rio de cadastro.</div></td>
    </tr>
    <tr>
    <td align="center" valign="middle"><div id="caixagrande" class="ui-widget-content ui-corner-all">
    <div id="caixapequena" class="ui-widget-content ui-corner-all">
    <table width="200" border="0">
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td><div align="right"><strong>Login: </strong></div></td>
    <td><input type="login" name="login" value=""/></td>
    <td><strong>@incaper.es.gov.br</strong></td>
    </tr>
    <tr>
    <td><div align="right"><strong>Senha: </strong></div></td>
    <td><input name="pass_md5" type="password" value=""/></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><div align="center">
    <input name="submit" type="submit" value="Entrar" class="ui-state-default ui-corner-all" />
    </div></td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </div>
    </div></td>
    </tr>
    </table>
    <br>
    <blockquote>
    <p align="center"><span class="style2"> <strong>Observa&ccedil;&atilde;o:</strong> <br />
    <br>
    <span class="style5">Caso n&atilde;o consiga acessar o Capri com o seu &quot;login&quot; e senha,<br />
    entre em contato com o CPD do Incaper </span>. <br>
    (CPD: 3636-9833)</span></p>
    <table width="95%" border="0">
    <tr>
    <td height="30" bgcolor="#DAEBEB"><div align="center"><a href="http://www.incaper.es.gov.br/capri/index.php"><strong>Retornar ao menu inicial do Capri</strong></a><strong></strong></div></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    </blockquote>
    <hr />


    <?php include ("rodape.php");?> </td>
    </tr>
    </table>


    </form>
    <div align="center" class="style109"></div>








    <?php include_once("footer.php"); ?>




    </td>
    </tr>
    </table>
    </body>
    </html>