Problema com Header();

  • Autor Autor ArvenzCloud
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
ArvenzCloud

ArvenzCloud

Gamma
Verificado
Verificación en dos pasos activada
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
Inserir CODE, HTML ou 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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
@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.

Inserir CODE, HTML ou 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.

Inserir CODE, HTML ou 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.
 
Voltar
Topo