PHP - redireccionamiento

 
Vista:
sin imagen de perfil

redireccionamiento

Publicado por Pablo (10 intervenciones) el 20/09/2017 00:45:53
Hola, tengo el siguiente código y lo que quiero hacer cuando valida el campo nombre si esta vacío lo deje en la misma pagina, y si no esta vacío que lo redirija a otra pagina con el dato escrito. Lo necesito en php, se que es con el header pero no me sale, quien me puede ayudar, muchas gracias.

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<html>
<head>
<title>Problema</title>
</head>
<body>
<h1>Alta Nombres</h1>
<form action="" method="post">
Ingrese nombre:
<input type="text" name="nombre"><br>
<br>
<input type="submit" value="Registrar">
</form>
 
<?php
 
 
if($_POST){
 
$conexion=mysqli_connect("localhost","root","","pruebas") or
    die("Problemas con la conexión");
 
$nombre=$_POST['nombre'];
 
$registros=mysqli_query($conexion,"select nombre
                        from prueba where nombre='".$nombre."'") or
  die("Problemas en el select:".mysqli_error($conexion));
 
 
if ($reg=mysqli_fetch_array($registros))
{
 echo "El nombre <b>".$nombre."</b> ya fue elegido por otro usuario.";
     exit();
 
}
 
 
mysqli_query($conexion,"INSERT INTO prueba(nombre) VALUES ('$nombre')");
 
   header('Location: insertar.php');
   echo "Registro Exitoso! <br><br> Usuario: <b>".$nombre."</b>";
 
   exit();
 
 
mysqli_close($conexion);
 
}
 
?>
 
 
</body>
</html>
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
sin imagen de perfil

redireccionamiento

Publicado por Rafa (10 intervenciones) el 20/09/2017 12:03:21
Hola Pablo:

Para que se mantenga en la misma página si el campo nombre está vacío lo que debes de hacer es que no se pueda enviar el formulario si no se ha introducido información en ese campo. Para ello utiliza REQUIRED en el input:

<input type="text" name="nombre" required><br>

Te saldrá una pequeña ventana en el campo que te indicará que debes rellenarlo.

En la segunda parte de tu pregunta, si cuando envías el formulario, quieres que vuelva a aparecer el formulario con el dato del nombre puesto, para ello deberías:

Cambiar el orden del código. Pon primero el bloque del IF ($_POST)

si se ha enviado el formulario entonces la variable que has definido como $nombre que recoge el valor del formulario tiene ya un valor, el cual debes de asignar en el input del nombre con value.

<input type="text" name="nombre" required value="<?php echo $nombre ?>"><br>

Si no ha pasado por el IF ($_POST) es la primera ejecución y $nombre estaría vacío, por lo que el campo nombre del formulario estaría en blanco.

Espero que te sirva.

Saludos.
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