Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

helio aranha

sistema de comentario (nao esta a conectar com a base de dados) - PHP

Recommended Posts

  Em 06/07/2016 at 13:47, helio aranha disse:

Tentei novamente ele mandou a msg:

 

OBRIGADO SEU COMENTARIO FOI ENVIADO

 

fiz um refresh no browser ele retomou a msg:

 

ERRO NO POST

 

acho que ja esta correcto, o mais estranho e que n grava dados na base de dados

 

ja nao sei o que fazer galera

Antes do Refresh ele gravou alguma coisa?

O erro no post é pq vc deu refresh sem enviar nada (ele não deu submit)

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 06/07/2016 at 13:47, helio aranha disse:

Tentei novamente ele mandou a msg:

 

OBRIGADO SEU COMENTARIO FOI ENVIADO

 

fiz um refresh no browser ele retomou a msg:

 

ERRO NO POST

 

acho que ja esta correcto, o mais estranho e que n grava dados na base de dados

 

ja nao sei o que fazer galera

comentario.html
 
<html>
<head>
<meta charset="utf8">
<title>sistema de comentario - dela helio</title>
    
</head>
 
 
<body>
 
      <form name="commentform" method="post" action="insertcomment.php">
 
Nome: <input type="text" name="nome" id="nome"/><br/><br/>
Email: <input type="text" name="email"id="email"/><br/><br/>
website: <input type="text" name="website"id="website"/><br/><br/>
comentario: <textarea name="comentario"id="comentario"></textarea><br/><br/>
 
<input type="submit" name="submit" value="Enviar Comentario"/>
 
      </form>
</body>
</html>

Eu acho q vc esqueceu os IDs dos campos, testa agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

É erroneo esse if($_POST) pois sempre quando você abrir a página não terá um $_POST, certo?

 

O certo seria colocar um name no botão de submit e colocar o if desta forma:

 

if(isset($_POST['submit']))

 

isset = is set, significa basicamente que o post existe. No caso, os id's não importam nada no formulário. É sempre importante também validar os dados, com o isset.

 

Copia a parte do meu código e cola no do Padawan, pq ainda tem uns errinhos no dele, depois manda aqui o código como ficou!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 06/07/2016 at 16:34, Insanity disse:

É erroneo esse if($_POST) pois sempre quando você abrir a página não terá um $_POST, certo?

 

O certo seria colocar um name no botão de submit e colocar o if desta forma:

 

if(isset($_POST['submit']))

 

isset = is set, significa basicamente que o post existe. No caso, os id's não importam nada no formulário. É sempre importante também validar os dados, com o isset.

 

Copia a parte do meu código e cola no do Padawan, pq ainda tem uns errinhos no dele, depois manda aqui o código como ficou!

Mas então, eu uso dessa forma (sem o isset) quando não preciso validar múltiplos formulários em uma página e funciona O.o não entendo o porque não funcionar

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 06/07/2016 at 16:34, Insanity disse:

É erroneo esse if($_POST) pois sempre quando você abrir a página não terá um $_POST, certo?

 

O certo seria colocar um name no botão de submit e colocar o if desta forma:

 

if(isset($_POST['submit']))

 

isset = is set, significa basicamente que o post existe. No caso, os id's não importam nada no formulário. É sempre importante também validar os dados, com o isset.

 

Copia a parte do meu código e cola no do Padawan, pq ainda tem uns errinhos no dele, depois manda aqui o código como ficou!

O erro está nas aspas:

$nome = $_POST["nome"];
$email = $_POST["email"];
$website = $_POST["website"];
$comentario = $_POST["comentario"];

Tem que ser com aspas simples:

$nome = $_POST['nome'];
$email = $_POST['email'];
$website = $_POST['website'];
$comentario = $_POST['comentario'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja alterei mais tambem n grava nada na base de dados o codigo ficou assim:

 

comentario.html

 

<html>
<head>
<meta charset="utf8">
<title>sistema de comentario - dela helio</title>
</head>
<body>
<form name="commentform" method="post" action="insertcomment.php">
Nome: <input type="text" name="nome" id="nome"/><br/><br/>
Email: <input type="text" name="email" id="email"/><br/><br/>
website: <input type="text" name="website" id="website"/><br/><br/>
comentario: <textarea name="comentario" id="comentario"></textarea><br/><br/>
<input type="submit" name="submit" value="Enviar Comentario"/>
</form>
</body>
</html>
--------------------------------------------
insertcomment.php
<?php
$hostname = 'localhost';
$user = 'root';
$pass = '';
$db = 'comentario_tb';
$conexao = mysqli_connect($hostname, $user, $pass, $db);
if(isset($_POST['submit']))
{
$nome = $_POST['nome'];
$email = $_POST['email'];
$website = $_POST['website'];
$comentario = $_POST['comentario'];
mysqli_query($conexao,"INSERT INTO comentario_pessoa(nome, email, website, comentario)
VALUE('$nome', '$email', '$website', '$comentario')"or die (mysqli_error()));
echo "OBRIGADO SEU COMENTARIO FOI ENVIADO";
}else{
echo "ERRO NO POST";
}
?>
Uma dica: estou a usar o wamp server sera que e algum problema de configuração, ou e melhor instalar outro servidor web talvez o xamp ou easephp

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = "INSERT INTO comentario_pessoa(nome, email, website, comentario) VALUE('$nome', '$email', '$website', '$comentario')";


// EXECUTANDO A QUERY TEMOS 2 PARAMETROS (CONEXAO, QUERY)

$executa = mysqli_query ($conexao, $sql or die (mysqli_error()));


// FECHANDO A CONEXAO COM O BANCO DE DADOS

mysqli_close($conexao);


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 07/07/2016 at 07:58, helio aranha disse:

 

ja alterei mais tambem n grava nada na base de dados o codigo ficou assim:

 

comentario.html

 

<html>
<head>
<meta charset="utf8">
<title>sistema de comentario - dela helio</title>
</head>
<body>
<form name="commentform" method="post" action="insertcomment.php">
Nome: <input type="text" name="nome" id="nome"/><br/><br/>
Email: <input type="text" name="email" id="email"/><br/><br/>
website: <input type="text" name="website" id="website"/><br/><br/>
comentario: <textarea name="comentario" id="comentario"></textarea><br/><br/>
<input type="submit" name="submit" value="Enviar Comentario"/>
</form>
</body>
</html>
--------------------------------------------
insertcomment.php
<?php
$hostname = 'localhost';
$user = 'root';
$pass = '';
$db = 'comentario_tb';
$conexao = mysqli_connect($hostname, $user, $pass, $db);
if(isset($_POST['submit']))
{
$nome = $_POST['nome'];
$email = $_POST['email'];
$website = $_POST['website'];
$comentario = $_POST['comentario'];
mysqli_query($conexao,"INSERT INTO comentario_pessoa(nome, email, website, comentario)
VALUE('$nome', '$email', '$website', '$comentario')"or die (mysqli_error()));
echo "OBRIGADO SEU COMENTARIO FOI ENVIADO";
}else{
echo "ERRO NO POST";
}
?>
Uma dica: estou a usar o wamp server sera que e algum problema de configuração, ou e melhor instalar outro servidor web talvez o xamp ou easephp

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 07/07/2016 at 16:21, helio aranha disse:

 

Testei o codigo a cima citado e deu esse erro:

 

( ! ) Parse error: syntax error, unexpected end of file in C:\wamp\www\comentarios\insertcomment.php on line 23

 

Qual código vc testou q deu esse erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está fazendo isso :

mysqli_query($conexao,"INSERT INTO comentario_pessoa(nome, email, website, comentario)
VALUE('$nome', '$email', '$website', '$comentario')"or die (mysqli_error()));

O certo é deixar o mysqli_error() fora do mysqli_query, pq assim como você está fazendo, está indo o mysqli_error() com parâmetro, o certo é deixar ele fora, desta forma:

mysqli_query($conexao,"INSERT INTO comentario_pessoa(nome, email, website, comentario)
VALUE('$nome', '$email', '$website', '$comentario')") or die (mysqli_error());

Use uma variável reservada para a query, como eu falei... Assim deixa o código mais limpo e legível, evitando esse tipo de erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.