Jump to content

[Resolvido] Editar registo de dados de uma conta criada PHP+MySQL


Recommended Posts

Posted

Boa Tarde pessoal

Eu estou aqui com um problema urgente. eu estou a criar um metodo de edição e eliminação de contas criadas num website.

O código que eu tenho foi inspirado em grande parte deste video /http://rafaelcouto.com.br/artigos/php_sistema_de_cadastro_2/acontece que fiz as alterações necessárias e não consigo editar os dados por causa deste erro :

Citação

 

Notice: Undefined variable: error in C:\xampp\htdocs\pap2014\cliente.php on line 137

 

Liga.php

<?php
$connect = mysql_connect('localhost','root','');
$db = mysql_select_db('web_clientes');
?>

Index.php

<?php
// Arquivo de conexão com o banco de dados
include("liga.php");
// Script para restringir página
include("password.php");
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>Cabeleireiro Preto e Prata - Site Oficial © </title>
<!--CSS-->
<link rel="stylesheet" href="estilo.css" type= "text/css" media="screen">
</head>
<body>
<div id="conteudo">
<br>
<h2 align="center">ADMINISTRADOR</h2>
<p align="center">Contas Criadas </p>
<br>
<?php
// Seleciona os clientes da bd
$sql = mysql_query("SELECT * FROM conta");
echo "<table align=center border= 0>";
while($clientes = mysql_fetch_object($sql)) {
echo "<tr><td><a href='cliente.php?login=".$clientes->login."'>".$clientes->nome."</a></td></tr>";
}
echo "</table>";
?>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<a href="home.html"><img src="home.jpg" align="right"></a>
</table>
</div>

Cliente.php

<?php
include("liga.php");
// Script para restringir página
include("password.php");
$login = $_GET['login'];
$acao = $_GET['acao'];
// ACAO DE EDITAR CLIENTE
if ($acao == "editar") {
// Recupera as novas informações do cliente
$email = $_POST['email'];
$contactos = $_POST['contactos'];
$localidade = $_POST['localidade'];
// Email
if (!preg_match("/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$/", $email)) {
$error[1] = "Preencha com um email válido";
}
// Telefone
if ($contactos == "") {
$error[2] = "Preencha o campo telefone";
} elseif (!preg_match("/^[0-9]{9} $/", $contactos)) {
$error[2] = "Telefone em formato inválido";
}
// Localidade
if (!preg_match("/^[a-z0-9_\.\-][a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$/", $localidade)) {
$error[3] = "Preencha com uma localidade válida";
}
// Caso não haja erros
if (sizeof($error) == 0) {
// Altera as informações da bd
$sql = mysql_query("UPDATE conta SET email = '".$email."', contactos = '".$contactos."', localidade = '".$localidade."' WHERE login = '".$login."'");
// Caso altere os dados com sucesso
if ($sql) {
echo "<script language='javascript'>alert('Cliente editado com sucesso'); window.location.href = 'cliente.php?login=".$login."'</script>";
// Caso haja algum problema na alteração
} else {
echo "<script language='javascript'>alert('Não foi possível editar o cliente')</script>";
}
}
}
// ACAO DE REMOVER CLIENTE
if ($acao == "remover") {
// Remove cliente
$sql = mysql_query("DELETE FROM conta WHERE login = '".$login."'");
// Caso remova o cliente com sucesso
if ($sql) {
echo "<script language='javascript'>alert('Cliente removido com sucesso'); window.location.href = 'index.php'</script>";
// Caso haja algum problema na remoção
} else {
echo "<script language='javascript'>alert('Não foi possível remover o cliente')</script>";
}
}
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>Cabeleireiro Preto e Prata - Site Oficial © </title>
<!--CSS-->
<link rel="stylesheet" href="estilo.css" type= "text/css" media="screen">
<script language='javascript'>
// Função para confirmar a remoção do cliente
function confirmar(login) {
var confirma = confirm('Deseja remover esse cliente?');
if (confirma) {
window.location.href = "cliente.php?login="+login+"&acao=remover";
}
}
</script>
</head>
<body>
<div id="conteudo">
<br>
<h2 align="center">ADMINISTRADOR</h2>
<p align="center">Contas Criadas </p>
<br>
<?php
// Recuperando informações do cliente do banco de dados
$sql = mysql_query("SELECT * FROM conta WHERE login = '".$login."'");
// Armazenando informações do cliente
$cliente = mysql_fetch_array($sql);
?>
<h3 align="center">Informaç&otildees de <?php echo $cliente['nome'] ?></h3>
<?php
// Caso haja erros
if (sizeof($error) != 0) { Linha referente ao erro
// Exibe os erros
foreach ($error as $err) {
echo "<font color='red'><b>" .$err . "</b></font><br />";
}
}
?>
<form method="post" align="center"action="cliente.php?login=<?php echo $login ?>&acao=editar">
<p><strong>Email:</strong><input name="email" type="text" value="<?php echo $cliente['email'] ?>" /></p>
<p><strong>Contacto:</strong><input name="contactos" type="text" value="<?php echo $cliente['contactos'] ?>" /></p>
<p><strong>Localidade:</strong><input name="localidade" type="text" value="<?php echo $cliente['localidade'] ?>" /></p>
<br>
<input type="submit" value="Editar Cliente" />
<input type="button" value="Remover Cliente" onclick="confirmar('<?php echo $login ?>')" />
</form>
<p align="center"><a href='index.php'>Voltar</a></p>
<br><br><br><br><br><br><br><br><br>
</div>
</body>
</html>

Alguém pode ajudar? é urgente estou farta de pesquisar e nada. Obrigada

Posted

No teu Cliente.php tens de iniciar a variável error.

$error = array();

Se estiveres a usar a versão do PHP > 5.4 (julgo eu) podes fazer desta forma também:

$error = [];

Além disso, isso não é um erro, mas sim uma observação/aviso.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.