1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

questao em erro de php e mysql (Sou beginner)

Discussão em 'Web Development' iniciada por Fil__, 2 de Fevereiro de 2009. (Respostas: 8; Visualizações: 733)

  1. Fil__

    Fil__ Power Member

    Malta tenho este codigo

    Código:
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <?php
    
    require_once('../includes/DbConnector.php');
    
    if ($HTTP_POST_VARS){
    
    $connector = new DbConnector();
    
    $insertQuery = "INSERT INTO teste (title,tagline,section,thearticle) VALUES (".
    "'".$HTTP_POST_VARS['titulo']."', ".
    "'".$HTTP_POST_VARS['tag']."', ".
    $HTTP_POST_VARS['seccao'].", ".
    "'".$HTTP_POST_VARS['artigo']."')";
    
    if ($result = $connector->query($insertQuery)){
    
    echo '<center><b>Artigo adicionado</b></center><br>';
    
    }else{
    
    exit('<center>Erro!</center>');
    
    }
    
    }
    ?>
    
    <body>
    <form name="form1" method="post" action="new.php">
            <p>&nbsp;Titulo:
              <input name="title" type="text" id="title">
            </p>
            <p>&nbsp;Tag:
              <input name="tagline" type="text" id="tagline">
            </p>
            <p>&nbsp;Secção:
              <input name="section" type="text" id="section">
            </p>
            <p>&nbsp;Artigo:
              <textarea name="thearticle" cols="50" rows="6" id="thearticle"></textarea>
            </p>
            <p align="center">
              <input type="submit" name="Submit" value="Submit">
            </p>
    </form>
    </body>
    </html>
    
    Quando corro o ficheiro php aparece no browser um pedaço de codigo

    Código:
    query($insertQuery)){  '[B]Artigo adicionado
    [/B]
    ';  }else{  //  exit('Erro!');  }  } ?>   
    
    e depois o formulario de preenchimento. Nao sei o que estarei a fazer de errado, sera alguma coisa a ver com as ligaçoes a db?
    Ou sera que estou a fazer mal algum pedaço de php?
    Podem ajudar?
    Desculpem lá a nabice :x2:
     
    Última edição: 2 de Fevereiro de 2009
  2. Fil__

    Fil__ Power Member

    Ninguem me pode ajudar?
     
  3. p3dro

    p3dro Power Member

    Tenta alterar esta linha

    PHP:
    if ($result $connector->query($insertQuery)){
    para isto

    PHP:
    if ($connector->query($insertQuery)){
    E cuidado com a maneira como constróis a tua query, podes ter problemas com o sql injection ...

    Toma também em atenção que estás a escrever essa mensagem antes do <body>
     
  4. Xikinho90

    Xikinho90 Power Member

    E ja agora o HTTP_POST_VARS já não se usa, altera para _POST
     
  5. Fil__

    Fil__ Power Member

    thanks pelas dicas pessoal mas fica igual, nao mudou nada :(
     
  6. geoblast

    geoblast Power Member

    Primeiro, neste if estás a fazer uma atribuição e não uma comparação. Quase de certeza, o que pretendes é verificar o retorno do teu query e aí deverá ser

    PHP:
    if ($result == $connector->query($insertQuery))
    Que retorno tens com o $connector->query($insertQuery)?? Se for um true ou um false, aí deverá colocar

    PHP:
    if ($connector->query($insertQuery))
    Já agora, podes postar aí a classe dbconnector, para verificar o código??
     
  7. Fil__

    Fil__ Power Member

    Aqui esta a class DbConnector

    Código:
    <?php
    require_once 'SystemComponent.php';
    
    class DbConnector extends SystemComponent {
    
        var $theQuery;
        var $link;
    
        function DbConnector(){
    
            $settings = SystemComponent::getSettings();
    
            $host = $settings['localhost'];
            $db = $settings['teste'];
            $user = $settings['teste'];
            $pass = $settings[''];
    
            $this->link = mysql_connect($host, $user, $pass);
            mysql_select_db($db);
            register_shutdown_function(array(&$this, 'close'));
    
        }
    
        function query($query) {
    
            $this->theQuery = $query;
            return mysql_query($query, $this->link);
    
        }
    
        function fetchArray($result) {
    
            return mysql_fetch_array($result);
    
        }
    
        function close() {
    
            mysql_close($this->link);
    
        }
    
    
    }
    ?>
    
     
  8. Ignoto_Deo

    Ignoto_Deo Power Member

    Tira as plicas

    Tira as plicas e troca por aspas
     
  9. mazinhu

    mazinhu Power Member

    Código:
    $insertQuery = "INSERT INTO teste (title,tagline,section,thearticle) VALUES (".
    "'".$HTTP_POST_VARS['titulo']."', ".
    "'".$HTTP_POST_VARS['tag']."', ".
    $HTTP_POST_VARS['seccao'].", ".
    "'".$HTTP_POST_VARS['artigo']."')";
    Tenta trocar esses HTTP_POST_VARS por variaves que vc recebe com o metodo $_POST.
    Código:
    $titulo = $_POST['titulo'];.
    $tag = $_POST['tag'];
     $seccao = $_POST['seccao'];
    $artigo = $_POST['artigo'];
    
    
    $insertQuery = "INSERT INTO teste (title,tagline,section,thearticle) VALUES (".
    $titulo, $tag, $seccao, $artigo)";
    Ficaria algo assim:
    Código:
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <?php
    
    require_once('../includes/DbConnector.php');
    
    $connector = new DbConnector();
    
    $titulo = $_POST['titulo'];
    $tag = $_POST['tag'];
    $seccao = $_POST['seccao'];
    $artigo = $_POST['artigo'];
    
    
    
    
    
    $insertQuery = "INSERT INTO teste (title,tagline,section,thearticle) VALUES ("$titulo, $tag, $seccao, $artigo)";
    if ($result == $connector->query($insertQuery)){
    
    echo "<center><b>Artigo adicionado</b></center><br>";
    
    }else{
    
    exit('<center>Erro!</center>');
    
    }
    
    ?>
    
    <body>
    <form name="form1" method="post" action="new.php">
            <p>&nbsp;Titulo:
              <input name="titulo" type="text" id="titulo">
            </p>
            <p>&nbsp;Tag:
              <input name="tag" type="text" id="tag">
            </p>
            <p>&nbsp;Secção:
              <input name="seccao" type="text" id="seccao">
            </p>
            <p>&nbsp;Artigo:
              <textarea name="artigo" cols="50" rows="6" id="artigo"></textarea>
            </p>
            <p align="center">
              <input type="submit" name="Submit" value="Submit">
            </p>
    </form>
    </body>
    </html>
    
    Não testei o codigo!
     
    Última edição: 5 de Fevereiro de 2009

Partilhar esta Página