erro no inserir, alterar e eliminar

dt22

Membro
ola bom dia pessoal, eu estou a fazer um site e estou com algumas duvidas queria saber se alguém aqui sabe e me pode ajudar.

Esta me a dar este erro


Notice: Undefined index: acao in C:\xampp\htdocs\layout-susy-framework-master\produtos_admin.php on line 6

Notice: Undefined index: id in C:\xampp\htdocs\layout-susy-framework-master\produtos_admin.php on line 7

Notice: Undefined index: txt_categoria in C:\xampp\htdocs\layout-susy-framework-master\produtos_admin.php on line 9

e o código desta pagina é este

<?php
/*vai incluir as linhas de codigo do ficheiro conexao.php*/
include "conexao.php";

/*vai receber o valor da acao, do id e do txt_categoria*/
$acao = $_POST["acao"];
$id = $_POST["id"];

$tct_categoria = $_POST["txt_categoria"];

/*condicao para inserir*/
/*se inserir for igual a ok entao ele vai inserir*/
if ( $acao == "Inserir" )
{
$sql = "INSERT INTO categorias (categoria) VALUES ('txt_categoria')";
mysql_query($sql) or die ("Não foi possível inserir os dados");

print "<script type='text/javascript'> location.href='index.php?link=2'</script>";
}

/*condicao para alterar*/
/*se alterar for igual a ok entao ele vai fazer update dos dados*/
if ($acao == "Alterar" )
{
$sql = "UPDATE categorias SET categoria = '$txt_categoria' WHERE id_categoria = $id";
mysql_query($sql);
print "<script type='text/javascript'> location.href='index.php?link=2'</script>";
}

/*condicao para eliminar*/
/*se eliminar for igual a ok entao ele vai eliminar todos os dados*/
if ($acao == "Excluir" )
{
$sql = "DELETE FROM categorias WHERE id_categoria = $id";
mysql_query($sql);

print "<script type='text/javascript'> location.href='index.php?link=2'</script>";
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<title>Categorias</title>
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
</head>
<body>
<header class="site-header">
<div class="container">
<div class="logo"><a href="index.html"><img src="logotipo.png"></a></div>
<nav class="menu">
<ul>
<li><a href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></li>
<li><a href="categorias.html"><i class="fa fa-bars" aria-hidden="true"></i> Loja</a></li>
<li><a href="contactos.html"><i class="fa fa-envelope" aria-hidden="true"></i> Contactos</a></li>
<li><a href="login.html"><i class="fa fa-lock" aria-hidden="true"></i> Login</a></li>
</ul>
</nav>
</div>
</header>
<div class="container">
<div class="sidebar">
<ul>
<li><a href="categorias.php">Tabelas</a>
<ul>
<li><a href="categorias_admin.html">Categorias</a></li>
<li><a href="produtos_admin.html">Produtos</a></li>
<li><a href="clientes_admin.html">Clientes</a></li>
</ul>
</li>
</ul>
</div>
<div class="content">
<br>
<div>
<?php if($acao != ""){
$sql = mysql_query (" SELECT * form Categorias Where id_categoria = $id");
?>
<form id="form1" name="fomr1" method="post" action="<?php echo $PHP_SELF; ?>">
<!-- tabela de formulario -->
<table border="1" width="798" align="center" cellpadding="2" cellspacing="0">
<tbody>
<!-- 1ºlinha -->
<tr>
<!-- 1ºcoluna -->
<td width="138">Categoria: </td>
<!-- 2ºcoluna -->
<td width="646">
<!-- label -->
<label>
<input type="text" name="textfield" id="txt_categoria" size="35" value="<?php echo @mysql_result($sql, 0, categoria); ?>" />
</label>
</td>
</tr>
<!-- 2ºlinha -->
<tr>
<!-- 1ºcoluna -->
<td colspan="2">
<!-- botoes -->
<label>
<div align="center">
<!-- campo oculto -->
<!-- vai buscar o valor do id e guarga-o neste campo oculto -->
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<!-- vai buscar o valor da acao e guarga-a neste campo oculto -->
<input type="hidden" name="<?php echo $acao; ?>" value="ok" />
<!-- botao ok -->
<input type="submit" name="submit" value="OK" />
</div>
</label>
</td>
</tr>
</tbody>
</table>
</form>
</p>
<!-- else -->
<?php } else { ?>
<!-- 2ºparagrafo -->
<table width="94%" border="1" align="center" cellpadding="0" cellspacing="0">
<tbody>
<!-- 1ºlinha -->
<tr>
<!-- 1ºcoluna -->
<td width="90%">Categorias</td>
<!-- 2ºcoluna -->
<td colspan="2">
<div align="center">
Ação
</div>
</td>
</tr>
<!-- php para mostrar as categorias que estao na base de dados -->
<?php
$sql = mysql_query ("select * from categorias");
while ($coluna = mysql_fetch_array($sql)) {
?>
<!-- 2ºlinha -->
<tr>
<!-- 1ºcoluna -->
<td>
<?php
echo $coluna[categoria];
?>
</td>
<!-- 2ºcoluna -->
<td>
<!-- hiperligaçao para alterar -->
<!-- php que vai buscar o numero do id consoante a categoria que queremos alterar -->
<!-- parametros dados sao a variavel acao = Alterar e o id-->
<a href="?acao=Alterar&amp;id= <?php echo $coluna[id_categoria];?>">
<!-- imagem alterar -->
<i class="fa fa-pencil" aria-hidden="true" style="font-size: 30px;" border="0"></i>
</a>
</td>
<!-- 3ºcoluna -->
<td>
<!-- hiperligaçao para alterar -->
<!-- php que vai buscar o numero do id consoante a categoria que queremos eliminar -->
<!-- parametros dados sao o excluir = ok e o id-->
<a href="">
<!-- imagem eliminar -->
<i class="fa fa-times" aria-hidden="true" style="font-size: 30px;" border="0"></i>
</a>
</td>
</tr>
<!-- fechar a instruçao while -->
<?php } ?>
<!-- 3ºlinha -->
<tr>
<!-- 1ºcoluna -->
<td colspan="3">
<div align="right">
<!-- hiperligaçao para inserir -->
<a href="">
<!-- imagem inserir -->
<i class="fa fa-plus-square" aria-hidden="true" style="font-size: 30px;"></i>
</a>
</div>
</td>
</tr>
</tbody>
</table>
<!-- fechar a condiçao -->
<?php } ?></div>
</div>
</div>
<footer class="site-footer">
<div class="container">
<p></p>
</div>
</footer>
</body>
</html>
 
Hey, neste momento estou no telemóvel e não tenho como testar o teu código, mas parece que te falta a verificação de que o teu form foi enviado..

Descrição do erro (Manual php):

The notices above appear often when working with $_POST, $_GET or $_SESSION. For $_POST and $_GET you just have to check if the index exists or not before you use them.


DICA:
Código:
if(isset($_POST['submit'])){

}
 
É o que o @Ivo_R referiu.

Quanto ao resto do código, aconselhava-te a migrares de mysql para mysqli (mysql improved) ou PDO.
A extensão mysql do php é obsoleta e vai ser removida num futuro próximo.

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.

Outra coisa muito importante: valida os dados que recebes por input do utilizador antes de os tratares para evitares SQL-Injection.
 
O teu código php não está a reconhecer os campos "acao", "txt_categoria" e "id" que deveria receber com o post... Verifica a form do outro ficheiro, os elementos da form podem nao conter o campo "name" correcto ou então algo se passa com o envio desses dados...
 
Back
Topo