Foros del Web » Programando para Internet » PHP »

Duda con Formulario.

Estas en el tema de Duda con Formulario. en el foro de PHP en Foros del Web. Holas Yo tengo un formulario que tiene como action un archivo php que lo único que hace es crear una imágen con la librería GD ...
  #1 (permalink)  
Antiguo 28/04/2005, 17:08
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
Duda con Formulario.

Holas
Yo tengo un formulario que tiene como action un archivo php que lo único que hace es crear una imágen con la librería GD (no tiene código html, solo php)
Lo que yo quiero es que el formulario siga teniendo el action sobre ese archivo, pero que me redireccione a la página en la que se encuentra el formulario y entonces ahí mostrar la imágen con <img SRC=" bla bla bla.
No se si me explico..espero que si.
Chau
Gracias
  #2 (permalink)  
Antiguo 28/04/2005, 17:15
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
De acuerdo

Cuando el archivo php crea la imagen, guarda el nombre de la imagen en una variable y corres un redirect.
Código:
header("location: formulario.php?imagen=".$imagen);
Entonces la pagina formulario debe detectar que $imagen tiene valor y entonces imprime la imagen:
Código:
<?php
if(isset($_GET["imagen"])){
 echo "<img src=".$_GET["imagen"].">";
}
?>
Saludos,
  #3 (permalink)  
Antiguo 28/04/2005, 20:18
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
gracias, ahora el problema es: ¿de donde saco el nombre de la imagen que cree?
Gracias por responder dwaks
  #4 (permalink)  
Antiguo 29/04/2005, 04:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
up .
  #5 (permalink)  
Antiguo 29/04/2005, 08:47
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Coloca aqui el codigo que usas para subir la imagen, solo las lineas donde se sube y alli te digo como se llama para ser mas precisos.

Saludos,
  #6 (permalink)  
Antiguo 29/04/2005, 12:13
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 13 años, 3 meses
Puntos: 9
otras variantes

Tambien puedes iniciar una sesion y almacenar variables en el array $_SESSION.

Otra posibilidad es correr el codigo php dentro de la pagina mismadel formulario. Solo debes crear un codigo que genere la imagen cuando existe el pedido (probablemente consultando las $_POST que vienen del formulario). Esta quizas sea la opcion mas simple y solida.

Tambien puedes hacer el redirect desde la pagina que genera la imagen y en la pagina del formulario consultar sobre si existe la imagen y, en caso negativo mostrar otra imagen (o nada si lo prefieres).

Hay otras posibilidades como bases de datos y archivos auxiliares pero son mas complejas y no te las recomiendo para este trabajo.

Suerte
  #7 (permalink)  
Antiguo 29/04/2005, 17:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
formulario.php

formulario.php

Código PHP:
<form action="muestra.php" method="POST" target="VentanaForm" onSubmit="window.open('muestra.php','VentanaForm','width=400, height=275')">
<table width="72%" border="0">
  <tr> 
    <td width="14%">Nombre</td>
    <td width="18%"><input type="text" name="nombre" size="15"></td>
    <td width="15%"><select name="colorNOM">
    <option value="negro"> Negro</option>
    <option value="rojo">Rojo</option>
    <option value="azul">Azul</option>
    <option value="amarillo">Amarillo</option>
    <option value="verde">Verde</option>
    <option value="violeta">Violeta</option>
    <option value="naranja">Naranja</option>
    <option value="marron">Marrón</option>
    <option value="rosa">Rosa</option>
    <option value="gris">Gris</option>
    <option value="blanco">Blanco</option>
    </select></td>
    <td width="12%"><select name="FuenteNom">
    <option value="arial">Arial</option>
    <option value="diner___">Diner</option>
    <option value="avalonn">Avalon</option>
    <option value="aardvrkb">Aardvark</option>
    <option value="arialn">Arial Narrow</option>
    <option value="amazonen">Amazone BT</option>
    <option value="amelia">Amelia</option>
    <option value="applecha">Apple Chancery</option>
    <option value="ariblk">Arial Black</option>
    <option value="ARLRDBD">Arial Rounded</option>
    <option value="bahamas">Bahamas</option>
    <option value="bahamahn">Bahamas Heavy</option>
    <option value="banffn">Banff</option>
    <option value="bangkok">Bangkok</option>
    </select></td>
    <td width="41%">
    <input type="checkbox" name="boldNom" value="b">Negrita   
    <input type="checkbox" name="italicNom" value="i">Cursiva   
    </td>
  </tr>
  <tr> 
    <td height="25">Empresa</td>
    <td><input type="text" name="empresa" size="15"></td>
    <td><select name="colorEMP">
    <option value="negro"> Negro</option>
    <option value="rojo">Rojo</option>
    <option value="azul">Azul</option>
    <option value="amarillo">Amarillo</option>
    <option value="verde">Verde</option>
    <option value="violeta">Violeta</option>
    <option value="naranja">Naranja</option>
    <option value="marron">Marrón</option>
    <option value="rosa">Rosa</option>
    <option value="gris">Gris</option>
    <option value="blanco">Blanco</option>
    </select></td>
    <td><select name="FuenteEmp">
    <option value="arial">Arial</option>
    <option value="diner___">Diner</option>
    <option value="avalonn">Avalon</option>
    <option value="bahamahn">Bahamas</option>
    <option value="aardvrkb">Aardvark</option>
    </select></td>
    <td><input type="checkbox" name="boldEmp" value="b">Negrita   
    <input type="checkbox" name="italicEmp" value="i">Cursiva   
</td>
  </tr>
  <tr> 
    <td>Direcci&oacute;n</td>
    <td><input type="text" name="direccion" size="15"></td>
    <td><select name="colorDIR">
    <option value="negro"> Negro</option>
    <option value="rojo">Rojo</option>
    <option value="azul">Azul</option>
    <option value="amarillo">Amarillo</option>
    <option value="verde">Verde</option>
    <option value="violeta">Violeta</option>
    <option value="naranja">Naranja</option>
    <option value="marron">Marrón</option>
    <option value="rosa">Rosa</option>
    <option value="gris">Gris</option>
    <option value="blanco">Blanco</option>
    </select></td>
    <td><select name="FuenteDir">
    <option value="arial">Arial</option>
    <option value="diner___">Diner</option>
    <option value="avalonn">Avalon</option>
    <option value="bahamahn">Bahamas</option>
    <option value="aardvrkb">Aardvark</option>
    </select></td>
    <td><input type="checkbox" name="boldDir" value="b">Negrita   
    <input type="checkbox" name="italicDir" value="i">Cursiva   
</td>
  </tr>
  <tr> 
    <td>E-mail</td>
    <td><input type="text" name="email" size="15"></td>
    <td><select name="colorMAIL">
    <option value="negro"> Negro</option>
    <option value="rojo">Rojo</option>
    <option value="azul">Azul</option>
    <option value="amarillo">Amarillo</option>
    <option value="verde">Verde</option>
    <option value="violeta">Violeta</option>
    <option value="naranja">Naranja</option>
    <option value="marron">Marrón</option>
    <option value="rosa">Rosa</option>
    <option value="gris">Gris</option>
    <option value="blanco">Blanco</option>
    </select></td>
    <td><select name="FuenteEmail">
    <option value="arial">Arial</option>
    <option value="diner___">Diner</option>
    <option value="avalonn">Avalon</option>
    <option value="bahamahn">Bahamas</option>
    <option value="aardvrkb">Aardvark</option>
    </select></td>
    <td><input type="checkbox" name="boldMail" value="b">Negrita   
    <input type="checkbox" name="italicMail" value="i">Cursiva   
</td>
  </tr>
</table>
<input  name="Fondo" type="hidden" value="<? echo $fondo?>">
<input name="Submit" type="submit" value="Enviar">
</form>
  #8 (permalink)  
Antiguo 29/04/2005, 17:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
muestra.php

muestra.php

Código PHP:
<?
    
###<--COLORES DE LAS LETRAS -->###    
    
$color[1]=$_POST['colorNOM'];
    
$color[2]=$_POST['colorEMP'];
    
$color[3]=$_POST['colorDIR'];
    
$color[4]=$_POST['colorMAIL'];
    
    
###<-- TEXTOS DE LOS CAMPOS -->###    
    
$nombre=$_POST['nombre'];
    
$empresa=$_POST['empresa'];
    
$dir=$_POST['direccion'];
    
$email=$_POST['email'];
    
    
###<-- FONDO --->###    
    
$fondo=$_POST['Fondo'];
    
    
###<--- FUENTES DE LOS CAMPOS --->###
    
$fuente[1]=$_POST['FuenteNom'];
    
$fuente[2]=$_POST['FuenteEmp'];
    
$fuente[3]=$_POST['FuenteDir'];
    
$fuente[4]=$_POST['FuenteEmail'];
    
    
###<--- NEGRITAS Y CURSIVAS --->###
    
$bold[1]=$_POST['boldNom'];
    
$italic[1]=$_POST['italicNom'];
    
$bold[2]=$_POST['boldEmp'];
    
$italic[2]=$_POST['italicEmp'];
    
$bold[3]=$_POST['boldDir'];
    
$italic[3]=$_POST['italicDir'];
    
$bold[4]=$_POST['boldMail'];
    
$italic[4]=$_POST['italicMail'];
    
    include 
"erroresB.php";
    include 
"erroresI.php";

    
header("Content-Type: image/png");
    
$im=imagecreatefromjpeg("fondos/fondo[$fondo].jpg");
    
$fondo=imagecolorallocate($im,0,0,0);

    for (
$i 1$i 5$i++)
     {
        if(
$color[$i]=="rojo"){
            
$color[$i]=imagecolorallocate($im,255,0,0); 
        } elseif(
$color[$i]=="verde") {
            
$color[$i]=imagecolorallocate($im,0,255,0);
        } elseif(
$color[$i]=="azul") {
            
$color[$i]=imagecolorallocate($im,0,0,255);
        } elseif(
$color[$i]=="negro") {
            
$color[$i]=imagecolorallocate($im,0,0,0);
        } elseif(
$color[$i]=="amarillo") {
            
$color[$i]=imagecolorallocate($im,255,255,0);
        } elseif(
$color[$i]=="naranja") {
            
$color[$i]=imagecolorallocate($im,255,150,0);
        } elseif(
$color[$i]=="violeta") {
            
$color[$i]=imagecolorallocate($im,200,0,255);
        } elseif(
$color[$i]=="marron") {
            
$color[$i]=imagecolorallocate($im,150,100,0);
        } elseif(
$color[$i]=="rosa") {
            
$color[$i]=imagecolorallocate($im,255,150,200);
        } elseif(
$color[$i]=="gris") {
            
$color[$i]=imagecolorallocate($im,160,160,160);
        } elseif(
$color[$i]=="blanco") {
            
$color[$i]=imagecolorallocate($im,255,255,255);
        }
    }
    
    for (
$i=1$i < (count($fuente)+1); $i++) {
        for (
$j=1;$j <(count($nB)+1);$j++) {
                if (
$fuente[$i] == $nB[$j]) {
                    
$bold[$i] = "";
            }
        }
    }
    for (
$i=1$i < (count($fuente)+1); $i++) {
        for (
$j=1;$j <(count($nI)+1);$j++) {
                if (
$fuente[$i] == $nI[$j]) {
                    
$italic[$i] = "";
            }
        }
    }

    
    
$fontN $fuente[1] . $bold[1] . $italic[1];
    
$fontE $fuente[2] . $bold[2] . $italic[2];
    
$fontD $fuente[3] . $bold[3] . $italic[3];
    
$fontM $fuente[4] . $bold[4] . $italic[4];
    
imagettftext($im,30,0,10,50,$color[2],"fuentes/$fontE.TTF",$empresa);
    
imagettftext($im,20,0,10,80,$color[1],"fuentes/$fontN.TTF",$nombre);
    
imagettftext($im,10,0,290,150,$color[3],"fuentes/$fontD.TTF",$dir);
    
imagettftext($im,10,0,290,190,$color[4],"fuentes/$fontM.TTF",$email);
    
imagepng($im);
    
imagedestroy($im);
?>
  #9 (permalink)  
Antiguo 29/04/2005, 18:01
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
a ver si me pueden orientar un poco...porque estoy medio perdido :S
Gracias
  #10 (permalink)  
Antiguo 30/04/2005, 09:46
 
Fecha de Ingreso: marzo-2005
Mensajes: 158
Antigüedad: 12 años, 9 meses
Puntos: 0
up .



.
  #11 (permalink)  
Antiguo 02/05/2005, 12:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes várias opciones:

1) Generas un archivo:
$nombre_archivo=time().".png"; // ojala aleatorio .. (no es perfecto este método ojo).
imagepng($im,$nombre_archivo);
(no recuerdo el orden de los parámetros .. revisalo: www.php.net/imagepng)

al terminar . .redireccionas:
header ("Location: nose.php?imagen=".$nombre_archivo);

y eso en nose.php usas simplemente:
<img src="<? echo $_GET['imagen'] ?>">

Esta sólución no es muy "buena" que digamos .. Te vas a llenar de imagenes temporales en tu servidor .. así que tendría que implementar otras rutinas para borrarlas.

2) Trabajar con sesiones .. De tu formulario.html .. pasa a "procesar.php" ahí genera tus variables que usa tu muestra.php pero en una sesión ..

procesa.php
Código PHP:
<?
session_start
();
 
###<--COLORES DE LAS LETRAS -->###     
   
$_SESSION['colorNOM'] = $_POST['colorNOM']; 
    
// etc con el resto ...

// al terminar el proceso de registro de variables . .redirecciona a tu nose.php 
header ("Location: nose.php");
exit;
nose.php
// llama a tu tag de imagen
<img src="muestra_imagen.php">

y tu muestra_imagen.php
toma las variables de la sesión (en lugar de "POST") y hace su trabajo.

Un saludo,
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 23:41.