Skip to content

Instantly share code, notes, and snippets.

@philorocha
Created May 27, 2018 01:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save philorocha/4714cb700a60e9a422ce002c27112bf3 to your computer and use it in GitHub Desktop.
Save philorocha/4714cb700a60e9a422ce002c27112bf3 to your computer and use it in GitHub Desktop.
<?php
/* Recebendo dados do formulário. Existe um modo mais seguro, mas pra abstrair deixei o modo simples */
$codigo = $_POST['codigo'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$data_nasc = $_POST['data_nasc'];
if (codigo_existe($codigo)) {
echo 'Já existe um cliente com este codigo!<br/>';
return;
}
/* Abrindo arquivo para escrita de dados em modo texto */
$arquivo = fopen("banco.txt", "a");
/* Verificando se houve algum erro ao tentar ler o arquivo */
if (!$arquivo) {
echo "Erro ao tentar abrir o arquivo!";
return;
}
/* Utilizando o fprintf pra gravar no arquivo */
fprintf($arquivo, "%d %s %s %s\n", $codigo, $nome, $email, $data_nasc);
fclose($arquivo); //fechando arquivo
echo "Dados gravados! <br/>";
/* Essa função vai verificar se já existe um cliente com o codigo informado cadastrado. Pra evitar duplicações
(como num banco de dados). */
function codigo_existe(int $codigo)
{
$res = false;
$arquivo = fopen("banco.txt", "r");
if (!$arquivo) {
echo "Erro ao tentar abrir o arquivo!";
return;
}
//O fscanf retorna um vetor (array), e ele vai conter o codigo de cada cliente cadastrado e comparar com o codigo que foi passado pra funcao
while($id = fscanf($arquivo, "%d")) {
//$res é verdadeiro se existir um codigo igual ja cadastrado
if ($id[0] === $codigo) $res = true;
}
fclose($arquivo);
return $res;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment