Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2004
jorgito jorgito is offline
Miembro
 
Registrado: mar 2004
Posts: 25
Poder: 0
jorgito Va por buen camino
enviar a distintas paginas

Hola de nuevo:

tengo una duda al respecto de mandar un formulario de acuerdo al la sentencia que se cumpla;
cuando una sentecia if se cumpla que me mande a un formulario_1 y se es else que me mande a un formulario_2;
Responder Con Cita
  #2  
Antiguo 28-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jorgito
tengo una duda al respecto de mandar un formulario de acuerdo al la sentencia que se cumpla;
cuando una sentecia if se cumpla que me mande a un formulario_1 y se es else que me mande a un formulario_2;
¿A qué te refieres con "mandar un formulario"? Si simplemente se trata de un enlace entonces algo como esto te servirá:

Código PHP:
if ($condicion)
  
$href 'formulario1.php';
else
  
$href 'formulario2.php';

print 
"<a href='$href'>Formulario</a>"
// Saludos
Responder Con Cita
  #3  
Antiguo 28-07-2004
jorgito jorgito is offline
Miembro
 
Registrado: mar 2004
Posts: 25
Poder: 0
jorgito Va por buen camino
Post Ok

Pero desearia enviar al formulario1.php o formulario2.php sin presionar el link formulario, es decir que me envie directamente.
Responder Con Cita
  #4  
Antiguo 28-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jorgito
Pero desearia enviar al formulario1.php o formulario2.php sin presionar el link formulario, es decir que me envie directamente.
Entonces así:


Código PHP:
if ($condicion)
  
$href 'formulario1.php';
else
  
$href 'formulario2.php';

header("location: $href"); 
// Saludos
Responder Con Cita
  #5  
Antiguo 29-07-2004
jorgito jorgito is offline
Miembro
 
Registrado: mar 2004
Posts: 25
Poder: 0
jorgito Va por buen camino
Post Error

Hola de nuevo me sale un error justamente donde se encuetra el header:
Warning: Cannot add header information - headers already sent by (output started at C:\FoxServ\www\graphics\if.php:2) in C:\FoxServ\www\graphics\if.php on line 91
y mi codigo es el siguiente:
Código PHP:
  <?php 
$a
=trim($_POST["login"]);
$b=trim($_POST["pass"]);

if (
$a!="" and $b!=""){
  
$c=mysql_connect("localhost","root");
  
mysql_select_db("omega",$c);
  
$d=mysql_query("select *from pass where LOGIN='$a' and PASS='$b'",$c);
  do{
    
$l=$row["LOGIN"];
    
$p=$row["PASS"];
  }

  while (
$row=mysql_fetch_array($d));
  echo 
"\n";

  if (
$l===$a and $p===$b){
    
$link='http://localhost/graphics/emcriptador.php';
  }
  else{
    echo 
"USUARIO NO REGISTRADO";
  }

  
header("location:$link"); 
}
else {
  
$link="";
  echo 
"<center>Por favor LLene los datos</center>";
}
?>
Hay otra forma de realizarlo:

Última edición por roman fecha: 29-07-2004 a las 03:51:28. Razón: Indentación de código
Responder Con Cita
  #6  
Antiguo 29-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Por favor adopta la costumbre de indentar el código ya que de lo contrario es difícil seguir el funcionamiento. En esta ocasión lo he indentado yo mismo.

En cuanto a la pregunta; tal como indica el mensaje de error, no puedes usar header() cuando ya se han mandado datos al navegador.

En este caso, la línea

Código PHP:
echo "\n"
manda el carater "\n" lo que impide el uso de headers. De hecho no entiendo para qué quieres este echo ni el while anterior.

Incluso el espacio que dejas antes de la etiqueta de apertura de php (aunque podría tratarse de un error al pegar aquí el código) impedirá el envío de headers.

// Saludos
Responder Con Cita
  #7  
Antiguo 30-07-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
La línea a continuación de un header debe ser un exit; (por lo menos eso dice el manual)
Cita:
Empezado por jorgito
header("location:$link");
O sea:
Código PHP:
  header("location:$link");
   exit; 
Saludos
Responder Con Cita
  #8  
Antiguo 01-08-2004
jorgito jorgito is offline
Miembro
 
Registrado: mar 2004
Posts: 25
Poder: 0
jorgito Va por buen camino
Post Thanks....!

Gracias me ayudo de mucho, si me pudieran ayudar en otrao duda que tengo al respecto:

como en delphi hay un timer y se puede controlar el tiempo de duracion de un form1 y se puede pasar al otro form2 en 10 seg.
Código:
if timer1.interval=10 then 
form2.show;
se puede hacer lo mismo en PHP?
Responder Con Cita
  #9  
Antiguo 01-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Te recomiendo utilizar la busqueda, pues este tema se ha tratado recientemente. También, al tratarse de una nueva pregunta que no tiene ninguna relación con esta conversación, abrir un nuevo hilo, tal como está recomendado en la Guia de Estilo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 01-08-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
En PHP tienes la función sleep( segundos ) que retarda la ejecución y continúa con la sentencia siguiente.

Tendrás problemas si envias la llamada a un frame distinto al actual, pero si la nueva página se a a ver donde la antigua, no tendrás ninguno
Código PHP:
     .....
     
sleep10 );
    
header ("location: la_pagina.php");
    exit; 
Saludos
Responder Con Cita
  #11  
Antiguo 02-08-2004
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 22
kayetano Va por buen camino
Hola

Este foro es de PHP, y habeces nos ofuscamos en resolver el problema con PHP.
Hay ocasiones en las que se puede solucionar con javascript, hay que tener cuidado y que funcione en varios navegadores, pero suele ser mas rapida.

No se si la condición a la que te refieres usa variabes del mismo formulario o variables solo accesibles desde PHP.

Si el valor es accesible desde javascript puedes hacer lo siguiente:

Código PHP:
...
   function 
mi_funcionform ) {
      if( <
condicion> )
         
form.action "formulario_1.php";
      else
         
form.action "formulario_2.php";
      
form.submit();
   }
...

<
form>
<
input type="button" onclick="mi_funcion( this.form )">
</
form>
... 
En el caso del timer tienes en javascript la funcion
Código PHP:
setTimeoutstrExectiempo ); 
Donde debes indicar una cadena con la accion que deseas realizar y el tiempo que quieres que trascurra antes de la acción.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #12  
Antiguo 02-08-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
La funcion sleep de php en este caso no te sera de ayuda, puesto que imagino detiene la ejecucion del codigo php en el servidor, por lo que el cliente ni se enterara de lo que estas haciendo e igual lo vas a redireccionar (redirecciona sin dar ninguna respuesta al cliente, pues todavia se estaria en el servidor procesando el php).

Puedes, como ya te indicaron previamente, utilizar javascript, o en su defecto la etiqueta meta:

<META http-equiv="Refresh" Content="nnsegundos;urldestino">
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #13  
Antiguo 03-08-2004
jorgito jorgito is offline
Miembro
 
Registrado: mar 2004
Posts: 25
Poder: 0
jorgito Va por buen camino
Smile Thanks...

Gracias lo tome muy en cuenta todas las ayudas..... del foro
Thansk
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:30:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi