Jump to content
_danf

Cadastro PHP +SQL adicionar função

Recommended Posts

Senhores, boa noite!

Possuo um cadastro em php é SQL Server.

queria adicionar uma função, que ao selecionar um item do select fizesse um insert numa tabela especifica do DB

Exemplo:

   <select id="select-faction">
                <option value="opt">Escolha sua facção</option>
                <option value="1">Aliança da Luz (Light)</option>
                <option value="0">União da Fúria (Dark)</option>
            </select>

Database GameData > Table UserMaxGrow > 
Campos:
RowID, ServerID, UserUID, Conntry (0 Luz, 1 Furia), MaxGrow (3), Del (false)

Ao criar a conta, ele teria que inserir Por padrão:
 

Citar

 

RowID (Se já tive 15 contas, ele vai ser a 16 automatico eu acho( desculpem a falta de sabedoria.)

ServerID (1)

UserUID (Exemplo, a ultima conta e 34, no caso seria 35) não sei como se chama isso..

Country (0 ou 1 de acordo com a seleção)

MaxGrow (3)

Del (false)

 

 

Exemplo:

na imagem abaixo desde ja agradeço.

Screenshot_1.png

 

Cadastro.php

<?php
require_once('db.config.php');

$user_ip = $_SERVER['REMOTE_ADDR'];
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
$password = isset($_POST['password']) ? trim($_POST['password']) : '';
$password2 = isset($_POST['password2']) ? trim($_POST['password2']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$errors = array();
$success = false;

// Processar os dados POST.
if(isset($_POST) && !empty($_POST)){
	// VALIDAR LOGIN
	if(empty($username)){
		$errors[] = '<center><font color="#970808">E necessário um login*</font>';
	}else if(strlen($username) < 3 || strlen($username) > 16){
		$errors[] = '<center><font color="#970808">Seu login deve ter entre 3 e 16 caracteres.</font>';
	}else if(ctype_alnum($username) === false){
		$errors[] = '<center><font color="#970808">Seu login deve consistir de números e letras apenas.</font>';
	}else{
		  // VERIFICA SE O LOGIN JÁ EXISTE.
		$sql = "SELECT UserID FROM PS_UserData.dbo.Users_Master WHERE UserID = ?";
		$stmt = odbc_prepare($GLOBALS['dbConn'],$sql);
		$args = array($username);
		if(!odbc_execute($stmt,$args)){
			$errors[] = '<center><font color="#970808">Não foi possível determinar se esse usuário já existe no banco de dados.</font>';
		}elseif($row = odbc_fetch_array($stmt)){
			$errors[] = '<center><font color="#970808">Login já existente, utilize outro.</font>';
		}
	}
	
	//  VALIDAR SENHA
	if(empty($password)){
		$errors[] = '<center><font color="#A52A2A">Informe uma senha.</font>';
	}else if(strlen($password) < 3 || strlen($password) > 16){
		$errors[] = '<center><font color="#970808">A senha deve ter entre 3 e 16 caracteres.</font>';
	}else if($password != $password2){
		$errors[] = '<center><font color="#970808">As senhas não coincidem.</font>';
	}

	// E-MAIL COM VALIDAÇÃO "O USUÁRIO NÃO PODE CRIAR UMA CONTA COM O MESMO E-MAIL".
if(isset($_POST) && !empty($_POST)){

	if(empty($email)){
		$errors[] = '<center><font color="#970808">Informe um e-mail.</font>';
	}else if(strlen($email) < 5 || strlen($email) > 30){
		$errors[] = '<center><font color="#970808">O E-mail deve ter entre 5 e 30 caracteres de comprimento.</font>';
	}else{
       // VERIFICA SE O E-MAIL JÁ EXITE.
		$sql = "SELECT email FROM PS_UserData.dbo.Users_Master WHERE email = ?";
		$stmt = odbc_prepare($GLOBALS['dbConn'],$sql);
		$args = array($email);
		if(!odbc_execute($stmt,$args)){
			$errors[] = '<center><font color="#970808">Falha ao determinar se esse E-amil já existe no banco de dados.</font>';
		}elseif($row = odbc_fetch_array($stmt)){
			$errors[] = '<center><font color="#970808">O E-mail já foi usado. Escolha outro E-mail.</font>';
		}
	}
}

	// Persiste a nova conta no banco de dados se não ocorrerem erros anteriores.
	if(count($errors) == 0){
		$sql = "INSERT INTO PS_UserData.dbo.Users_Master
				(UserID,Pw,JoinDate,Admin,AdminLevel,UseQueue,Status,Leave,LeaveDate,UserType,Point,EnPassword,UserIp,email)
				VALUES (?,?,GETDATE(),0,0,0,0,0,GETDATE(),'N',0,'',?,?)";
		$stmt = odbc_prepare($GLOBALS['dbConn'],$sql);
		$args = array($username,$password,$user_ip,$email);
		if(odbc_execute($stmt,$args)){
			$success = htmlentities("{$username}, seu cadastro foi finalizado com sucesso!");
		}else{
			// Isso significa que a instrução inserir provavelmente não é válida para seu banco de dados. Corrija a consulta ou corrija seu banco de dados, sua escolha;)
			$errors[] = '<center><font color="#970808">Problema ao tentar criar sua conta, tente novamente.</font>';
		}
	}
}
// Determine which view to show.
if($success === false){
	require_once('cadastro.view.php');
}else{
	require_once('success.view.php');
}
?>

 

cadastro.view.php

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="login.css">
    <link rel="icon" href="https://img.icons8.com/officel/16/000000/code.png">
    <link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Josefin+Sans&display=swap" rel="stylesheet">
    <title>Vamos lá? </title>
</head>
<body><br>
        <?php if(count($errors)){ ?>
			<ul id="error">
			<?php foreach($errors as $error){ ?>
				<li><?php echo $error; ?></li>
			<?php } ?>
			</ul>
		<?php } ?>
         <div class="form-register">
            <form action="cadastro.php" method="POST">
            <h1>Criar uma nova conta</h1>
            <br><br>
            <input value="<?php if(isset($_POST['username'])){ echo $_POST['username']; } ?>" type="text" title="Login" placeholder="Login*" name="username">
            <br><br><br>
            <input value="<?php if(isset($_POST['password'])){ echo $_POST['password']; } ?>" type="password" title="Senha" placeholder="Senha" name="password">
            <br><br><br>
            <input value="<?php if(isset($_POST['password2'])){ echo $_POST['password2']; } ?>" type="password" title="Confirmar senha" placeholder="Confirmar senha" name="password2">
            <br><br><br>
            <input value="<?php if(isset($_POST['email'])){ echo $_POST['email']; } ?>" type="mail" title="E-mail" placeholder="Endereço de e-mail" name="email">
            <label>Utilize um e-mail válido para confirmação</label>
            <br><br>
            <select id="select-faction">
                <option value="opt">Escolha sua facção</option>
                <option value="0">Aliança da Luz (Light)</option>
                <option value="1">União da Fúria (Dark)</option>
            </select>
            <br><br>
            <button type="submit">Cadastrar</button>
            <br><br>
            <h2><a href="index.html"> Já possui um acesso?</a></h2>
            </form>
         </div>
</body>
</html>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      Todas as regras de negócio são implementadas como Stored Procedures.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT

    • By david2007
      Endpointer Framework é um Framework PHP para construção de APIs REST com Programação Procedural.
       
      http://endpointer.com
       
      Endpointer Framework é Código Aberto sob a licença MIT
       

    • By Elisame Araújo
      Seguinte, estou criando uma página dinâmica para um site de clã de jogos e essa página vai listar todos os membros. Até aí, tudo bem, eu consegui buscar dentro do banco de dados os nomes dos membros, mas, quando preciso com que uma div que abre um lightbox com resumo do perfil do membro, acaba retornando apenas o resultado referente a primeira ID, no caso a 1. O que rola é todos os membros, ficam com a mesma informação de resumo curto e UF, por exemplo, mesmo que no banco de dados isso seja individual. Para explicar melhor:
       
      Este código, busca os membros e algumas colunas no banco de dados.
      $conecta = mysqli_connect($servidor,$usuario,$senha,$banco); if(mysqli_connect_errno()) { die("Falha ao se conectar com: " . mysqli_connect_errno()); } //Consulta Membros $membros = "SELECT m.id, m.nick, m.estado, m.idstatus, m.resumocurto, m.resumolongo, m.data_cadastro, m.canalyt, assalto, medico, suporte, atirador, pilotoaviao, tanque, pilotoheli "; $membros .= " FROM membros as m "; $membros .= " JOIN afinclasse as af "; $membros .= " on m.id = af.id "; $membros .= " where af.id and m.id "; $resultados = mysqli_query($conecta,$membros); if(!$resultados) { die("Falha na consulta de dados. A coluna da tabela selecionada não existe ou seu nome está incorreto."); } ?> Que em seguida são exibidos dentro de:
      <h3 style="margin-top: 25px;"><strong>Membros Ativos</strong></h3> <div class="agileinfo-team-grids"> <?php while($membros = mysqli_fetch_assoc($resultados)) { ?> <!--- INÍCIO----> <div class="col-md-3 wthree-team-grid usuario-foto"> <img src="images/profile-pic/pic-temp.png" alt="" /> <h4><a href="perfil.php?usuario=<?php echo $membros['nick'] ?>"><?php echo $membros['nick'] ?></a> #<?php echo $membros['id'] ?><br> <span class="badge-membro">Membro</span> </h4> <div class="badge alinhamento-mais"><a href="#" data-toggle="modal" data-target="#adbr_killer">Resumo</a></div> </div> <div class="modal about-modal fade" id="adbr_killer" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title">Resumo Rápido</h4> </div> <div class="modal-body"> <div class="agileits-w3layouts-info"> <p><strong>Apresentação Curta:</strong> <?php echo $membros["resumocurto"] ?></p> <p><strong>Estado:</strong> <?php echo $membros['estado'] ?></p> <p><strong>Classe Preferida:</strong> Médico <img src="images/classes/medic.png" width="26" class="alinhamento-estado"></p> <p><strong>Jogos:</strong> <div class="Qtip"> <img src="images/jogos/bf2.png" width="26" class="alinhamento-estado"> <span class="Qtiptext">Battlefield 2</span> </div> <div class="Qtip"> <img src="images/jogos/bf3.png" width="26" class="alinhamento-estado"> <span class="Qtiptext">Battlefield 3</span> </div> <div class="Qtip"> <img src="images/jogos/bf4.png" width="26" class="alinhamento-estado"> <span class="Qtiptext">Battlefield 4</span> </div> <div class="Qtip"> <img src="images/jogos/bf1.png" width="26" class="alinhamento-estado"> <span class="Qtiptext">Battlefield 1</span> </div> <div class="Qtip"> <img src="images/jogos/bfv.png" width="26" class="alinhamento-estado"> <span class="Qtiptext">Battlefield V</span> </div> </p> <p><strong>Patente na Platoon:</strong> Cabo</p> </div> </div> </div> </div> </div> <!--- FIM ----> </div> Porém, quando dentro deste código em específico (abaixo), no caso, que abre um lightbox, ele repete os dados da ID 1 do BD, não seguindo, pra ID 2, ID 3, etc.
      No caso são as variáveis "resumocurto" e "estado" que se repetem igualmente para todos.
      <div class="modal about-modal fade" id="adbr_killer" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title">Resumo Rápido</h4> </div> <div class="modal-body"> <div class="agileits-w3layouts-info"> <p><strong>Apresentação Curta:</strong> <?php echo $membros["resumocurto"] ?></p> <p><strong>Estado:</strong> <?php echo $membros['estado'] ?></p> <p><strong>Classe Preferida:</strong> Médico <img src="images/classes/medic.png" width="26" class="alinhamento-estado"></p> <p><strong>Jogos:</strong> "Lista de Jogos"</p> <p><strong>Patente na Platoon:</strong> Cabo</p> O mais engraçado é, quando eu faço essa busca dentro de uma lista <ul> ou <ol>, ele retorna os dados normalmente para cada perfil.
      <ul> <li>Nick: <?php echo $membros["nick"] ?> <strong>#<?php echo $membros["id"] ?></strong></li> <li>Ativo: <?php echo $membros["idstatus"] ?></li> <li>Estado: <?php echo $membros["estado"] ?></li> <li>Resumo Curto: <?php echo $membros["resumocurto"] ?></li> <li>Resumo Longo: <?php echo $membros["resumolongo"] ?></li> <li>Assalto: <?php echo $membros["assalto"] ?></li> <li>Médico: <?php echo $membros["medico"] ?></li> <li>Suporte: <?php echo $membros["suporte"] ?></li> <li>Atirador: <?php echo $membros["atirador"] ?></li> <li>Piloto de Avião: <?php echo $membros["pilotoaviao"] ?></li> <li>Tanque: <?php echo $membros["tanque"] ?></li> <li>Piloto de Heli: <?php echo $membros["pilotoheli"] ?></li> <li>Canal Youtube: <a href="<?php echo $membros['canalyt'] ?>" target="_blank">Link</a></li> <li>Adicionado Em: <?php echo date('d-m-Y / H:i:s', strtotime($membros['data_cadastro'])) ?></li> </ul> Existe alguma limitação no PHP para ele exibir dados numa DIV que abre a partir de um lightbox? Porque ele só retorna esses dados normalmente através de uma lista? O que eu preciso modificar no código em si para fazer com que ele apareça normalmente?
       
      Não sei se ficou claro...
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.