I am doing a final project of the course of you, so I have a problem in the registration of the donations, when soon with admin the registration and done successfully, but when I soon donate not register, obs: when I try to put the value per session to pull the donor logged in and play on the input to show his name and pull, to know who donated the donation. When you do not have a value assigned, that is, I leave a list of several donors in the select register normally, so I need to restrict.
Donation Form
<?php
require_once '../Controle/DAO/classeDoadorDAO.php';
session_start();
if (isset($_SESSION['DoadorLogado']) && $_SESSION['DoadorLogado'] == 1) {
$DoadorLogado = true;
$IdDoadorLogado = $_SESSION['IdDoadorLogado'];
$NomeDoadorLogado = $_SESSION['NomeDoadorLogado'];
}
if (isset($_SESSION['iddoador']) && $_SESSION['iddoador'] != NULL) {
$idDoador=$_SESSION['iddoador'];
} else {
$idDoador=0;
}
// $idBeneficiario = $_SESSION['idbeneficiario'];
?>
<html>
<head>
<meta charset="UTF-8">
<title>Formulário</title>
<link rel="stylesheet" href="css/form.css">
</head>
<body>
<div class="area">
<form id="formDoacao"
name="formDoacao"
method="POST"
action="../Controle/controladorDoacao.php?ACAO=cadastrar"
enctype="multipart/form-data">
<legend>Doação</legend>
<input class="idDoacao" name="idDoacao"
type="hidden"
value=""><br /><br />
<label for="nome">Nome:</label>
<input class="nome" name="nome"
type="text"
value=""><br /><br />
<label for="descricao">Descrição:</label>
<input class="descricao" name="descricao"
type="text"
value=""><br /><br />
<input type="file" id="img" name="img" value="" />
<br /><br />
<input class="dataentrada" name="dataentrada"
type="hidden"
value=""><br /><br />
<input class="datasaida" name="datasaida"
type="hidden"
value=""><br /><br />
<?php
if (isset($DoadorLogado) && $DoadorLogado=TRUE) {
echo "<input type='text' name='doador' value='" . $NomeDoadorLogado . "' >";
} else {
$doadorDAO = new classeDoadorDAO();
$doadores = $doadorDAO->selecionarDoador($idDoador);
}
?>
<br><br>
<button class="btn btn-cadastrar" name="submit" type="submit" value="Cadastrar">Cadastrar</button>
<a href="../index.php" class="btn btn-voltar">Voltar para página inicial</a><br>
<br>
</form>
</div>
</body>
</html>
Donor class method Donor
public function selecionarDoador($idDoador) {
try {
$pdo = conexao::getInstance();
$sql = "SELECT iddoador, nome FROM doador;";
$stmt = $pdo->prepare($sql);
$stmt->execute();
echo "<select name='doador'>";
echo"<option value=''>Selecione Doador</option>";
while ($doador = $stmt->fetchObject(__CLASS__)) {
if ($doador->iddoador == $idDoador){
echo"<option value='" . $doador->iddoador . "' selected>" .
$doador->nome . "</option>";
} else {
echo"<option value='" . $doador->iddoador . "'>" .
$doador->nome . "</option>";
}
}
echo ' </select>';
} catch (Exception $exc) {
echo $exc->getTraceAsString();
}
}
Kindly, someone would know to inform me what is wrong.
DonorController
<?phpif(isset($_GET['ACAO'])){$acao=$_GET['ACAO'];switch($acao){case'listar':require_once'../Modelo/classeDoacao.php';require_once'../Controle/DAO/classeDoacaoDAO.php';require_once'../Modelo/classeFoto.php';$doacaoDAO=newclasseDoacaoDAO;$doacoes=array();$doacoes=$doacaoDAO->listarDoacao();echo"<div class='linha'>";
echo "<div class='coluna_nome'>Nome</div>";
echo "<div class='coluna_descricao'>Descricao</div>";
echo "<div class='coluna_dataentrada'>DataEntrada</div>";
echo "<div class='coluna_datasaida>DataSaida</div>";
echo "</div>";
if (isset($doacoes)) {
foreach ($doacoes as $doacao) {
echo "<div class='linha'>";
echo "<div class='coluna_nome'>" . $doacao->nome . "</div>";
echo "<div class='coluna_descricao'>" . $doacao->descricao . "</div>";
echo "<img src=' " . $doacao->url . "'height='250' width='250' alt='Foto' /><br />";
echo "<div class='coluna_dataentrada'> " . $doacao->dataentrada . "</div>";
echo "<div class='coluna_datasaida>" . $doacao->datasaida . "</div>";
// echo "<div class='coluna_excluir'>"
// . "<a href='index.php?PAGINA=excluirDoacao&&idDoacao="
// . $doacao->idDoacao . "' onclick='return checkDelete()'>"
// . "X</a></div>";
// echo "</div>";
}
}
// session_start();
// $_SESSION['doacao'] = serialize($doacaoes);
// header('Location:Visao/listarDoacao.php');
break;
case 'cadastrar':
require_once '../Modelo/classeDoacao.php';
require_once '../Controle/DAO/classeDoacaoDAO.php';
require_once '../Modelo/classeFoto.php';
$nome = $_POST["nome"];
$descricao = $_POST["descricao"];
$dataentrada = $_POST["dataentrada"];
$datasaida = $_POST["datasaida"];
$foto = $_FILES["img"];
$iddoador = $_POST['doador'];
// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {
$error = array();
// Largura máxima em pixels
$largura = 2000;
// Altura máxima em pixels
$altura = 2000;
// Tamanho máximo do arquivo em bytes
$tamanho = 6000000;
// Verifica se o arquivo é uma imagem
if (!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])) {
$error[1] = "Isso não é uma imagem.";
}
// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);
// Verifica se a largura da imagem é maior que a largura permitida
if ($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar " . $largura . " pixels";
}
// Verifica se a altura da imagem é maior que a altura permitida
if ($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if ($foto["size"] > $tamanho) {
$error[4] = "A imagem deve ter no máximo " . $tamanho . " bytes";
}
// Se não houver nenhum erro
if (count($error) == 0) {
$ext = strtolower(substr($_FILES['img']['name'], -4));
// Gera um nome único para a imagem
$nome_imagem = "foto" . date("dmY_hms") . $ext;
// Caminho de onde ficará a imagem
$url = "../imagem/foto/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
if (move_uploaded_file($foto["tmp_name"], $url)) {
echo 'Cadastrado';
} else {
echo 'Erro cadastro';
}
$urlBanco = "/imagem/foto/" . $nome_imagem;
// Insere os dados no banco
// Se houver mensagens de erro, exibe-as
}
}
$novoDoacao = new classeDoacao();
$novoDoacao->setNome($nome);
$novoDoacao->setDescricao($descricao);
$novoDoacao->setIddoador($iddoador);
// $novoDoacao->setimagem($imagem);
$novoDoacao->setdataEntrada($dataentrada);
$novoDoacao->setdataSaida($datasaida);
$novaFoto = new classeFoto();
$novaFoto->setUrl($url);
$doacaoDAO = new classeDoacaoDAO();
$cadastrarDoacao = $doacaoDAO->cadastrarDoacao($novoDoacao, $novaFoto);
if ($cadastrarDoacao == FALSE) {
header('Location:../index.php?PAGINA=principal&MSG=Cadastro Não Realizado');
} else {
echo "<script>alert('Cadastrado com Sucesso');
window.location.href='../index.php?PAGINA=listarDoacao';
</script>";
}
break;
case 'resgatar':
require_once '../Modelo/classeDoacao.php';
require_once '../Controle/DAO/classeDoacaoDAO.php';
$doacaoDAO = new classeDoacaoDAO;
$doacaoAlterada = new classeDoacao();
$iddoacao = $_POST["idDoacao"];
$idbeneficiario = $_POST["beneficiario"];
$doacaoAlterada->setIdbeneficiario($idbeneficiario);
$doacaoAlterada->setIddoacao($iddoacao);
$doacaoDAO->resgatarDoacao($doacaoAlterada);
if ($doacaoAlterada == FALSE) {
header('Location:../index.php?PAGINA=principal&MSG=regaste Não Realizado');
} else {
echo "<script>alert('Resgate com Sucesso');
window.location.href='../index.php?PAGINA=listarDoacao';
</script>";
}
break;
default:
break;
}
}