Foros del Web » Programando para Internet » PHP »

Una duda un poco tonta

Estas en el tema de Una duda un poco tonta en el foro de PHP en Foros del Web. Hola a todos ! No soy experto en PHP pero he hecho mis propias aplicaciones para un sitio web. Mi gran duda es como hago ...
  #1 (permalink)  
Antiguo 21/05/2009, 22:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
Una duda un poco tonta

Hola a todos !

No soy experto en PHP pero he hecho mis propias aplicaciones para un sitio web.
Mi gran duda es como hago por ejemplo que cualquier formulario dentro de una página "X.php" se procese en esa misma y te muestre el error en "X.php" o sea la misma, lo que no quiero hacer, es llenar el formulario en "X.php" y procesarlo en "Y.php" y en esta última mostrar los errores o lo que sigue. Les repito he hecho mis apliaciones que necesito, pero no he logrado hacer que se procese en una página los formularios. Un ejemplo para que me entiendan mejor serían los formularios de registro de Hotmail, Gmail o cualquiera de esos o los mismos logins de estos que te muestran el error en rojo debajo del formulario.

Sin más por el momento me despido, agradeciendo de antemano su valiosa ayuda.
  #2 (permalink)  
Antiguo 21/05/2009, 22:52
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Una duda un poco tonta

En tu form pon en el evento action el mismo nombre de tu x.php, y antes de todo el codigo html pon el codigo php que se encargara de procesar los datos del formulario con la condicion de que si viene un dato por POST procese esas lineas sino que se pase de frente.

Ahora lo que tu dices del GMAIL eso se hace con ajax, asi que no solo es PHP, si quieres hacerlo con full php sin tocar ajax podrias usar el framework prado que te abstrae un poco de escribir codigo javascript, lo unico malo es que tendrias que aprender a usar ese framework.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #3 (permalink)  
Antiguo 21/05/2009, 22:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Una duda un poco tonta

Pon el action del formulario como X.php

Y al principio pones:

if(isset($_POST['submit'])) {
//proceso formulario
}
  #4 (permalink)  
Antiguo 22/05/2009, 14:45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Una duda un poco tonta

Gracias por contestarme caballeros, pero o sea entonces pongo el código PHP ante todo el HTML y luego meto un IF con l condición del isset, para que no lo ejecute hasta que de click en el botón del form, pero entonces como podría hacer que saliera el output del error si el echo va a estar antes del código HTML saldría hasta arriba del html el output, ¿estoy en lo cierto?.


Miren este es mi html
Código:
<html>
<head>
<style type='text/css'>
<!--
body {
	background-color: #333333;
}
.Estilo4 {font-size: 16; font-family: Geneva, Arial, Helvetica, sans-serif; color: #FFFFFF; }
a:link {
	color: #FFFF00;
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #FFFFFF;
}
a:hover {
	text-decoration: none;
	color: #0033FF;
}
a:active {
	text-decoration: none;
	color: #FFFFFF;
}
.Estilo5 {
	font-size: 24px;
	font-family: Geneva, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
	font-weight: bold;
}
-->
</style></head>

<body>
<div>
  <div align='center'>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <form name="form1" method="post" action="changepass.php">
      <table width='42%' height='189' border='0' cellpadding='0' cellspacing='0'>
        <tr>
          <td height="59" colspan="2" class='Estilo4'><div align="center">Cambia tu contrase&ntilde;a </div></td>
        </tr>
        <tr>
          <td width="50%" class='Estilo4'><p align='left'>Escribe tu antigua contrase&ntilde;a: </p></td>
          <td width="50%" class='Estilo4'><label>
            <input name="old" type="text" id="old" size="40" maxlength="20">
          </label></td>
        </tr>
        <tr>
          <td class='Estilo4'><div align="left">Escribe la nueva contrase&ntilde;a: </div></td>
          <td class='Estilo4'><label>
            <input name="new" type="text" id="new" size="40" maxlength="20">
          </label></td>
        </tr>
        <tr>
          <td class='Estilo4'><div align="left">Reescribe la nueva contrase&ntilde;a: </div></td>
          <td class='Estilo4'><label>
            <input name="cnew" type="text" id="cnew" size="40" maxlength="20">
          </label></td>
        </tr>
        <tr>
          <td colspan="2" class='Estilo4'><label>
 Aqui va el output con el error        
 <div align="center">
                <input type="submit" name="Submit" value="Enviar">
              </div>
            </label></td>
        </tr>
      </table>
    </form>
    </div>
</div>
</body>
</html>

Puse un texto donde tendría que ir el error que ncuentre el PHP.
Y este es mi PHP

Código:
<?php 
#Declaramos las variables que vamos a usar
$servidor= "localhost";
$usuario ="miusuario";
$contrasena ="micontrasena";
$basededatos ="mibasededatos";
$old=$_POST['old'];
$new=$_POST['new'];
$cnew =$_POST['cnew'];
#Hacemos la conexión
$conexion=mysql_connect("$servidor","$usuario","$contrasena")
or die ("POR FAVOR, REINTENTA EN 20 SEGUNDOS.");
mysql_select_db($basededatos,$conexion);

if ($old =="")
   {
       echo "Escribe tu antigua contraseña";
       exit();
   }
      
if ($new =="")
   {
       echo "Falta llenar tu nueva contraseña ";
        exit();
   }
   
if ($cnew =="")
   {
       echo "Falta llenar la confirmación de tu nueva contraseña ";
       exit();
   }
if ($new =="$cnew") 
   { 

$sql="UPDATE locutores SET  password='$new' WHERE password='$old'";
mysql_query($sql,$conexion); 
echo ' 
<html >
<head>
<body>
<div width="100%" align="center">
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p><font  color="#000000" align="center"><big>TUS DATOS HAN SIDO MODIFICADOS CON ÉXITO!<br >
    <a href="index.html"> DA CLICK PARA REGRESAR </a><br>
   </p></big>
  <br>  
  <br>
  <p><font color="#000000" align="center"> </font> 
</font></div>
</body>
</html>';
}

else { 
echo ' 
<html >
<head>
<body>
<div width="100%" align="center">
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p><font  color="#000000" align="center"><big>LAS CONTRASEÑAS NO COINCIDEN. REVISALAS<br >
    </p></big>
  <br>  
  <br>
  <p><font color="#000000" align="center"> </font> 
</font></div>
</body>
</html>';
}

mysql_close();
?>


Si me pudieran ayudar para aclarar mi duda se los agradeceria demasiado
  #5 (permalink)  
Antiguo 22/05/2009, 17:58
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Una duda un poco tonta

Cita:
pero entonces como podría hacer que saliera el output del error si el echo va a estar antes del código HTML saldría hasta arriba del html el output, ¿estoy en lo cierto?.
xD Guardas el error en una variable, y luego cuando llegue el momento de mostrar el formulario o lo que sea, revisas si la variable de error existe y muestras lo que tienes.

if(isset($error)) {
echo $error; //suponiendo que error contiene el mensaje de error.
}
  #6 (permalink)  
Antiguo 22/05/2009, 21:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
Una duda un poco tonta

Perdón, pero no entiendo ya lo intente como me dices de guardar el echo en variables pero no se si de esta manera,

Esta es peticiones.php

Código PHP:
<?php 
if(isset($_POST['submit'])) {}?>

<?php
#Declaramos las variables que vamos a  usar
$servidor"localhost";
$usuario ="miusuario";
$contrasena ="micontrasena";
$basededatos ="mibase";
$cancion $_POST['cancion'];
$artista $_POST['artista'];
#Hacemos la conexión

$conexion=mysql_connect("$servidor","$usuario","$contrasena")
    or   die (
"POR FAVOR, REINTENTA EN 20 SEGUNDOS.");
mysql_select_db($basededatos,$conexion);

                if (
$cancion==""
                        {
                             
$falta="echo 'Escribe el nombre de la canción;'";
                             exit();
                        }
               else 
                        {
                             
$sql"INSERT INTO peticiones (cancion,artista) VALUES             ('$cancion', '$artista')";
                             
$resultadomysql_query($sql);
                              
$recibida "echo 'Hemos recibido tu petición';";
                      
?>
Esto viene en la misma pagina cuando cierro el php:

Código HTML:
<html><head>
<title>peticiones</title>

</head><body>
<table style="text-align: left; margin-left: auto; margin-right: auto; width: 178px; height: 309px;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr align="center"><td>Ùltimas Peticiones</td></tr><tr>
<td style="height: 28px; text-align: center;">Aqui iria el echo<br>
</td>
</tr>
<tr>
<td style="height: 190px;">
<table style="width: 190px; height: 177px; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>$1</td>
</tr>
<tr>
<td>$2</td>
</tr>
<tr>
<td>$3</td>
</tr>
<tr>
<td>$4</td>
</tr>
<tr>
<td>$5</td>
</tr>
<tr>
<td>$6</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style="text-align: center; vertical-align: top; height: 112px;">
<form action="peticion.php" method="post">
<table style="text-align: left; width: 194px; height: 85px;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 76px;">Canción:</td>
<td style="width: 98px;"><input maxlength="30" name="cancion"></td>
</tr>
<tr>
<td style="width: 76px;">Artista:</td>
<td style="width: 98px;"><input maxlength="30" name="artista"></td>
</tr>
<tr>
<td style="width: 76px;"></td>
<td style="width: 98px; text-align: center;"><input value="Pedir" type="submit"></td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</tbody>
</table>
<br>
</body></html> 

Pues es así como le hice y no me sale ningún error, pero el output es una página en blanco.
Por favor alguien ayúdeme ! :
  #7 (permalink)  
Antiguo 22/05/2009, 21:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Una duda un poco tonta

no, no...

NO es guardar el echo en variables, es almacenar en una variable el texto que se usa en el echo....

Código PHP:
$mensaje 'Esto deberia ir en un echo'
y mas tarde en tu PHP (en el HTML pues)

Código PHP:
<p style="color:red"><?php echo $mensaje?></p>
eso es, almacenar una cadena en una variable.... y después, usarla en un echo

en tu caso:
Código PHP:
// ...
$recibida 'Algo?';
// ... 
y tu HTML?
Código PHP:
Aqui iria el echo: <?php echo $recibida?>


NOTA

no es pensar: "aquí iría el echo"

debes pensar en: "aquí va el contenido de x variable"

y si lo piensas de ese modo, es mas fácil.... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 22/05/2009, 22:29
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
De acuerdo Respuesta: Una duda un poco tonta

Pues gracias a todos los que me respondieron; me ayudaron bastante pero el problema no lo puedo terminar, seguiré por lo mientras con el método que he seguido hasta ahora, pero seguiré intentando.

Realmente gracias y hasta la próxima compañeros! ! !
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 08:40.