PHP - Formato al nombre de la sesión / form

   
Vista:

Formato al nombre de la sesión / form

Publicado por Kevin (54 intervenciones) el 10/12/2015 05:28:52
Buenas.

Tengo un form donde los usuarios pueden loguearse:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form action="" method="post">
<fieldset>
<div class="form-group">
<input style="width:300px;height:32px;float:center;font-size:13px;margin-left:150px;" class="form-control" placeholder="Nombre de usuario" name="username" type="text">
</div>
<div class="form-group">
<input style="width:300px;height:32px;float:center;font-size:13px;margin-left:150px;" class="form-control" placeholder="Contraseña" name="password" type="password">
</div>
<div style="width:300px;height:32px;float:center;font-size:13px;margin-left:150px;" class="checkbox">
<label>
<input name="remember" type="checkbox" value="Recordar sesión.">Recordar sesión.
</label>
</div>
<center><input type="submit" id="BotonEntrar" name="userlogin" class="BotonEntrar" value=""></center>
</fieldset>
</form>

El nombre de los usuarios YA ESTÁ FIJADO, y SIEMPRE sigue el siguiente formato en la base de datos: Nombre_Apellido. Por ejemplo: Juan_Carlos.

El problema es que, si en el input del login los usuarios ponen noMBre_ApeLlido (sin seguir el formato de mayúsculas en las iniciales) después en el $_SESSION['USER:NAME'] = $_POST['username']; se verá mal el nombre cuando lo inserte en la web. Dirán, ¿por qué no insertas el de la base de datos que arriba mencionaste que ya estaba formateado? Necesito ingresar sí o sí el de la sesión.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
        if( isset( $_POST['userlogin'] ) )
        {
          if( $player = GetVarPlayer( $_POST['username'] ) )
          {
            if( $_POST['password'] == $player['password'] )
            {
              if( isset( $_POST['nologout'] ) ) {setcookie("NOLOG:USER", $_POST['username'], time()+3600*24);}
              function protege($texto)
              {
                    $texto = str_replace("'", "\'", $texto);
                    $texto = htmlspecialchars($texto);
                    $texto = htmlentities($texto);
                    $texto = trim($texto);
                    return $texto;
              }
              $user=protege($_POST['username']);
              $pass=protege($_POST['password']);
              $sql_check = mysql_query("SELECT * FROM smf_members WHERE member_name='".$_POST['username']."'");
              $user_temp = mysql_fetch_array($sql_check);
              $contrasena=sha1(strtolower($user).$pass);
              if($user_temp['passwd'] != $contrasena) {$sql_update = mysql_query("UPDATE smf_members SET passwd='".$contrasena."' WHERE member_name='".$_POST['username']."'");}

              $_SESSION['USER:NAME'] = $_POST['username']; 
?>

¿Puedo darle una restricción más estricta al input en cuanto al formato que elegí o puedo formatearlo yo al hacer el $_SESSION['USER:NAME'] = $_POST['username']; para que quede bien (Nombre_Apellido)? ¿Qué me aconsejarían y cómo podría hacerlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de VRM

Formato al nombre de la sesión / form

Publicado por VRM (171 intervenciones) el 10/12/2015 08:37:39
Hola:

Podrías validar lo que el usuario escribe en la entrada (input) login mediante una expresión regular (1). Si lo hace mal lo vuelves a mandar al login. Así no tendrás problemas.

Saludos de Víctor.-

(1) http://www.mclibre.org/consultar/php/lecciones/php_expresiones_regulares.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar