Error SQL query PHP

2

I am trying to create a registration form but when it comes time to perform the query to add the new user to the database, I do not mark any error and yet this new user does not appear in the table.

$SQL = new PDO("mysql:host=localhost;dbname=arkan", "root", "");
if (isset($_POST['register'])) {
$registerDataFields = array(
    $nameField = $_POST['registerName'], //0
    $passwordField = $_POST['registerPassword'], //1
    $gradeField = $_POST['registerGrade'], //2
    $groupField = $_POST['registerGroup'], //3
    $questionField = $_POST['registerQuestion'], //4
    $answerField = $_POST['answerQuestion'], //5
    $arkanCodeField = $_POST['arkanCode'] //6
);
foreach($registerDataFields as $registerField) {
    if (empty($registerField)) {
        echo '<script>alert("Necesitas llenar todos los campos.");</script>';
        exit;
    }
}
$checkGroup = $SQL->query("SELECT * FROM grades WHERE ".$registerDataFields[3]." = 1;");
if(!$checkGroup->fetch()) {
    echo '<script>alert("Este grupo no está registrado en Arkan.");</script>';
    exit;
} else {
    $checkArkan = $SQL->query("SELECT * FROM grades WHERE arkancode".$registerDataFields[3]." = ".$registerDataFields[6].";");
    if(!$checkArkan->fetch()) {
        echo '<script>alert("Código de Arkan incorrecto.");</script>';
        exit;
    }
}

$SQL->query("INSERT INTO accounts VALUES (NULL, 0, ".$registerDataFields[0].", ".sha1($registerDataFields[1]).", ".$registerDataFields[2].", ".$registerDataFields[3].", ".$registerDataFields[4].", ".$registerDataFields[5].");");
echo '<script>alert("Tu cuenta ha sido correctamente creada.");</script>';
header("Location: index.php"); 
}

What could be the problem? Thanks.

    
asked by Frey Stroud 11.03.2017 в 20:43
source

1 answer

0
<?php
require ("config.php");
require ("conectarbd.php");
include ("header.php");

if (!$can_register) { 
    echo '<div style="text-align:center;">Lo siento, los registros estan actualmente desactivados :(';
    include("footer.php");
    exit();
}

//Reviso si esta logueado
if (@$_COOKIE["muser"]!='') {
@header("Location:userpanel.php");
exit('<meta http-equiv="Refresh" content="0;url=userpanel.php">');
}

@$akey=$_GET['activate'];
@$au=$_GET['user'];

if (@$akey!=''){
    $r = mysql_query("SELECT * from user WHERE user='$au'") or die ("error en la consulta". mysql_error()) ;
    if (mysql_num_rows($r) > 0) {
        $data = mysql_fetch_array($r);
        if ($akey==md5($data['pass'].date('ymd'))) {
            $sql = "UPDATE user SET banned=0 WHERE user='$au'";
            mysql_query($sql) or die ("error en la consulta". mysql_error());
            echo "Cuenta activada sin problemas! Ya puede comenzar a utilizarla.<style type=text/css>#reg{display:none;}</style>";
        }else{
            echo 'Error la llave de activaci&oacute;n no existe o ha expirado<style type=text/css>#reg{display:none;}</style>';
        }
    } else {
        echo 'Error no se ha encontrado registros de '.$au.' <style type=text/css>#reg{display:none;}</style>';
    }
}           

if (@$_POST['sended']){
    $user= htmlentities($_POST['user']);
    $pass= md5($_POST['pass']);
    $email= htmlentities($_POST['mail']);
    if ($user!='' && $pass!='' && $email!=''){

        $error=false;
        if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $check = mysql_query("SELECT mail from user WHERE mail = '$email'");
            if (mysql_num_rows($check) > 0) {
                echo "<font color=red><strong>Error: El E-Mail usado ya est&aacute; registrado</strong></font><br />";
                $error = true;
            }
        }else{
            echo "<font color=red><strong>Error: El E-Mail usado es inv&aacute;lido</strong></font><br />";
                $error = true;
        }

        $check = mysql_query("SELECT user from user WHERE user = '$user'");
        if (mysql_num_rows($check) > 0) {
            echo "<font color=red><strong>Error: El Username usado ya est&aacute; registrado</strong></font><br />";
            $error = true;
        }

        if (!$error){
            $sql = "INSERT INTO user (user,pass,mail,banned) VALUES ('$user','$pass','$email','1')";
            $pedido = mysql_query($sql);
            if (!$pedido){
                echo "Error: No se pudo ingresar los datos, el erro fue".mysql_error();
            }else{
                echo "Cuenta registrada sin problemas, se he enviado un e-mail a ".$email." con intrucciones para activar su cuenta.<style type=text/css>#reg{display:none;}</style>";
                $mensaje = "Estimado ".$user.".\r\n\r\nUsted ha recibido este mensaje porque se ha registrado en ".$_SERVER['SERVER_NAME'].". para activar su cuenta, por favor siga ingrese al siguiente enlace:\r\n\r\n http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']."?activate=".md5($pass.date('ymd'))."&user=".$user."\r\n\r\nEn caso de que no haya hecho esta solicitud simplemente ignore este mensaje.";
                mail($email, 'Noreply: Registro', $mensaje);
            }
        }
    }else{
        echo "<font color=red><strong>Error: Rellena todos los campos </strong></font>";
    }
}


?>

<html>
<form method=post id="reg">
<input type=hidden name=sended value="true"></input><br />
Username: &nbsp; <input type=text name=user></input><br />
Password: &nbsp;&nbsp; <input type=password name=pass></input><br />
E-mail: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=text name=mail></input><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <input type=submit Value="Registrarme">
</form>
<?php include("footer.php");
?>'introducir el código aquí'
    
answered by 11.03.2017 в 20:53