0
I need to force the user to send the photo, if not, to go up a pattern. Unfortunately it doesn’t work and I can’t think of anything else.
//form html
<div class="form-group">
<span class="field">Foto:</span>
<input
class="btn btn-danger"
type="file"
name="colaborador_cover"
/>
</div>
//php
private $Data;
private $Colaborador;
private $Error;
private $Result;
//Nome da tabela no banco de dados
const Entity = 'ws_colaboradores';
/**
* <b>Cadastrar Colaborador:</b> Envelope os dados de um usuário em um array atribuitivo e execute esse método
* para cadastrar o mesmo no sistema. Validações serão feitas!
* @param ARRAY $Data = Atribuitivo
*/
public function ExeCreate(array $Data) {
$this->Data = $Data;
$this->checkData();
if (empty($Data['colaborador_cover'])):
$Data['colaborador_cover']['name'] = 'user.png';
$Data['colaborador_cover']['type'] = 'image/png';
$Data['colaborador_cover']['tmp_name'] = '../uploads/images/user.png';
$Data['colaborador_cover']['error'] = 0;
$Data['colaborador_cover']['size'] = 1134;
endif;
var_dump($Data);
if (in_array('', $this->Data)):
$this->Error = ["Erro ao cadastrar: Para criar um post, favor preencha todos os campos!", WS_ALERT];
$this->Result = false;
else:
if ($this->Data['colaborador_cover']):
$upload = new Upload;
// = "{$this->Data['colaborador_name']}"."{$this->Data['colaborador_lastname']}-gb-" . (substr(md5(time()), 0, 5));
$nomeimg = $this->Data['colaborador_name'].$this->Data['colaborador_email'];
$upload->Image($this->Data['colaborador_cover'], $nomeimg);
endif;
if (isset($upload) && $upload->getResult()):
$this->Data['colaborador_cover'] = $upload->getResult();
else:
$this->Data['colaborador_cover'] = null;
endif;
endif;
if ($this->Result):
$this->Create();
endif;
}
/**
* <b>Atualizar Colaborador:</b> Envelope os dados em uma array atribuitivo e informe o id de um
* usuário para atualiza-lo no sistema!
* @param INT $ColaboradorId = Id do usuário
* @param ARRAY $Data = Atribuitivo
*/
public function ExeUpdate($ColaboradorId, array $Data) {
$this->Colaborador = (int) $ColaboradorId;
$this->Data = $Data;
if (!$this->Data['colaborador_password']):
unset($this->Data['colaborador_password']);
endif;
$this->checkData();
if (in_array('', $this->Data)):
$this->Error = ["Para atualizar este post, preencha todos os campos ( Capa não precisa ser enviada! )", WS_ALERT];
$this->Result = false;
else:
if (is_array($this->Data['colaborador_cover'])):
$readCapa = new Read;
$readCapa->ExeRead(self::Entity, "WHERE colaborador_id = :colaborador", "colaborador={$this->Colaborador}");
$capa = '../uploads/' . $readCapa->getResult()[0]['colaborador_cover'];
if (file_exists($capa) && !is_dir($capa)):
unlink($capa);
endif;
$uploadCapa = new Upload;
//$nomeimg = "{$this->Data['colaborador_name']}"."{$this->Data['colaborador_lastname']}-gb-" . (substr(md5(time()), 0, 5));
$nomeimg = $this->Data['colaborador_name'].$this->Data['colaborador_email'];
$uploadCapa->Image($this->Data['colaborador_cover'], $nomeimg);
endif;
if (isset($uploadCapa) && $uploadCapa->getResult()):
$this->Data['colaborador_cover'] = $uploadCapa->getResult();
else:
unset($this->Data['colaborador_cover']);
endif;
endif;
if ($this->Result):
$this->Update();
endif;
}
/**
* <b>Remover Colaborador:</b> Informe o ID do usuário que deseja remover. Este método não permite deletar
* o próprio perfil ou ainda remover todos os ADMIN'S do sistema!
* @param INT $ColaboradorId = Id do usuário
*/
public function ExeDelete($ColaboradorId) {
$this->Colaborador = (int) $ColaboradorId;
$readColaborador = new Read;
$readColaborador->ExeRead(self::Entity, "WHERE colaborador_id = :id", "id={$this->Colaborador}");
if (!$readColaborador->getResult()):
$this->Error = ['Oppsss, você tentou remover um usuário que não existe no sistema!', WS_ERROR];
$this->Result = false;
elseif ($this->Colaborador == $_SESSION['colaboradorlogin']['colaborador_id']):
$this->Error = ['Oppsss, você tentou remover seu usuário. Essa ação não é permitida!!!', WS_INFOR];
$this->Result = false;
else:
if ($readColaborador->getResult()[0]['colaborador_level'] == 1):
$readAdmin = $readColaborador;
$readAdmin->ExeRead(self::Entity, "WHERE colaborador_id != :id AND colaborador_level = :lv", "id={$this->Colaborador}&lv=1");
if (!$readAdmin->getRowCount()):
$this->Error = ['Oppsss, você está tentando remover o único ADMIN do sistema. Para remover cadastre outro antes!!!', WS_ERROR];
$this->Result = false;
else:
$this->Delete();
endif;
else:
$PostDelete = $readColaborador->getResult()[0];
if (file_exists('../uploads/' . $PostDelete['colaborador_cover']) && !is_dir('../uploads/' . $PostDelete['colaborador_cover'])):
unlink('../uploads/' . $PostDelete['colaborador_cover']);
endif;
$this->Delete();
endif;
endif;
}
/**
* <b>Verificar Cadastro:</b> Retorna TRUE se o cadastro ou update for efetuado ou FALSE se não.
* Para verificar erros execute um getError();
* @return BOOL $Var = True or False
*/
public function getResult() {
return $this->Result;
}
/**
* <b>Obter Erro:</b> Retorna um array associativo com um erro e um tipo.
* @return ARRAY $Error = Array associatico com o erro
*/
public function getError() {
return $this->Error;
}
/*
* ***************************************
* ********** PRIVATE METHODS **********
* ***************************************
*/
//Verifica os dados digitados no formulário
private function checkData() {
if (in_array('', $this->Data)):
$this->Error = ["Existem campos em branco. Favor preencha todos os campos!", WS_ALERT];
$this->Result = false;
elseif (!Check::Email($this->Data['colaborador_email'])):
$this->Error = ["O e-email informado não parece ter um formato válido!", WS_ALERT];
$this->Result = false;
elseif (isset($this->Data['colaborador_password']) && (strlen($this->Data['colaborador_password']) < 6 || strlen($this->Data['colaborador_password']) > 12)):
$this->Error = ["A senha deve ter entre 6 e 12 caracteres!", WS_INFOR];
$this->Result = false;
else:
$this->checkEmail();
endif;
}
//Verifica usuário pelo e-mail, Impede cadastro duplicado!
private function checkEmail() {
$Where = ( isset($this->Colaborador) ? "colaborador_id != {$this->Colaborador} AND" : '');
$readColaborador = new Read;
$readColaborador->ExeRead(self::Entity, "WHERE {$Where} colaborador_email = :email", "email={$this->Data['colaborador_email']}");
if ($readColaborador->getRowCount()):
$this->Error = ["O e-email informado foi cadastrado no sistema por outro usuário! Informe outro e-mail!", WS_ERROR];
$this->Result = false;
else:
$this->Result = true;
endif;
}
//Cadasrtra Colaborador!
private function Create() {
$Create = new Create;
$this->Data['colaborador_registration'] = date('Y-m-d H:i:s');
$this->Data['colaborador_password'] = md5($this->Data['colaborador_password']);
$Create->ExeCreate(self::Entity, $this->Data);
if ($Create->getResult()):
$this->Error = ["O usuário <b>{$this->Data['colaborador_name']}</b> foi cadastrado com sucesso no sistema!", WS_ACCEPT];
$this->Result = $Create->getResult();
endif;
}
//Atualiza Colaborador!
private function Update() {
$Update = new Update;
if (isset($this->Data['colaborador_password'])):
$this->Data['colaborador_password'] = md5($this->Data['colaborador_password']);
endif;
$Update->ExeUpdate(self::Entity, $this->Data, "WHERE colaborador_id = :id", "id={$this->Colaborador}");
if ($Update->getResult()):
$this->Error = ["O usuário <b>{$this->Data['colaborador_name']}</b> foi atualizado com sucesso!", WS_ACCEPT];
$this->Result = true;
endif;
}
//Remove Colaborador
private function Delete() {
$Delete = new Delete;
$Delete->ExeDelete(self::Entity, "WHERE colaborador_id = :id", "id={$this->Colaborador}");
if ($Delete->getResult()):
$this->Error = ["Colaborador removido com sucesso do sistema!", WS_ACCEPT];
$this->Result = true;
endif;
}
}
I ask you:
$Data
where does this variable come from? Post tag code<form>
in full, and the PHP code also?– novic
$data is the $POST array, about php is an own mvc, but I will post the snippet because it is a lot.
– Bruno Depieri Barduchi
$_FILE
is what the$_POST
is for input other thanfile
the code does not help because there is also a configuration in the tag<form>
so that PHP works and can rescue this image, regardless of whether it is MVC or any other division of responsibilities in the end everything isPHP
that code I can’t see where the variables are passed, I can’t help with that alone.– novic
I put the whole model, see if it improves
– Bruno Depieri Barduchi
If there is no upload you leave the default address of a default photo in the database column. No need to upload it.
– Diego Souza
@zooboomafoo is right!
– ShutUpMagda
then, a request was if there was no image would rise a default image.
– Bruno Depieri Barduchi