Foros del Web » Programando para Internet » PHP »

otra forma

Estas en el tema de otra forma en el foro de PHP en Foros del Web. hola: utilizo esta forma para adjuntar informacion(en una pagina el form(post) y en otra php), pero me gustaria q en lugar de dos paginas tener ...
  #1 (permalink)  
Antiguo 11/03/2003, 10:00
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
otra forma

hola:

utilizo esta forma para adjuntar informacion(en una pagina el form(post) y en otra php), pero me gustaria q en lugar de dos paginas tener una sola.

Este es mi codigo:

Código PHP:
$tam=$HTTP_POST_FILES['userfile']['size'];

$name=$HTTP_POST_FILES['userfile']['name'];

$tem=$HTTP_POST_FILES['userfile']['tmp_name'];

$tip=$HTTP_POST_FILES['userfile']['type'];

if (
is_uploaded_file($tem))
{
copy ($tem"upload/$name");

echo 
'<font size="2" face="Courier New, Courier, mono">El archivo se ha adjuntado correctamente.</font>';

}else{
echo 
'<font size="2" face="Courier New, Courier, mono">No se ha podido adjuntar el archivo.</font>';

como podria poner lo de $HTTP_POST_FILES para q no sea de una pagina a otra sino a una misma?por q supongo será lo q tenga q cambiar.
__________________
Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 11/03/2003, 10:31
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 15 años, 5 meses
Puntos: 10
si entiedno correctamente, lo que quieres es procesar los datos que envia el formulario en la misma pagina, pues para ello, en el action del form, pon la variable $PHP_SELF que contiene el nombre y ruta del fichero que estas usando, y en el codigo php, con un simple if verificas si ya se han posteado datos y los procesas, o si no, muestras el formulario, supongamos que el boton para enviar los datos lo llamas boton, y su value es enviar, entonces el if, uqdaria mas o menos asi

Código PHP:
if(isset($_POST['boton']) {
   
//procesas los datos 
}
else {
   
//muestras el formulario

__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 11/03/2003, 10:35
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 15 años, 9 meses
Puntos: 0
hola,

crea una variable de request que te indique si el formulario ha sido enviado o no, o chequea si $_POST existe y no es null y utilizalo para chequear eso... luego separa el código en dos partes: una parte para imprimir el formulario en caso de que no haya sido enviado todavía, y otra parte como la que pones arriba para procesar los datos. Por ejemplo, si pones como action en la form <?php print $_SERVER['PHP_SELF'] . '?envio=true'; ?>, chequea si existe la variable GET $_GET['envio'] y que sea 'true' y ahi diriges al codigo a la parte de procesamiento del formulario, y si no, imprimes el formulario. No es tan buena forma de hacerlo porque depende del URL en el navegador, tal vez mejor sería que chequees que esté la variable de array $_POST , con las variables claves de tu formulario ($_POST es variable de request creada automáticamente por PHP como array asociativo, con los nombres de los campos del formulario, por ejemplo 'nombre', 'apellido', tendrás $_POST['nombre'], $_POST['apellido'], etc, si están quiere decir que el formulario ha sido enviado) y si existen y no son null diriges el codigo al procesamiento, de lo contrario imprimes el formulario...

(los ejemplos éstos son con 'register_globals' en off, que es la configuración de php.ini que viene ahora por defecto a partir de la ultima version de PHP en todos los servidores)

espero que te sirva, saludos
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología
  #4 (permalink)  
Antiguo 11/03/2003, 10:37
 
Fecha de Ingreso: enero-2002
Mensajes: 838
Antigüedad: 15 años, 11 meses
Puntos: 1
he encontrado una..

he encontrado una solucion altrernativa, pero gracias de todos modos.
__________________
Muchas gracias, saludos.
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 00:03.