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:
Exemplo:
na imagem abaixo desde ja agradeço.
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>