Ir para conteúdo
Fórum Script Brasil
  • 0

Como fazer para os valores de um input permanecer no campo.


pixote62

Pergunta

Olá pessoal.

Queria saber de vocês se existe uma solução (e eu sei que tem) para um pequeno problema que não consigo achar na internet.

Estou desenvolvendo um sistema de notas de alunos por conta própria pra aprender como a coisa todo funciona na pratica, e minha duvida é a seguinte, toda vez que preencho os campos (input) com dados para ser registrado no banco e esse procedimento ocorre de maneira normal ele é cadastrado, retorna a mensagem que "os dados foram cadastrados com êxito" e os campos são limpos , quando ele acha algo que não pode ser cadastrado ele retorna o erro e limpa os campos... aí é que esta a pegada... como ele faz pra retornar o erro (pode ser por duplicidade de usuário no banco) e não apagar o que já foi inserido no campo?

 

Aqui está a forma de como fiz até aqui

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
</head>
<body>
<form method="post">
	<label>Logim do Aluno</label><br><br><br><br>
	<label>Nome Completo</label><br>
	<input type="text" name="nome" value=""><br>
	<label>Usuário de Acesso</label><br>
	<input type="text" name="user" value=""><br>
	<label>Senha</label><br>
	<input type="password" name="senha" value=""><br>
	<label>Tipo de usuário</label><br>
	<select name="tipo_usuario"><br>
		<option value="1">Aluno</option>
		<option value="2">Processor</option>
		<option value="3">Administrador</option>
	</select>
	<br><label>RG</label><br>
	<input type="nunber" name="rg" value="rg"><br>
	<br><input type="submit" name="enviar" value="Enviar" ><br>
</form>
	
</body>
</html>
<?php
	if (isset($_POST['enviar'])) {
		$nome = $_POST['nome'];
		$user = $_POST['user'];
		$senha_crypt = sha1($_POST['senha'] );
		$tipo_usuario = $_POST['tipo_usuario'];
		$rg = $_POST['rg'];


		include 'config.php';
		
		
		if (@mysqli_num_rows (mysqli_query ($conexao, "select * from usuarios where user = '$user'"))>0) {
			echo "Este usuário já existe, consulte a tabela de inscritos antes de tentar novamente";
			mysqli_close($conexao);
			exit();
		}elseif (@mysqli_num_rows (mysqli_query ($conexao, "select * from usuarios where rg = '$rg'"))>0){
			echo 'Este RG já foi cadastrado anteriormente, consulte a tabela de usuários';
			mysqli_close($conexao);
			exit();
		}
		
		//inserindo no banco de dados
		elseif (mysqli_query($conexao, "insert into usuarios (nome,user, senha, tipo_usuario, rg) values ('$nome', '$user', '$senha_crypt', '$tipo_usuario', '$rg')")){
				include ''
				echo '<h2><b>Cadastro efetuado com sucesso!</b></h2>';
			}else {
				echo '<h2><b>Erro!!! Não foi possivel cadastrar este usuário</b></h2>';
			}

		mysqli_close($conexao);

		


		
	}
	?>

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Primeiramente, a lógica deverá acontecer antes da visualização. Em outras palavras, passe o trecho em php pra cima.

2) Crie uma variável para guardar os valores dos inputs, inicialmente, elas serão vazias.

3) Coloque as variáveis no atributo value="" dos inputs

segue exemplo:

<?php
// define variáves para os valores dos inputs do formulário:
// $fdata = form data = dados para o formulário
$fdata = [
    'nome' => null,
    'user' => null,
    'senha' => null,
    'tipo_usuario' => 1, // o select já virá com a option 1 selecionada
    'rg' => null,
];

if (sizeof($_POST)) { // se algo for postado
   // a variável $fdata vai receber os valores que foram postados
   // assim, o formulário ficará com os valores iguais aos postados
   $fdata = $_POST;

   $nome = $_POST['nome'];
   $user = $_POST['user'];
   $senha_crypt = sha1($_POST['senha']);
   $tipo_usuario = $_POST['tipo_usuario'];
   $rg = $_POST['rg'];

   include 'config.php';

   if (@mysqli_num_rows(mysqli_query($conexao, "select * from usuarios where user = '$user'")) > 0) {
      echo "Este usuário já existe, consulte a tabela de inscritos antes de tentar novamente";
      mysqli_close($conexao);
      exit();
   } elseif (@mysqli_num_rows(mysqli_query($conexao, "select * from usuarios where rg = '$rg'")) > 0) {
      echo 'Este RG já foi cadastrado anteriormente, consulte a tabela de usuários';
      mysqli_close($conexao);
      exit();
   }

   //inserindo no banco de dados
   elseif (mysqli_query($conexao, "insert into usuarios (nome,user, senha, tipo_usuario, rg) values ('$nome', '$user', '$senha_crypt', '$tipo_usuario', '$rg')")) {
      include '';
      echo '<h2><b>Cadastro efetuado com sucesso!</b></h2>';
   } else {
      echo '<h2><b>Erro!!! Não foi possivel cadastrar este usuário</b></h2>';
   }
}
?>
<!doctype html>
<html>
   <head>
      <title>Sistema Nota Aluno</title>
      <meta charset="utf-8">
   </head>
   <body>
      <form method="post">
         <label>Logim do Aluno</label><br><br><br><br>
         <label>Nome Completo</label><br>
         <input type="text" name="nome" value="<?= $fdata['nome'] ?>"><br>
         <label>Usuário de Acesso</label><br>
         <input type="text" name="user" value="<?= $fdata['user'] ?>"><br>
         <label>Senha</label><br>
         <input type="password" name="senha" value="<?= $fdata['senha'] ?>"><br>
         <label>Tipo de usuário</label><br>
         <select name="tipo_usuario">
            <?php
            $options = [1 => 'Aluno', 'Professor', 'Administrador'];
            foreach ($options as $key => $value) {
               $selected = $key == $fdata['tipo_usuario'] ? ' selected' : null;
               echo "<option value='$key'$selected>$value</option>";
            }
            ?>
         </select>
         <br><label>RG</label><br>
         <input type="number" name="rg" value="<?= $fdata['rg'] ?>"><br>
         <br><input type="submit" value="Enviar" ><br>
      </form>
   </body>
</html>

 

Editado por wash
Link para o comentário
Compartilhar em outros sites

  • 0
8 horas atrás, wash disse:

Olá!

Primeiramente, a lógica deverá acontecer antes da visualização. Em outras palavras, passe o trecho em php pra cima.

2) Crie uma variável para guardar os valores dos inputs, inicialmente, elas serão vazias.

3) Coloque as variáveis no atributo value="" dos inputs

segue exemplo:


<?php
// define variáves para os valores dos inputs do formulário:
// $fdata = form data = dados para o formulário
$fdata = [
    'nome' => null,
    'user' => null,
    'senha' => null,
    'tipo_usuario' => 1, // o select já virá com a option 1 selecionada
    'rg' => null,
];

if (sizeof($_POST)) { // se algo for postado
   // a variável $fdata vai receber os valores que foram postados
   // assim, o formulário ficará com os valores iguais aos postados
   $fdata = $_POST;

   $nome = $_POST['nome'];
   $user = $_POST['user'];
   $senha_crypt = sha1($_POST['senha']);
   $tipo_usuario = $_POST['tipo_usuario'];
   $rg = $_POST['rg'];

   include 'config.php';

   if (@mysqli_num_rows(mysqli_query($conexao, "select * from usuarios where user = '$user'")) > 0) {
      echo "Este usuário já existe, consulte a tabela de inscritos antes de tentar novamente";
      mysqli_close($conexao);
      exit();
   } elseif (@mysqli_num_rows(mysqli_query($conexao, "select * from usuarios where rg = '$rg'")) > 0) {
      echo 'Este RG já foi cadastrado anteriormente, consulte a tabela de usuários';
      mysqli_close($conexao);
      exit();
   }

   //inserindo no banco de dados
   elseif (mysqli_query($conexao, "insert into usuarios (nome,user, senha, tipo_usuario, rg) values ('$nome', '$user', '$senha_crypt', '$tipo_usuario', '$rg')")) {
      include '';
      echo '<h2><b>Cadastro efetuado com sucesso!</b></h2>';
   } else {
      echo '<h2><b>Erro!!! Não foi possivel cadastrar este usuário</b></h2>';
   }
}
?>
<!doctype html>
<html>
   <head>
      <title>Sistema Nota Aluno</title>
      <meta charset="utf-8">
   </head>
   <body>
      <form method="post">
         <label>Logim do Aluno</label><br><br><br><br>
         <label>Nome Completo</label><br>
         <input type="text" name="nome" value="<?= $fdata['nome'] ?>"><br>
         <label>Usuário de Acesso</label><br>
         <input type="text" name="user" value="<?= $fdata['user'] ?>"><br>
         <label>Senha</label><br>
         <input type="password" name="senha" value="<?= $fdata['senha'] ?>"><br>
         <label>Tipo de usuário</label><br>
         <select name="tipo_usuario">
            <?php
            $options = [1 => 'Aluno', 'Professor', 'Administrador'];
            foreach ($options as $key => $value) {
               $selected = $key == $fdata['tipo_usuario'] ? ' selected' : null;
               echo "<option value='$key'$selected>$value</option>";
            }
            ?>
         </select>
         <br><label>RG</label><br>
         <input type="number" name="rg" value="<?= $fdata['rg'] ?>"><br>
         <br><input type="submit" value="Enviar" ><br>
      </form>
   </body>
</html>

 

Olá amigo, realmente eu gostei desta solução, mas esta dando erro na linha 4 exatamente onde está começando a variável $fdata = [

 

Link para o comentário
Compartilhar em outros sites

  • 0

Ola pessoal to com uma duvida , to criando um sistema de checkar SE o proxy ta on . Mas com um formulario de usuario e senha.

Porem minha duvida e no input, onde o usuario vai por seu user e pass .

Como faço para que quando o usuario digita sua senha e user , essas informacao fique guardada para ser usada em outra api de user pass .

Onde so vai fucionar se a senha bater

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...