Alteração de registro no banco de dados. Sql Update

.NET

24/08/2023

Realizei todos as etapas desse projeto. Login, cadastro, listagem, mas na alteração de dados os campos são apagados no banco de dados. Já procurei com base na apostila, mas não identifiquei onde está o problema. Não nenhum erro na execução.

Alguém pode me ajudar?

Arquivo index.php

<!DOCTYPE html>
<html>
	<body>
		<form action="" method="post">
			<font color=blue size="4"> E-mail:</font> <input type=text  name=email placeholder= "Preencha seu e-mail"><br><br>
<font color="red" size="4">			Senha: <input type=text name=senha placeholder= "Preencha sua senha"><br><br>
			<button type="submit" name="logar">Entrar</button>
		</form><br><br><br>

</font>	</body>

</html>


<?php 

$path = $_SERVER[''''DOCUMENT_ROOT''''].''''/ecommerce/'''';
include_once($path.''''/Controllers/usuario_controller.php'''');

echo "<font color=brown size=6>";

if (isset($_POST[''''logar''''])) { 
	$objUsuario = new Usuario();
	$objUsuario->setEmail($_POST[''''email'''']);
	$objUsuario->setSenha($_POST[''''senha'''']);
	echo "<br><br>";

	$controllerUsuario = new UsuarioController();

	$resposta = $controllerUsuario->validaUsuario($objUsuario);

	if($resposta == "Sucesso") {
	session_start();
	$_SESSION["usuario_id"] = $objUsuario->getId();


	header("Location: ./Views/Usuario/editar_usuarios.php");
	}

	else {echo "<font size=4 color=red><i>$resposta</i>";}

}

?>



Arquivo usuario_controller.php


<?php


$path = $_SERVER[''''DOCUMENT_ROOT''''].''''/ecommerce/'''';

include_once("$path/Models/Usuario.php");


class UsuarioController {

	public function validaUsuario($objUsuario) {

		if (validaEmail($objUsuario->getEmail())) {

		if ($objUsuario->getSenha() == null || strlen($objUsuario->getSenha()) < 6) { return "Preencha a senha com no mínimo 6 caracteres!"; }

		else {return $objUsuario->Login();}
		}

	}

	public function getUsuario($id) {

		$objConexao = new Conexao();
		$conexao = $objConexao->getConexao();

		$sql = "SELECT * FROM Usuarios WHERE id = ''''".$id."''''";
								
		$resposta = $conexao->query($sql);
		$usuario = $resposta->fetch_assoc();

		return $usuario;
	}

	public function cadastraUsuario($objUsuario){

		if($objUsuario->getNome() == null){
				return "Preencha o nome do usuario.";
			}
		if($objUsuario->getEmail() == null){
				return "Preencha o email.";
			}
		if($objUsuario->getSenha() == null || strlen($objUsuario->getSenha()) < 6){
				return "Preencha senha com no mínimo 6 caracteres.";
			}
			 else {
				return $objUsuario->Cadastrar();}

	}

}

	function validaEmail($email) {
		if ($email == null) {
		echo "O e-mail é indispensável";
		return false;
		}
		elseif (strlen($email) > 100) {
		echo "E-mail deve ter até 100 caracteres";
		return false;
		}
		return true;
	}



Arquivo Usuario.php

<?php

$path = $_SERVER[''''DOCUMENT_ROOT''''].''''/ecommerce/'''';
include_once($path.''''/Conexao.php'''');

class Usuario {
	private $id;
	private $nome;
	private $email;
	private $senha;
	private $endereco;

	public function getId() { return $this->id; }
	public function getNome() { return $this->nome; }
	public function getEmail() { return $this->email; }
	public function getSenha() { return $this->senha; }
	public function getEndereco() { return $this->endereco; }
	public function setId($id) { return $this->id = $id; }
	public function setNome($nome) { return $this->nome = $nome; }
	public function setEmail($email) { return $this->email = $email; }
	public function setSenha($senha) { return $this->senha = $senha; }
	public function setEndereco($endereco) { return $this->endereco = $endereco; }


	public function Login() {

		$objConexao = new Conexao();
		$conexao = $objConexao->getConexao();

		$sql = "SELECT * FROM Usuarios WHERE email = ''''" . $this->getEmail() . "''''";

		$resposta = $conexao->query($sql);
		$usuario = $resposta->fetch_assoc();

		if (!$usuario) { echo "Email não cadastrado"; }
		elseif ($usuario[''''Senha''''] != $this->getSenha()) {

		echo "Senha incorreta";

		}
		else {

		$this->setId($usuario[''''ID'''']); //Esta linha foi dada no módulo 3 - mídia 2 - parte 8 - passo 1, mas não funciona. Houve a orientação no módulo 3 - mídia 2 - parte 2 para não ser criada a função setId, pois o banco de dados cria o id automaticamente.

		return "Sucesso";

		}

		mysqli_close($conexao);

	}

	public function Cadastrar() {

		$objConexao = new Conexao();
		$conexao = $objConexao->getConexao();

		$sql = "INSERT INTO  Usuarios (Nome,Email,Senha) VALUES (''''$this->nome'''',''''$this->email'''',''''$this->senha'''')";

		if (mysqli_query($conexao, $sql)) {return "Sucesso";}
		else {return "Erro na tentativa de cadastrar";}
		mysqli_close($conexao);
	}

	public function Editar($id) {

		$objConexao = new Conexao();
		$conexao = $objConexao->getConexao();

		$sql = "UPDATE  Usuarios set Nome = ''''".$this->nome."'''', Email = ''''".$this->email."'''',Senha = ''''".$this->senha."'''', Endereco = ''''".$this->endereco."'''' WHERE id = ".$id;


		if (mysqli_query($conexao, $sql)) {return "Sucesso";}
		else {return "Erro na tentativa de editar";}
		mysqli_close($conexao);
	}

}

?>
?>

Arquivo editar_usuario.php

<?php

$path = $_SERVER[''''DOCUMENT_ROOT''''].''''/ecommerce/'''';
include_once($path.''''/Controllers/usuario_controller.php'''');


session_start();

$controllerUsuario = new UsuarioController();
		
$usuario = $controllerUsuario->getUsuario($_SESSION["usuario_id"]);

if (isset($_POST[''''editar''''])) { 

	$objUsuario = new Usuario();
	$objUsuario->setNome($_POST[''''nome'''']);
	$objUsuario->setSenha($_POST[''''senha'''']);
	$objUsuario->setEmail($_POST[''''email'''']);
	$objUsuario->setEndereco($_POST[''''endereco'''']);

	$controllerUsuario = new Usuario();

	$resposta = $controllerUsuario->Editar($usuario[''''ID''''],$objUsuario);


	if($resposta == "Sucesso"){
//		$usuario = $controllerUsuario->getUsuario($_SESSION["usuario_id"]); // Não entendi o objetivo dessa linha. Ela está declarada na abertura da sessão.
		echo "Conta salva com sucesso!<br><br>";

	} else {
		echo $resposta;			
	}


}

?>

<!DOCTYPE html>
<html>
	<body>
		<form action="" method="post">
			<font color="blue" size="4"> Nome:</font> <input type=text  name=nome value="<?php echo $usuario[''''Nome'''']?>" placeholder= "Preencha seu e-mail"><br><br>
			Senha:</font> <input type=text  name=senha value="<?php echo $usuario[''''Senha'''']?>" placeholder= "Preencha sua senha"><br><br>
			E-mail:</font> <input type=text  name=email value="<?php echo $usuario[''''Email'''']?>" placeholder= "Preencha seu e-mail"><br><br>
			Endereço:</font> <input type=text  name=endereco value="<?php echo $usuario[''''Endereco'''']?>" placeholder= "Preencha seu endereço"><br><br>
			<button type="submit" name="editar">Editar</button>
		</form><br>

	</body>

</html>
?>

Arquivo Conexao.php
<?php

class Conexao {

public function getConexao() {

$host = ''''localhost'''';
$bd = ''''ecommerce'''';
$usuariobd = ''''root'''';
$senhabd = '''''''';

$conexao = new mysqli($host, $usuariobd, $senhabd, $bd);

if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ". mysql_error());
return $conexao;
}
}
?>


?>
Lúcio Sales

Lúcio Sales

Curtidas 0
POSTAR