Foros del Web » Programando para Internet » PHP »

Duda Redirigir - PHP

Estas en el tema de Duda Redirigir - PHP en el foro de PHP en Foros del Web. Hola, buenos dias gente de forosdelweb. Tengo una pequeña duda sobre PHP, os explico. Necessito hacer una gestion de una base de datos. Tengo un ...
  #1 (permalink)  
Antiguo 22/01/2011, 04:57
 
Fecha de Ingreso: enero-2011
Mensajes: 9
Antigüedad: 13 años, 3 meses
Puntos: 0
Duda Redirigir - PHP

Hola, buenos dias gente de forosdelweb.
Tengo una pequeña duda sobre PHP, os explico.

Necessito hacer una gestion de una base de datos.

Tengo un documento llamado "crear.php" con el que introduzco datos a la BBDD, pero me gustaria que una vez introducidos los campos, me redirigiese al archivo "mostrar.php".

He hecho un
Código PHP:
header ("Location: mostrar.php"); 
, pero me muestra el siguiente error;Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\eduard\SQL\crear.php:8) in C:\xampp\htdocs\eduard\SQL\crear.php on line 70

Aqui os dejo el codigo del archivo "crear.php";

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
</head>
<body>
    <?php
     
if (empty($_POST)) { //Fem una condició dient que si la variable $_POST està buida mostri el següent:
         
?>
     
    <FORM Name ="Array" Method ="POST" ACTION = "crear.php">
        <H2 align="center"> Introduïr dades </H2><br><br>
          <TABLE BORDER="1" BORDERCOLOR="black" CELLPADDING="5" CELLSPACING="5" WIDTH="39%" align="center">
                        <tr>
                            <td>
                                Nom <input type=text size=”19” name="nom" maxlenght=”5”>
                            </td>
                            <td>
                                Cognoms <input type=text name="cognom" size=“30”>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                DNI <input type=text name="dni" size=“9” value="-">
            
                            </td>
                            <td>
                                Data de Naixement <input type=text name="data" size=“10” value="yyyy/mm/dd">
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2" align="center">
                                Sexe: <SELECT name="sexe">
                                    <OPTION VALUE="home">Home</OPTION>
                                    <OPTION VALUE="dona">Dona</OPTION>
                                    </SELECT>
                            </td>
                        </tr>
                        <tr>
                            <td align="center">
                                <INPUT type="submit" value="Crear">
                            </td>
                            <td align="center">
                                <INPUT type="reset" value="Reinicia">
                            </td>
                        </tr>
                    </TABLE>
                </FORM>
        <?php
        
} else { //Si no està buida la variable $_POST, farem el següent:
    //Array:
    
$resultat[nom] = $_POST['nom'];
    
$resultat[cognom] = $_POST['cognom'];
    
$resultat[dni] = $_POST['dni'];
    
$resultat[sexe] = $_POST['sexe'];
    
$resultat[data] = $_POST['data'];

         if (empty (
$resultat[nom]) or empty ($resultat[cognom]) or empty ($resultat[dni]) or empty ($resultat[data])) { //Condició que si algun camp està buit mostri el següent:
                
echo "Algun camp està buit, has d'omplir-los tots !";
            } else {
        
$connectar = @mysqli_connect(localhost,"root","","eduard");
    if (!
$connectar) die( "No puc obrir la Base de Dades");

   
$afegir="INSERT INTO clients (Nom, Cognoms, DNI, Sexe, Naixement) VALUES ('$resultat[nom]','$resultat[cognom]','$resultat[dni]','$resultat[sexe]','$resultat[data]')";
  
mysqli_query($connectar$afegir);
      
mysqli_close($connectar); //Tanca la base de dades
            
}
        }
    
?>
</body>
</html>
Donde deveria poner el "Header" para que me funcionase correctamente ?

Muchisimas gracias
  #2 (permalink)  
Antiguo 22/01/2011, 06:36
Avatar de Nazari  
Fecha de Ingreso: febrero-2010
Ubicación: Canarias - Tenerife
Mensajes: 62
Antigüedad: 14 años, 2 meses
Puntos: 7
Respuesta: Duda Redirigir - PHP

El problema es que header ("Location: mostrar.php"); no puede ir nunca una vez que el script ya haya imprimido algo en la pantalla, tienes que idear el script de forma que haga el header antes de cualquier etiqueta html o de cualquier echo "";
__________________
Nazarí González
http://www.nazariglez.com - @Nazariglez
  #3 (permalink)  
Antiguo 22/01/2011, 07:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 14
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Duda Redirigir - PHP

Hola Eduard, si no voy equivocado la única forma de redirigir la página sería con un Javascript que te modificara la cabecera.

Saludos!
  #4 (permalink)  
Antiguo 22/01/2011, 07:15
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Duda Redirigir - PHP

Como dijo Nazari, debes poner la función header antes de cualquier salida en pantalla, otra idea es hacer la redireccion con la etiqueta meta refresh, o con javascript.

Un saludo

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 14:23.