0
Good, I’m creating a registration system with verification for testing to be implemented on a website. The problem is that the check assigns me an error due to multiple elseif in an if... can I only use an elseif? and how do I get some without destroying my verification method? I’ll leave my code here.
<?php
//conectar base de dados
//Variaveis
$Host = "localhost";
$User = "root";
$Password = "";
$DB = "RL";
//Ligação
$link = mysqli_connect($Host, $User, $Password, $DB);
//Condição
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}else {
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
if(isset($_POST["BTN_Teste"])){
//Variaveis De Input
$Usuario = $_POST['Usuario'];
$Email = $_POST['Email'];
$Pass1 = $_POST['Pass1'];
$Pass2 = $_POST['Pass2'];
//funcoes de procuras
$Procura_U = "SELECT * FROM Users WHERE Usuario='$Usuario'";
$Procura_E = "SELECT * FROM Users WHERE Email='$Email'";
//Resultados de funcoes de procuras
$Res_U = mysqli_query($link, $Procura_U) or die(mysqli_error($link));
$Res_E = mysqli_query($link, $Procura_E) or die(mysqli_error($link));
//Verificação de user e email e senha
if($Pass1 != $Pass2){
$Input_erro3 = "Senhas Não Coincidem!";
}elseif(mysqli_num_rows($Res_U) > 0){
$Input_erro1 = "Usuário Já Registado!";
}elseif(mysqli_num_rows($Res_E) > 0){
$Input_erro2 = "Email Já Registado!";
}else{
//Confirmação de senhas e encriptação md5
if($Pass1 === $Pass2){
$Pass3 = md5($Pass2);
//Funções de inserção
$Inserir = "INSERT INTO Users (Usuario, Email, Senha) VALUES('$Usuario', '$Email', '$Pass3')";
$Res_Inserir = mysqli_query($link, $Inserir) or die(mysqli_error($link));
echo "<br>";
echo "Registado Com Sucesso!";
exit();
}
}
}else{
//Divisao da mensagem de sucesso da base de dados
echo"<br>";
echo "Botao Registar Não Clicado!";
}
}
mysqli_close($link);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="../CSS/style.css">
<title>Registo</title>
</head>
<body>
<center>
<form action="" method="post">
<span>Usuário</span><br>
<input type="text" name="Usuario" placeholder="Usuário" id="" required>
<?php
//Exibir Mensagem De Erro
if(isset($_POST["BTN_Teste"])){
if(mysqli_num_rows($Res_U) > 0){
echo"<br>";
echo"<div class='Erro'>";
echo $Input_erro1;
echo"</div>";
}
}
?>
<br>
<span>E-mail</span><br>
<input type="email" name="Email" placeholder="Email" id="" required>
<?php
//Exibir Mensagem De Erro
if(isset($_POST["BTN_Teste"])){
if(mysqli_num_rows($Res_E) > 0){
echo"<br>";
echo"<div class='Erro'>";
echo $Input_erro2;
echo"</div>";
}
}
?><br><br>
<span>Senha</span><br>
<input type="password" name="Pass1" placeholder="Senha" id="" required>
<br><br>
<span>Confirmação de Senha</span><br>
<input type="password" name="Pass2" placeholder="Senha" id="" required>
<?php
//Exibir Mensagem De Erro
if(isset($_POST["BTN_Teste"])){
if($Pass1 != $Pass2){
echo"<br>";
echo"<div class='Erro'>";
echo $Input_erro3;
echo"</div>";
}
}
?>
<br><br><br>
<input type="submit" name="BTN_Teste" value="Registar">
</form>
</center>
</body>
</html>
And O Style.css
.Erro input{
border:1px solid red;
box-shadow: 0 0 10px rgb(77, 221, 33);
}
.Erro{
font-weight: bolder;
font-family: Verdana, Geneva, Tahoma, sans-serif;
color: black;
background-color: red;
width: 10.5em;
font-size: 15px;
border-radius: 10%;
box-shadow: 0 0 20px rgb(221, 33, 33);
}
input{
box-shadow: 0 0 10px rgba(0, 60, 255, 0.315);
}
AND THE DATABASE
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: 06-Maio-2019 às 21:42
-- Versão do servidor: 10.1.38-MariaDB
-- versão do PHP: 7.3.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `rl`
--
CREATE DATABASE IF NOT EXISTS `rl` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `rl`;
-- --------------------------------------------------------
--
-- Estrutura da tabela `users`
--
CREATE TABLE `users` (
`ID` int(11) NOT NULL,
`Usuario` varchar(255) NOT NULL,
`Email` varchar(255) NOT NULL,
`Senha` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Extraindo dados da tabela `users`
--
INSERT INTO `users` (`ID`, `Usuario`, `Email`, `Senha`) VALUES
(1, 'Teste', '[email protected]', '317d7b01d3a11b214e9cdc429f0feea3');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`ID`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
I just didn’t find the error message, it puts the message you commented
– Leonardo Barros