Bueno no soy de los que pide mucha ayuda soy mas de buscar en google y solucionarlo el problema es el siguiente tengo un formulario el cual le posndre al final de mi pregunta yo pienso que lo tengo mas o menos regular en cuanto a seguridad y tal pero me e dado cuanta que alguien por alguna razon esta haciendo la pelota, el punto es que e limitado los caracteres del formulario con maxlength y esa limitacion la pasan facil mente y queria saver si se podia hacer algo parecido dejando esa y aplicando otra en php pues las limitaciones de php no han logrado pasarlas solo es esta la que me queda para asegurar el formulario
Les dejo el codigo.
formulario
y la validacion php y el envio del mismo
Les dejo el codigo.
formulario
<form action="#" method="post" name="register" onsubmit="return checkemail();">
<br /><center>{php}am_adunit(3);{/php}</center>
<h1>Registrate y Conectate</h1>
<p>Solo escriba un Nick y una contraseña de 6 caracteres + un mail, acepta los terminos luego te conectas y listo</p>
<br />
<p>Nick: <input type="text" name="username" maxlength="6" id="username"></p>
<p>Contraseña: <input type="password" maxlength="6" name="password" id="password" /></p>
<p>Repetir Contraseña: <input type="password" maxlength="6" name="passwordconfirm" id="passwordconfirm" /></p>
<p>Email: <input type="text" name="email" id="email" /></p>
<p>Confirmar Email: <input type="text" name="emailconfirm" id="emailconfirm" /></p>
<p>Terminos y condiciones:
<textarea id="regtos" rows="3" cols="5">Estoy de acuerdo en tener sólo una cuenta, y que mi uso de este
sitio puede ser revocado en cualquier momento si hago mal uso de mi cuenta. También acepta que este sitio publique comentarios realizados por mi en redes sociales (observación los comentarios serán publicados previo a una comprobación departe de la administración)</textarea></p>
<p>Acepto los terminos y condiciones: <input type="checkbox" name="agree" id="agree" value="agree" /></p>
<input type="hidden" name="asfsagrg4" value="d76fghhjd" />
<p><input type="submit" name="submit" value="Register" id="regsubmit" /></p>
</form>y la validacion php y el envio del mismo
if ($_POST['asfsagrg4'] != "d76fghhjd") {
if ($_GET['confirm'] != NULL) { // This is the code that executes when a user follows the activation email code:
$post_username = am_injection($_GET['username']);
$activationcode = am_queries($db, "SELECT * FROM AMCMS_users WHERE username='$post_username'");
$confirmation = sha1($activationcode[0][0].$activationcode[0][1].$activationcode[0][2].$activationcode[0][4].$activationcode[0][5].$activationcode[0][6]);
if ($_GET['confirm'] == $confirmation) {
am_queries($db, "UPDATE AMCMS_users SET permissions=0 WHERE username='$post_username';");
$errorMessage .= $reg_activationsuccess;
} else {
$errorMessage .= $reg_activationfail;
}
} else {
if ($registration_enabled == 1) {
$displayForm = true;
} elseif ($registration_enabled == 0) { // this is the end of the if block that checks whether or not registration is enabled.
$errorMessage .= $reg_disabled;
}
} // This is the end of the get/confirm !=NULL if statement
} else { // This code executes when the registration form has been submitted.
$post_username = trim(am_injection($_POST['username'])); // This pulls all the form data, filtered through the am_injection black list
$post_password = trim(am_injection($_POST['password'], true));
$post_passwordconfirm = trim(am_injection($_POST['passwordconfirm'], true));
$post_email = trim(am_injection($_POST['email'], true));
$post_emailconfirm = trim(am_injection($_POST['emailconfirm'], true));
$post_regagree = am_injection($_POST['agree']);
// Server side validation (very useful when users have javascript disabled)
if ($post_email != $post_emailconfirm) {$errorMessage .= $reg_emailmatch; $fail = true;}
if ($post_password != $post_passwordconfirm) {$errorMessage .= $reg_passmatch; $fail = true;}
if ($post_regagree != 'agree') {$errorMessage .= $reg_tosfail; $fail = true;}
if ($post_username == NULL | $post_password == NULL | $post_email == NULL | $post_emailconfirm == NULL) {$errorMessage .= $reg_allfields; $fail = true;}
// Check for a user with the same email address
$sql = 'SELECT COUNT( * ) AS `Rows` , `email` FROM `AMCMS_users` GROUP BY `email` ORDER BY `email` ;';
$numusers = am_countrecords($db, $sql);
$emailcheck = am_queries($db, $sql);
$icounter = 0;
while ($icounter < $numusers) { //
if ($emailcheck[$icounter][1] == $post_email) {$errorMessage .= $reg_duplicateemail; $fail = true;}
$icounter++;
}
// Check for a user with the same username
$sql = 'SELECT COUNT( * ) AS `Rows` , `username` FROM `AMCMS_users` GROUP BY `username` ORDER BY `username` ;';
$numusers = am_countrecords($db, $sql);
$usercheck = am_queries($db, $sql);
$icounter = 0;
while ($icounter < $numusers) { //
if ($usercheck[$icounter][1] == $post_username) {$errorMessage .= $reg_duplicatename; $fail = true;}
$icounter++;
}
$finalpass = sha1($post_password.$regsalt); // Password hash
$current_ip = getenv("REMOTE_ADDR");
$regdate = date("Y-m-d");
if ($fail != true) { // Finally, we're ready to create this user.
am_queries($db, "INSERT INTO `AMCMS_users` (`userkey` ,`username`, `password`, `permissions`, `ip`, `datereg`, `email`, `avatar`, `arcadempoints`) VALUES (NULL, '$post_username', '$finalpass', $activation, '$current_ip', '$regdate', '$post_email', 'c1878ddaccbd448391f5149a5b496a00.jpg', 0);");
$errorMessage .= $reg_success;
header("location:index.php?loadpage=./includes/login.php");
if ($activation == 1) { // No activation
$errorMessage .= $reg_noactivation;
} elseif ($activation == 2) { // Email activation
$purl = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
$activationcode = am_queries($db, "SELECT * FROM AMCMS_users WHERE username='$post_username';");
$confirmation = sha1($activationcode[0][0].$activationcode[0][1].$activationcode[0][2].$activationcode[0][4].$activationcode[0][5].$activationcode[0][6]);
$activation_email = str_replace(array("%post_username%","%purl%","%confirmation%"),array($post_username,$purl,$confirmation),$activation_email);
if (mail($post_email, $subject, $activation_email, $actheaders)) {
$errorMessage .= $reg_activationnotice;
} else {
$errorMessage .= $reg_emailactproblem;
}
} elseif ($activation == 3) { // Admin activation
$errorMessage .= $reg_requireadmin;
}
}
}