Problema con Header();

  • Autor Autor MicroPawn
  • Fecha de inicio Fecha de inicio
MicroPawn

MicroPawn

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Hola tengo un problema, mi header no me redirige a ningún lado
editarusuario.php
PHP:
<div class="table-responsive border rounded p-1">
                      <table class="table" align="center" style="width:auto; height:20px;">
                        
                      
  <tr>
    <th>ID</th>
    <th >Usuario</th>
    <th >Password</th>
    <th>Créditos</th>
    <th >Activo</th>
    <th >Ban</th>
    <th >Acción</th>
  </tr>

  <tr>
    <?php
include("function.php");
$id = $_GET['id'];
select_id('usuarios','id',$id);

?>
    <form action="" method="post">

                    
                    
  <td><input type="text" value="<?php echo $row->id;?>" name="id" ></td> 
  <td><input type="text" value="<?php echo $row->usuario;?>" name="usuario"></td>
  <td><input type="text" value="<?php echo $row->password;?>" name="password"></td>
  <td><input type="text" value="<?php echo $row->creditos;?>" name="creditos"></td>
  <td><input type="text" value="<?php echo $row->activo;?>" name="activo"></td>
  <td><input type="text" value="<?php echo $row->baneado;?>" name="baneado"></td>
  <td><input type="submit" class="btn btn-success" name="enviar"></td>

</form>
 
  </tr>
 


</table>


   </div>
          
  </div>
          
<?php
 
  if(isset($_POST['enviar'])){
    $field = array("id"=>$_POST['id'], "usuario"=>$_POST['usuario'], "password"=>$_POST['password'], "creditos"=>$_POST['creditos'], "activo"=>$_POST['activo'], "baneado"=>$_POST['baneado']);
    $tbl = "usuarios";
    edit($tbl,$field,'id',$id);
    header("location:index.php");
  }
?>

function.php
Insertar CODE, HTML o PHP:
function edit($tblname,$form_data,$field_id,$id){ //Funcion para editar
    $sql = "UPDATE ".$tblname." SET ";
    $data = array();

    foreach($form_data as $column=>$value){

        $data[] =$column."="."'".$value."'";

    }
    $sql .= implode(',',$data);
    $sql.=" where ".$field_id." = ".$id."";
    return db_query($sql);
}


Trabaja y todo edita los registros pero al darle en submit no me funciona el header no me redirige a ningun lado
 
@MicroPawn Tienes que usarlo antes de mostrar algun código en pantalla, por lo tanto subelo arriba de tu html.
 
Probablemente es porque ya están las cabeceras.

Insertar CODE, HTML o PHP:
<?php
 
if(isset($_POST['enviar'])){
$field = array("id"=>$_POST['id'], "usuario"=>$_POST['usuario'], "password"=>$_POST['password'], "creditos"=>$_POST['creditos'], "activo"=>$_POST['activo'], "baneado"=>$_POST['baneado']);
$tbl = "usuarios";
edit($tbl,$field,'id',$id);
header("location:index.php");
}
?>

Esto colócalo arriba, no hasta abajo. También, cuando pases variables a la BD trata de filtrar la información.
 
muchas gracias a todos , ya intente de varias formas como me dijeron y sigue igual :/ lo unico que me funciono fue utilizar js. de la siguiente forma!


header("Location:index.php");
echo"<script language='javascript'>window.location='index.php'</script>;";
exit();

Que podría ser?

tomare en cuenta lo de filtrar!

Probablemente es porque ya están las cabeceras.

Insertar CODE, HTML o PHP:
<?php
 
if(isset($_POST['enviar'])){
$field = array("id"=>$_POST['id'], "usuario"=>$_POST['usuario'], "password"=>$_POST['password'], "creditos"=>$_POST['creditos'], "activo"=>$_POST['activo'], "baneado"=>$_POST['baneado']);
$tbl = "usuarios";
edit($tbl,$field,'id',$id);
header("location:index.php");
}
?>

Esto colócalo arriba, no hasta abajo. También, cuando pases variables a la BD trata de filtrar la información.
@MicroPawn Tienes que usarlo antes de mostrar algun código en pantalla, por lo tanto subelo arriba de tu html.
 
muchas gracias a todos , ya intente de varias formas como me dijeron y sigue igual :/ lo unico que me funciono fue utilizar js. de la siguiente forma!


header("Location:index.php");
echo"<script language='javascript'>window.location='index.php'</script>;";
exit();

Que podría ser?

tomare en cuenta lo de filtrar!
Seguro tienes mas codigo arriba del header bro, asi tienes que trabajarlo.

HTML:
<?php
 
if(isset($_POST['enviar'])){
$field = array("id"=>$_POST['id'], "usuario"=>$_POST['usuario'], "password"=>$_POST['password'], "creditos"=>$_POST['creditos'], "activo"=>$_POST['activo'], "baneado"=>$_POST['baneado']);
$tbl = "usuarios";
edit($tbl,$field,'id',$id);
header("location:index.php");
}
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
 
Es probable que no llegue a la linea de: header("location:index.php");

y en la funcion --> edit($tbl,$field,'id',$id); pueda tener algun problema.
Tendras que comprobar la funcion 'edit' que pasen todos los parametros de modo correcto.
Yo es lo que haria depurar hasta el header
 
varios problemas:
El header debe ir antes de cualquier cosa
Si es una redirección no debe ir nada después
location es con la L mauúscula
después de los dos puntos va un espacio
debería ser así

<?php
if ( $alguna_condicion )
{
header( 'Location: index.php' ); // si es index.php tal vez debería ser Location: /
exit( 0 );
}

// resto del programa
 
varios problemas:
El header debe ir antes de cualquier cosa
Si es una redirección no debe ir nada después
location es con la L mauúscula
después de los dos puntos va un espacio
debería ser así

<?php
if ( $alguna_condicion )
{
header( 'Location: index.php' ); // si es index.php tal vez debería ser Location: /
exit( 0 );
}

// resto del programa

Tampoco existe $_POST enviar.
 
Atrás
Arriba