PHP - Ayuda con validar if y header

 
Vista:
sin imagen de perfil

Ayuda con validar if y header

Publicado por Victor (2 intervenciones) el 01/06/2020 03:00:26
Necesito ayuda! tengo una validacion simple de un codigo que tiene que consultar en la base de datos, eso funciona, el problema es que Si el codigo existe en SQL debe enviar a prevsecurtihost.php si no coincide con ninguno debe de enviar a denegada.php o aparecer un mensaje de error en simple no importa.

El problema esta en el bendito header, que si lo meto dentro del if, me dice el error "
Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd3/530/13900530/public_html/conexion.php:1) in /storage/ssd3/530/13900530/public_html/redirigir.php on line 39" (y si para solucionarlo lo pongo al principio luego de session start, ya no valida nada y me abre, este bien o no el codigo de ingreso la pagina prevsecurtihost.php

ya agote todas las ideas que se me ocurrieron hasta incluso invente variables pero ni asi funciona.

login.php ---> abre session del usuario
chacklogin.php---> valida session
panel de control.php----> es donde esta para ingresar el codigo ese que solicito.
*redirigir.php---> es con el que tengo el problema
prevsecurtihost.php---> es a donde tiene que ir si el codigo coincide con el que hay en la base.
denegada.html---> o el mensaje simple de que no es correcto (mucho mejor si es asi) es el que tiene que aparecer si no coincide.

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
54
55
56
57
58
59
60
<?php
session_start();
 
 
 
$nombre = $_POST['nombre'];
 
$link = $nombre.'.php';
 
$_SESSION['id'] = $nombre;
 
//$ok = header("location: prevsecurityhost.php");
 
//$no = header("location: denegado.html");
 
include 'conexion.php';
 
 
 $conexion = new mysqli($host_db, $user_db, $pass_db, $db_name);
 
 
 if ($conexion->connect_error) {
 die("La conexion falló: " . $conexion->connect_error);
}
 
 $buscarcodigo = "SELECT * FROM $tbl_name
 WHERE codigo = '$_POST[nombre]' ";
 
 $result = $conexion->query($buscarcodigo);
 
 $count = mysqli_num_rows($result);
 
 
 
 
 
 if ($count == 1) {
 
	header("location: prevsecurityhost.php");
 
 }
 else{
 
echo 'datos incorrectos a sido expulsado del sistema' ;
 
?>
<p> </p>
 
	<html> <img src="denegado.jpg"  style="max-width:100%;width:auto;height:auto;" /> </html>
<p> </p>
 
<a href=logout.php><button type="button" class="btn btn-success"> Cerrar Sesion</button></a>
<p> </p>
<?php
 
 
 
}
 
?>
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 javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con validar if y header

Publicado por javier (547 intervenciones) el 01/06/2020 08:14:15
hola, no puedes hacer ningun echo o poner codigo html con salida al navegador antes de enviar headers

tan solo el hecho de que antes de la etiqueta de apertura de php (<?php) haya un solo espacio ya es una salida al navegador.

comprueba tambien que hay en conexion.php

Una solucion rapida a este problema es redirigir con javaScript y no con header de php

pero vamos el problema es ese, algo estas enviando al nacegador algo antes del header

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