questao em erro de php e mysql (Sou beginner)

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:
Ninguem me pode ajudar?

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>
 
if ($result = $connector->query($insertQuery))

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??
 
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);

    }


}
?>
 
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:
Back
Topo