Foros del Web » Programando para Internet » PHP »

Problema con redireccionamiento

Estas en el tema de Problema con redireccionamiento en el foro de PHP en Foros del Web. Muy buenos días! Estoy tratando de que una vez se llene un formulario la página sea redirigida hacia otra. HE utilizado SESSION al inicio del ...
  #1 (permalink)  
Antiguo 25/07/2014, 06:43
 
Fecha de Ingreso: enero-2014
Ubicación: USA
Mensajes: 50
Antigüedad: 6 años
Puntos: 0
Problema con redireccionamiento

Muy buenos días!

Estoy tratando de que una vez se llene un formulario la página sea redirigida hacia otra. HE utilizado SESSION al inicio del script con el envío de HEADERS, para redireccionar en caso que el nombre de usuario no se haya utilizado. Ahora después de que se llena el formulario, quisiera que el usuario presionara enviar y automáticamente fuera a otra página. Me saca el erros de headers already sent, y sé por qué pero no sé como corregirlo.

Muchas gracias, adjunto el script:


Código PHP:
<?php
session_start
();
if (!
$_SESSION['username'])
{    
header ("location:index2.php?problem=No ha iniciado sesion");
exit;
}
else
$encabezadodeusuario "Bienvenido : ".$_SESSION['username'];
$encabezadodesalida "<a href='logout.php'>Cerrar sesión</a>";
$name $_SESSION['name']; 
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CTE Modificar Registro</title>
<link rel="shortcut icon" href="favicon.png"/>
<link rel="stylesheet" href="jquery-ui-1.10.4.custom/css/excite-bike/jquery-ui-1.10.4.custom.css" />
<link href="estilospaginas.css" rel="stylesheet" type="text/css"/>
<script src="jquery-ui-1.10.4.custom/js/jquery-1.10.2.js"></script>
<script src="jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js"></script>
<script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
 <script type="text/javascript">
   $(function($){
    $.datepicker.regional['es'] = {
        closeText: 'Cerrar',
        prevText: '<Ant',
        nextText: 'Sig>',
        currentText: 'Hoy',
        monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
        monthNamesShort: ['Ene','Feb','Mar','Abr', 'May','Jun','Jul','Ago','Sep', 'Oct','Nov','Dic'],
        dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
        dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],
        dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
        weekHeader: 'Sm',
        dateFormat: 'dd/mm/yy',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    };
    $.datepicker.setDefaults($.datepicker.regional['es']);
});
  $(function(){
var pickerOpts = {
dateFormat: $.datepicker.ATOM
    };  
    $("#fecharecepcion").datepicker(pickerOpts);
     $("#entregaacliente").datepicker(pickerOpts);
});
   </script>
</head>
<body>
<div id="cuerpo">
 <div id="estilopagina"> 
      <p>
      <p>SISTEMA DE CONTROL Y REGISTRO DE PRODUCTOS </p>
      <p>CENTRO TÉCNICO ESPECIALIZADO </p>
    </div>
 <div id ="swflogo"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="350" height="190" id="FlashID" title="Logo">
        <param name="movie" value="Logo.swf">
        <param name="quality" value="high">
        <param name="wmode" value="opaque">
        <param name="swfversion" value="11.0.0.0">
        <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. -->
        <param name="expressinstall" value="Scripts/expressInstall.swf">
        <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
        <!--[if !IE]>-->
        <object type="application/x-shockwave-flash" data="Logo.swf" width="350" height="190">
          <!--<![endif]-->
          <param name="quality" value="high">
          <param name="wmode" value="opaque">
          <param name="swfversion" value="11.0.0.0">
          <param name="expressinstall" value="Scripts/expressInstall.swf">
          <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
          <div>
            <h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
            <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p>
          </div>
          <!--[if !IE]>-->
        </object>
        <!--<![endif]-->
      </object></div>
<div id="cuadrobotones">
 <div id='cssmenu'>
<ul>
   <li class='active'><a href='index.html'><span>Inicio</span></a></li>
   <li><a href='ingresocliente.php'><span>Ingreso Cliente</span></a></li>
   <li><a href='busquedaprueba1.php'><span>Búsqueda</span></a></li>
   <li><a href='estadogeneralordenes.php'><span>Estado de Ordenes</span></a></li>
   <li><a href='index2.php'><span>Listado de Clientes</span></a></li>
   <li class='last'><a href='estadoyfecha.php'><span>Proximas Entregas</span></a></li>
</ul>
</div>
</div>
<?php
include "conexiondb.php";
if(isset(
$_GET['cedula']) == ""){
$muestra "";
}
else{
$muestra $_GET['cedula'];
}
?>
<style type="text/css">
#cuerpo form table {
    text-align: center;
}
</style>
<link href="estilospaginas.css" rel="stylesheet" type="text/css">
<style type="text/css">
body {
    background-color: #FFF;
}
</style>
<script>
   $( "#entregaacliente,#fecharecepcion").datepicker();
  </script> 
<div id="formularioformproducto2">  
<form name="form1" method="POST" action="formproducto2.php" form id="formulario"> 
  <div><label for="producto">Cedula:</label> <input name="cedula"type="text" class="tabla" id="cedula" value = "<?php echo $muestra ?>" readonly /> 
</div>    
   <div> <label for="producto">Producto:</label> <input type="text" name="producto" id="producto"></div>
         <div><label for="producto">Modelo:</label>
          <input type="text" name="modelo" id="modelo"></label></div>
          <div>
       <label for="producto">Marca: </label>
          <input type="text" name="marca" id="marca">
        </div>
             <div> <label for="producto">Número de la marca</label> 
       <input type="text" name="numeromarca" id="numeromarca"> </div>
      <div> <label for="producto">Tipo de Servicio:</label> <input type="text" name="tipodeservicio" id="tipodeservicio"> </div>
        <div> <label for="producto">Almacen:</label>
          <input type="text" name="almacen" id="almacen">
        </label> </div>
       <div><label for="producto">Daño:</label>
         <textarea name="dano" cols="20" rows="2" id="dano"></textarea>
        </label> </div>
      <div> <label for="producto">Fecha de Recepción:</label><input type="text" name="fecharecepcion" id="fecharecepcion"></div>
   <div> <label for="entregaacliente">Fecha de Entrega</label><input type="text" name="entregaacliente" id="entregaacliente"></div>    
     <div>
    <label for="producto">Sede:</label>
          <select name="sede" id="sede2">
            <option>Centro</option>
            <option>Calipso</option>
        </select></div>
        <div>
      <label for="estado">Estado</label>
          <select name="estado" id="estado">
            <option>Reparado</option>
            <option>Pendiente</option>
            <option>Pendiente repuesto</option>
          </select> </div>
     <div>
       <label for="producto">Técnico</label>
        <select name="tecnico" id="tecnico">
          <option>Alex Balanta</option>
          <option>Marlon Cardozo</option>
        </select>
    </div>
   <div id="enviarboton">
      <p>
        <input type="submit" name="enviar" id="enviar" value="Enviar" />
      </p>
  </div>
</div> 
</form>
<?php
if (isset($_POST ['enviar'])){    
 
$producto $_POST['producto'];
$cedula $_POST['cedula'];
$tipodeservicio$_POST['tipodeservicio'];
$numeromarca$_POST['numeromarca'];
$marca $_POST['marca'];
$modelo $_POST['modelo'];
$almacen $_POST['almacen'];
$dano $_POST['dano'];
$fecharecepcion $_POST['fecharecepcion'];
$tecnico $_POST['tecnico'];
$estado $_POST['estado'];
$sede $_POST['sede'];
$entregaacliente $_POST['entregaacliente'];
if(!
$producto OR !$cedula OR !$tecnico OR !$sede){
echo 
'<span class="modificado">No se guardo el registro. Debe ingresar todos los campos.</span>';
} else {
$producto "INSERT INTO producto (producto,cedula,tipodeservicio,numeromarca,marca,modelo,almacen,dano,fecharecepcion,tecnico,estado,sede,entregaacliente) VALUES( '$producto','$cedula','$tipodeservicio','$numeromarca','$marca','$modelo','$almacen','$dano','$fecharecepcion','$tecnico','$estado' ,'$sede','$entregaacliente')";
mysqli_query($con,$producto);
header('location: http://www.centrotecnicoespecializado.com/busquedaprueba1.php');

}
?>
 <div id="cuadrosesion"><?php echo $encabezadodesalida?></div> <div id="sesion2"><?php echo $encabezadodeusuario?></div>
   </div>
</body>
</html>
  #2 (permalink)  
Antiguo 25/07/2014, 10:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Problema con redireccionamiento

Por favor lee el manual de header().

Debes evitar cualquier salida de tu script (imprimir, echo, html, etc.) antes de llamar a la función header(), y ese es precisamente tu error: estás imprimiendo un montón de HTML antes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/07/2014, 11:03
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con redireccionamiento

Buen día.

Verifica que no haya algún espacio entre el inicio del archivo y tu primera etiqueta PHP.

Si tu archivo lo estas incluyendo en otro, verifica que el archivo que incluye no tiene espacios o HTML que ya hayas enviado.

Una función útil es:

if (!headers_sent()) {
header('Location: index2.php?problem=No ha iniciado sesion");
exit;
}

Otra opción es dejar un espacio entre Location y index2.php?pro...

Saludos

Etiquetas: redirigir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:33.