Jump to content
Fórum Script Brasil
  • 0

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


pixote62

Question

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 to post
Share on other sites

6 answers to this question

Recommended Posts

  • 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>

 

Edited by wash
Link to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148871
    • Total Posts
      644871
×
×
  • Create New...