Autollamada de páginas

  • Por
Páginas que se llaman a si mismas pasando datos por POST o GET: formularios reentrantes y variables pasadas por URL a la misma página.

Al incluir un formulario en una página se debe indicar, a través del atributo action, el nombre del archivo PHP al que enviaremos los datos escritos en el formulario. De este modo, para un esquema de envío de datos por formulario, pueden participar dos páginas: una que contiene el formulario y otra que recibe los datos de dicho formulario.

Lo mismo ocurre cuando enviamos variables por una URL. Tenemos una página que contendrá el enlace y otra página que recibirá y tratará esos datos para mostrar unos resultados.

En el presente artículo vamos a ver cómo se puede enviar y recibir datos de un formulario con una única página. Asimismo, veremos como en la misma página podemos tener enlaces con paso de variables por URL y además, podemos recoger y tratar esos datos con la misma página. A este efecto podemos llamarte "autollamada de páginas", también se le suele llamar como "Formularios reentrantes" o términos similares. Es muy interesante conocer el modo de funcionamiento de estos scripts, porque serán muy habituales en nuestras páginas PHP y ayudan mucho a tener los códigos ordenados.

En ambos casos, para formularios o envío de datos por la URL, se debe seguir un esquema como este:

- Comprobar si recibo datos por URL o por formulario
- Si no recibo datos
  - Muestro el formulario o los enlaces que pasan variables.
- Si recibo datos
  - Entonces tengo que procesar el formulario o las variables de la URL

Para un formulario

Veamos a continuación como sería el código de un formulario reentrante.

<html> 
<head> 
   	<title>Me llamo a mi mismo...</title> 
</head> 

<body> 
<? 
if (!$_POST){ 
?> 
   	<form action="auto-llamada.php" method="post"> 
   	Nombre: <input type="text" name="nombre" size="30"> 
   	<br> 
   	Empresa: <input type="text" name="empresa" size="30"> 
   	<br> 
   	Telefono: <input type="text" name="telefono" size=14 value="+34 " > 
   	<br> 
   	<input type="submit" value="Enviar"> 
   	</form> 
<? 
}else{ 
   	echo "<br>Su nombre: " . $_POST["nombre"]; 
   	echo "<br>Su empresa: " . $_POST["empresa"]; 
   	echo "<br>Su Teléfono: " . $_POST["telefono"]; 
} 
?> 
</body> 
</html>

En el ejemplo, el primer paso es conocer si se están recibiendo o no datos por un formulario. Para ello se comprueba con un enunciado if si existe o no una variable $_POST.

En concreto if (!$_POST) querría decir algo como "Si no existen datos venidos de un formulario". En caso de que no existan, muestro el formulario. En caso de que sí existan, recojo los datos y los imprimo en la página.

Se puede ver el ejemplo en funcionamiento en una página aparte.

Para paso de variables por URL

La idea es la misma. Comprobar con un enunciado if si se reciben o no datos desde una URL. Veamos el código a continuación. Se trata de una página que muestra una serie de enlaces para ver las tablas de multiplicar de el 1 hasta el 10. Cada uno de los enlaces muestra una tabla de multiplicar. Pulsando el primer enlace podemos ver la tabla del 1, pulsando el segundo la tabla del 2, etc.

Recordemos que la página se llama a si misma. Para comprenderla más fácilmente será interesante verla en funcionamiento.

<html> 
<head>    	<title>Tablas de multiplicar</title> 
</head> 

<body> 
<? 
if (!$_GET){ 
   	for ($i=1;$i<=10;$i++){ 
      	echo "<br><a href='ver_tabla.php?tabla=$i'>Ver la tabla del $i</a>\n"; 
   	} 
} else { 
   	$tabla=$_GET["tabla"]; 
?> 
   	<table align=center border=1 cellpadding="1"> 
<?	
   	for ($i=0;$i<=10;$i++){ 
      	echo "<tr><td>$tabla X $i</td><td>=</td><td>" . $tabla * $i . "</td></tr>\n"; 
   	} 
?> 
   	</table> 
<? 
} 
?>	
</body> 
</html>

Este código es un poco más complicado, porque hace un poco más de cosas que el anterior, pero para el asunto que nos ocupa que es la autollamada de páginas, todo sigue igual de simple.

Hay que fijarse en el if que comprueba si se reciben o no datos por URL: if (!$_GET), que querría decir algo como "Si no se reciben variables por la URL".

En caso positivo (no se reciben datos por URL) se muestran los enlaces para ver cada una de las tablas y en caso de que sí se reciban datos, se muestra la tabla de multiplicar del número que se está recibiendo en la URL.

Para hacer para mostrar los enlaces y las tablas de multiplicar se utilizan bucles for, que esperamos que no resulten desconocidos para el lector. Puede conocerse algo más sobre los bucles for en Control del flujo en PHP: Bucles II.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

pedro

26/6/2004
existe algún método para llamar a otro programa .php sin tener que pulsar un "aceptar" o una referencia? esto es, por ejemplo: if (condición) { ejecutar X.php }

sirdarckcat

03/8/2004
BUENO EN REPUESTA A TU PREGUNTA (no se si funcione pero deveria de) PODRIA SER:
if(condicion){
include(destino.php);
//o tambien
referer(destino.php)
}

Pepotis

09/10/2004
Efectivamente Pedro, lo que tu dices existe y la sintaxis sería muy sencilla:
<?php
if(condicion){
header("Location:paginadestino.php");
}
?>
Como ves, muy sencillo

RatBat09

25/12/2004
Necesito saber si existe una forma de procesar los datos de los forms en la misma página (autollamada) pero en una seccion específica ej: crear una tabla con los resultados de una consulta en un lugar específico de la página, sin tener que reescribir toda la página nuevamente solo para incluir la parte modificada por la consulta. ej: una tabla.

Aldíbier

05/3/2005
En el primer ejemplo no se si entedí mal, pero no se uspone que si el formulario no contiene datos, deve volver al mismo?, al probarlo lo hice con datos y funcionó perfectamente, pero al dejar el formulario sin datos, lo que me muestra es como si contuviera datos, entonces me muestra

Su nombre:
Su empresa:
Su Teléfono:

vuelvo y hago la misma pregunta, no se supone que volvería al formulario?

RESPUESTA

Efectivamente no vuelve, estamos repasando el codigo.

david

20/5/2005
Al tener un formulario que recoge un login y un password y que al ejecutarlo si la condicion se cumple manda a un pagina determinada, y si no se cumple a otra disteinta, ¿como hago para que los datos introducidos dentro del mismo me lleguen a la opcion verdadera sin interrumpir la opcion falsa?, lo he intentado y no lo he logrado, necesito que luego de la validacion con la base de datos pueda en otra pagina trbajar con los datos que se enviaron primero. El problema en si es que si al formulario le doy un ACTION="paginaX.php" me manda todo a esta pagina y no me respeta la opcion falsa del IF, la cual es abrirma otra pagina distinta. Profavor nesecito ayuda, Gracias!!

koko

29/5/2005
Si tengo una pagina en php que procesa consultas de otras maquinas, como puedo hacer que una vez procesada a consulta regrese a la pagina que le envio los datos, se que es con header y la direccion, pero existe alguna forma para que no se le ponga la direccion, puesto que voy a manejar varias maquinas, x ej. hay una instruccion que la manda a si misma, quiero algo asi pero para la maquina q la mando a llamar, agradeceria su pronta respuesta

Jorge Rivera

31/5/2005
Respondiendo a Pedro, de si existe algún método para llamar a otro programa .php sin tener que pulsar un "aceptar" o una referencia, EXISTE, hay que usar INCLUDE("fichero.PHP"); y este se ejecuta, podemos almacenar el retorno en una variable si lo deseamos:
$retorno = include("fichero.php");

Nelson Silva

30/7/2005
Aunque bien, como ustedes informan, no aseguran respuesta, solo deseo saber sobre el comentario hecio el día 5 de marzo de este año que realizara Aldibier con relacion al funcionamiento del código...

gonzalo

09/9/2005
RESPUESTA A ALDIBIER
Al enviar el formulario los datos del mismo se envian, ya sea con el valor ingresado o con un valor "" si no se completo el campo.
Para volver a mostrar el formulario si es que algun campo no se completo tenes que primero validar los datos enviados.
Una manera es asi:

<html>
<head>
<title>Me llamo a mi mismo...</title>
</head>

<body>
<?
// si el formulario se envio con todos los campos completos devuelve true
function valida($form){
if($form["nombre"] == "" or $form["empresa"] == "" or $form["telefono"] == ""){
return false; }
else{
return true;
}
}
// revisa el formulario enviado
if (valida($_POST)){
echo "<br>Su nombre: " . $_POST["nombre"];
echo "<br>Su empresa: " . $_POST["empresa"];
echo "<br>Su Teléfono: " . $_POST["telefono"];

}else{
?>
<form action="auto-llamada.php" method="post">
Nombre: <input type="text" name="nombre" size="30">
<br>
Empresa: <input type="text" name="empresa" size="30">';
<br>
Telefono: <input type="text" name="telefono" size=14 value="+34 " >
<br>
<input type="submit" value="Enviar">
</form>
<?
}
?>
</body>
</html>

Podes ademas modificar el codigo para que al mostrar nuevamente el formulario se escriban los datos que ya habian sido enviados.
Saludos

gema

23/9/2005
mi problema es que yo no quiero volver a la pagina anterior lo que quiero es coger los dato s y cerrar esa pagina

Manuel Ibáñez

24/10/2005
Hola, estoy leyendo este curso para aprender algo de PHP, pero creo que puedo responder al último comentario.

Al dejar el formulario vacío, lo que estamos haciendo es mandar las variables del formulario pero sin valor (me imagino que tienen un valor de cadena vacía ""), de hecho si enviamos el formulario con un método GET podemos ver en la propia URL como aparecen todas las variables del formulario pero sin ningún valor asignado.

Esto quiere decir que no podemos comprobar que esta vacío mediante la comprobación "if (!$_POST)" ya que con esto solo comprobamos si existe un array $_POST. Pero este array existe por el simple hecho de haber enviado el formulario por el método POST (aunque el valor de las variables de este array sea una cadena vacía), lo que habría que hacer es comprobar una por una cada una de las variables del formulario que se consideran obligatorias. La comprobación resultante podría ser algo así:

if (!$_POST["nombre"] OR !$_POST["empresa"] OR !$_POST["telefono"])

En este caso lo que hacemos es volver a mostrar el formulario si alguno de los campos se ha dejado vacío (en este caso se ha supuesto que todas las variables son obligatorias).

En el segundo ejemplo esto no pasa porque solo existen dos opciones: o se pasa la URL con el parámetro (con lo cual se crea el array $_GET). O bien la URL no tiene parámetros y por tanto no se ha creado un array $_GET, por lo que en ese caso funciona lo de comprobar si existe o no dicho array.

Aprovecho también para responder al primer comentario, aunque debido a la fecha del comentario no sé si el usuario estará todavía interesado en la respuesta. Creo que para conseguir llamar a otro script sin presionar un botón de la manera en que decías, basta con realizar una redirección, lo cual se puede hacer mediante: header("Location: script.php"), donde script.php se corresponde con el script que quieras ejecutar. Pero debes tener en cuenta que esta línea debe ejecutarse antes de que se envíe ninguna otra información al cliente (antes de cualquier etiqueta html, o cualquier texto o incluso de cualquier línea o espacio en blanco enviada al cliente...), obviamente también hay que tener en cuenta que al realizar una redirección cambiamos de página, y por tanto cualquier cosa que vaya despues de la redirección no se llegará a ejecutar.

Bueno, corregidme si me equivoco. Espero que haya servido de ayuda este comentario.

Manuel Ibáñez

24/10/2005
Por cierto, mi anterior comentario era para responder a los dos primeros comentarios, al de Pedro y al de Aldibier. No había visto que habían comentarios y respuestas posteriores, xD.

esteban

27/12/2005
no vuelve porq si no pones nada la variable queda como si fuese 0 y 0 en php es un valor

Yadira

04/1/2006
Excelente articulo funciona perfectamente el pase de variables por la url especialmente cuando se tiene en el php.ini el register_globals en Off. me ha sido de mucha utilidad. Gracias

Aquarius

10/3/2006
que paso con el codigo, yo he tenido el mismo problema con otros if...
hay alguna solucion?

German Andino

23/5/2006
Pues es sencillo, solo hay que agregar mas validaciones... el codigo esta bien, pero incompleto. Este dice: Si se utilizo POST en la pagina que llamo a esta pagina actual, entonces muestra tal cosa, contrariamente, muestra la otra... no dice nada acerca del contenido de dichos formularios...
seria cuestion de agregar

if ($_POST['empresa']="") ...
else ...

Marcos

21/6/2006
Che, en la parte del script del formulario, en la linea 9, ese ?> no deberia ir recién después del cierre del if? Y el <? que está antes de la llave de cierre del if, no debería ir inmediatamente después de esa llave? O estoy diciendo puras gansadas nomas? Bueno espero que el comentario sirva para algo. Chau, muy buen manual!

pedro

26/7/2006
existe alguna forma para que dentro de una tabla me muestre el documento php
osea en una parte me saque el documento
quizas con echo ('ejemplo.php')
?
gracias

Juan Gonzalez

05/9/2006
Me interesa el ejemplo de autollamada de paginas, pero necesito saber ¿como lo aplico a ASP,VBSCRIP o JAVASCRIPT?

Gracias por su tiempo

Jorge Fernandez

19/9/2006
Me gustaria saber si es posible pasar como parametro a una pag. php una matriz.
Lo que quiero hacer es pasar los resultados de una query para ser exportados a excel.
Espero que me puedan ayudar, gracias.

jonás

27/9/2006
Hola dlloWeb,

Estoy empezando en programación.
Tengo una inquietud.
Puede ser este articulo la base de las paginas dinamicas?
Aquellas navegaciones que disparan una pagina con determinada variable, y que hace variar ciertas areas de una pagina.

Es este es fundamento de las paginas dinamicas? el fundamento de las plantillas? es lo mismo...paginas dinamicas y plantillas, una sola pagina que se maneja con areas editables, segun un parametro pasado por url?..favor de procesar este comentario.

saludos

Jonas

DandaveX

24/12/2006
No funciona al poner if (!$_POST){... porque la variable $_POST aunque no tiene valores contiene las claves (nombre, empresa, telefono), por lo tanto la variable $_POST nunca estará vacía.

Para comprobar únicamente si existen los valores de esa variable se puede hacer como explica Manuel Ibáñez en su comentario. O de la siguiente forma si con un solo valor (de los 3 que hay) nos conformamos:

<html>
<head>
<title>Me llamo a mi mismo...</title>
</head>

<body>
<?
Foreach ($_POST as $clave=>$valor);
if (!$valor){
?>
<form action="auto-llamada.php" method="post">
Nombre: <input type="text" name="nombre" size="30">
<br>
Empresa: <input type="text" name="empresa" size="30">
<br>
Telefono: <input type="text" name="telefono" size=14 value="+34 " >
<br>
<input type="submit" value="Enviar">
</form>
<?
}else{
echo "<br>Su nombre: " . $_POST["nombre"];
echo "<br>Su empresa: " . $_POST["empresa"];
echo "<br>Su Teléfono: " . $_POST["telefono"];
}
?>
</body>
</html>

Ricardo

30/12/2006
hola amigos

tengo un problema cuando compito el codigo de php y es que me sale un error en la línea 7 y es donde se el if(!$_GET) error indica que esta indefina la variable, uso php 4.0 con apache 1..

gracias

strike freestyler

23/1/2007
yo estoy intentando pasar variables de un csv a access via php, tengo los rangos y todo listo...lo único es que necesito calcular los bytes de los campos de la hoja Excel para convertirlos a variables.

Eva

02/3/2007
Se puede llamar directamente a otra página usando:
echo "<META http-equiv='refresh' content='0;URL=pagina.php'>";

Raul

11/12/2007
Todabia hay algunas cosillas que no me quedan claras:
$_POST as $clave=>$valor

$clave que cosa es??
$valor???

=> ??

KelGuz

15/2/2009
El primer ejercicio está un poco defectuoso, En cambio la soloción de DANDAVEX está excelente Muchísimas gracias por tu aporte!!!

Tomas

19/7/2009
Problema con autoposteo
El primer ejemplo genera una ventana de reenvio cuando se refresca el navegador.
¿existe solución? Gracias.

Martin

13/8/2009
Codigo probado y funcionando
Hola, el ejemplo arreglado solo verifica que el campo telefono este vacio, no el resto. Este codigo esta mejorado y verifica cada campo antes de mostrar los datos.

<html>
<head>
<title>Me llamo a mi mismo...</title>
</head>

<body>
<?php
if (!$_POST) {
?>
<form action="auto-llamada.php" method="post">
Nombre: <input type="text" name="nombre" size="30">
<br>
Empresa: <input type="text" name="empresa" size="30">
<br>
Telefono: <input type="text" name="telefono" size=14 value="+34 " >
<br>
<input type="submit" value="Enviar">
</form>
<?php
} else {
$valido=1;
Foreach ($_POST as $clave=>$valor) {
if(!$valor) $valido=0;
}
if ($valido==1) {
echo "<br>Su nombre: " . $_POST["nombre"];
echo "<br>Su empresa: " . $_POST["empresa"];
echo "<br>Su Teléfono: " . $_POST["telefono"];
} else {
echo "Faltan Datos en el Formulario, Vuelva a Intentarlo.";
?>
<a href ="auto-llamada.php">Atras</a>
<?php
}
}
?>
</body>
</html>

Jav

04/12/2009
myspace formulario
Hola!

Quisiera saber si alguien sabe como poner un formulario en myspace. Lo he hecho a la vieja usanza: un pequeño form que llama a "enviar.php" que está en mi servidor, pero a pesar de que va a enviar.php, no se han transmitido las variables. Me estoy volviendo loco. Alguien me puede ayudar? Muchas gracias!

gmlo

06/6/2010
autollamada de paginas
Para Aldíbier :
Al dejar los campos en blanco y presionar el boton obviamente te muestra como si contuviera datos porque efectivamente los tiene , ya que estas enviando string (cadenas vacias pero al fin y al cabo siguen siendo string) por eso te muestra :
Su nombre:
Su empresa:
Su Teléfono:

malkavie

27/7/2010
Pequeño ajuste de mi codigo
Saludos,

Bien antes que nada les agradezco su colaboración y entusiasmo al crear páginas como está para que los programadores novel, como yo, podamos incrementar nuestro conocimiento.

Ahora si lanzo la cuestión en este tema al no saber si existe otro mas apropiado para hacerlo, el asunto es simple:

Mi proyecto es realizar un buscador en base de datos para que pagine y arroje los resultados encontrados, hasta el momento todo va bien excepto por un detallito, explico

Tengo un formulario en html el cual envia los datos de mi caja de texto a la página del buscador, mi pagina de buscador tienen también este formulario, este la recibe y hace la consulta en base de datos arrojando y paginando los resultados, esto no falla. El fallo está cuando quiero seleccionar "siguiente" en mi paginador ya que vuelve a la pagina de busqueda y no entrega resultados, es decir no continua mostrando desde el ultimo registro en el que se quedo simplemente borra mi consulta. Esto hace que sólo pueda consultar los primeros 10 resultados pero no los siguientes a pesar de que existen.

Ahora bien, sin el buscador el paginador funciona bien, me muestra los resultados como son (claro que al no tener la condicionante del buscador, muestra toda mi base de datos) pero si le doy siguiente puedo ir navegando entre todos los registros encontrados.

Es decir, logré echar a andar mi buscador y mi paginador y ahora no encuentro el modo de unirlos, sé que mi error esta en el primer condicionante if pero no sé como arreglarlo ¿o quizá no?. Adicionalmente, en mi pagina hay otros elementos ademas del paginador y del buscador, existe un reproductor flash y no quiero que se reinicie cada vez que quiero visualizar mi siguiente grupo de resultados.

Resumiendo
1. Mi paginador resetea la consulta, ergo, no funciona adecuadamente
2. No debe reiniciarse la reproduccion de mi reproductor

De modo que agradecere de antemano y aqui dejo mi codigo php, omiti la sección de conexión al servidor y base de datos:

PD: ignoren mis comentarios en el codigo, ya sé como funciona pero me dio flojera quitarlos

<?php
if (isset ($_POST['ir'])) //establecemos que debe recibir un click desde el boton ir para ejecutar condicion
{
$busqueda = $_POST['buscar']; //si ha recibido el click asignamos la variable busqueda con el valor del texto buscar
echo "Mostrando resultados para: <b>$busqueda</b>"; //indicamos al usuario la consulta que esta realizando
$host = 'dominio';//establecemos variable del host
$user = 'usuario';//establecemos variable del usuario
$pass = 'secreto';//establecemos variable del password
$base = "datos";//establecemos variable de la base de datos
$conexion = mysql_connect($host,$user,$pass); //establecemos variable para conexion
mysql_select_db($base,$conexion); //se hace conexion a servidor buscando la base de datos

$pag = $_GET["pag"];
$cantidad = 10;

if (!$pag) //no me queda claro que chingaos hace
{
$inicial = 0;
$pag = 0; //es la pagina actual... ???
}
else
{
$inicial = $pag * $cantidad;
}

$condicion = "SELECT * FROM empresa WHERE marca LIKE '%$busqueda%' OR nombre LIKE '%$busqueda%' OR descripcion LIKE '%$busqueda%' OR municipio LIKE '%$busqueda%' ORDER BY marca ASC LIMIT $inicial,$cantidad"; //establecemos las condiciones de la consulta y se limita
$consulta = mysql_db_query($base,$condicion) or DIE (mysql_error()); //esta variable es la que hara la consulta en base de datos
$contar = "SELECT * FROM db_empresa WHERE marca LIKE '%$busqueda%' OR nombre LIKE '%$busqueda%' OR descripcion LIKE '%$busqueda%' OR municipio LIKE '%$busqueda%' ORDER BY marca"; //establece condicion para la siguiente variable
$verificar = mysql_db_query($base,$contar); //hacemos la consulta para tomar el total de registros que coincidan
$total = mysql_num_rows($verificar); //entrega el numero total de registros hallados
$paginas = intval($total/$cantidad);//divide los registros hallados entre el numero de registros a mostrar por pagina



echo "<table width='580' border='0'>"; //creamos la tabla donde se mostraran los resultados

while ($array = mysql_fetch_array($consulta)) //mientras que la variable array continue arrojando un resultado de variable consulta

{
if ($colorfila==0) //si la variable colorfila no tiene valor
{
$color = "#DEDEBE"; //entonces la variable color adquiere este valor
$colorfila = 1; //y la variable colorfila adquirira valor
}
else //pero si la variable fila tiene valor
{
$color = "#FOFOFO"; //entconces la variable color tendra este otro valor
$colorfila = 0; //y la variable colorfila se quedara sin valor, esto crea un bucle con el condicionante de arriba
}
echo "<TR bgcolor='#FFFFFF'>";
echo "<TD width='200' align='center' valign='middle'>";
?><img src="<?
$file = "logo/" .$array['id'] . ".jpg";
if (file_exists($file))
{echo $file;}
else
{echo "logo/default.jpg";}
?>"/><?php
echo "</TD>";
echo "<TD widht='380' bgcolor= '".$color."'>";
echo "<b><font face='Times New Roman' size='3'>".$array['marca']."</font></b><br>";
echo "<font face='Times New Roman' size='2'>".$array['nombre']."</font><br>";
echo "<font face='Times New Roman' size='1'>".$array['descripcion']."</font><br>";
echo "<font face='Times New Roman' size='1'><b>Dirección:</b>".$array['direccion']."</font>&nbsp;";
echo "<font face='Times New Roman' size='1'><b>Col:</b>".$array['Colonia']."</font>&nbsp;";
echo "<font face='Times New Roman' size='1'><b>C.P:</b>".$array['cp']."</font><br>";
echo "<font face='Times New Roman' size='1'><b>Del/Mpio:</b>".$array['municipio']."</font>&nbsp;";
echo "<font face='Times New Roman' size='1'><b>Tel:</b>".$array['telefono']."</font><br>";
echo "<font face='Times New Roman' size='1'><b>Mail:</b>".$array['emailcontacto']."</font>&nbsp;&nbsp;&nbsp;";
echo "<font face='Times New Roman' size='1'><b>Sitio:</b>".$array['URLweb']."</font><br>";
echo "</TD>";
echo "</TR>";
//imprime resultado formateado con etiquetas html, varias columnas o una sola
}
echo "</table>"; //cerramos la etiqueta de la tabla



echo "<p>"; //bueno esta es una etiqueta html para parrafo, fácil ¿no?

if ($pag <> 0) //aqui otra vez me perdi, ¿esto que chingaos hace?
{
$url = $pag - 1; //la variable url es igual a la variable pag menos uno
echo "<a href='buscador.php?pag=".$url."'>&laquo; Anterior</a>&nbsp;"; //este es el enlace para ir a la pagina anterior
}
else //bueno es le la condicion anterior que no tengo idea que hizo
{
echo ""; //bueno esto no imprime nada, despues de todo creo que estamos en la primer pagina, no hay otra antes
}
for ($i = 0; $i<($paginas + 1); $i++) //no, ni idea otra vez
{
if ($i==$pag)
{
echo "<font face = Arial size = 2 color = ff0000><b>&nbsp;$i&nbsp;</b></font>"; //sigo perdio
}
else
{
echo "<a href='buscador.php?pag=".$i."'>".$i."</a>&nbsp;"; //¿y como esperaban que yo solito imaginara todo esto?
}
}
if ($pag < $paginas)
{
$url = $pag + 1;
echo "<a href='buscador.php?pag=".$url."'>Siguiente&raquo;</a>"; //nel, aun no se que está pasando
}
else
{
echo "";
}
echo "</p>";

mysql_close($conexion); //aqui se cierra la conexion

}
else //si no recibio el click del boton
{
echo "<h3><b>Ingrese su criterio de búsqueda</b></h3>";//mostrara este mensaje indicando al usuario que debe establecer criterio
}
?>

milita2412

01/9/2010
ver_tabla.php
Intente ejecutar desde mi propio servidor web el codigo de ver_tabla.php y no funciona.

Por que?...algo esta mal?

eduge2505

08/10/2010
PROBLEMA CON FORMULARIO PHP
Hola , estoy trabajando con formularios php y con xampp incluido php version 5.3.1 y como editor y servidor de pruebas el dreamweaver cs4 todo me ha trabajado bien hasta el momento con pequeños ejemplos de php, pero al llegar al tema formularios me sale el error en el navegador:

OBJETO NO ENCONTRADO
error 404

cabe recalcar que uso el puerto 8080 en vez del 80 y el 1443 en vez del 443 pues estan ocupados y los he configurado bien en el archivo httpd del apache...bueno, pero al trabajar con formularios php con get y post me sale ese error cuando quiero ver los datos de los formularios, ya sea trabajando con 2 archivos o con formularios reentrantes o sea llamandome a mi mismo.

aqui les dejo un script de ejemplo en que me sale el problema:

<form action="script.php" method="get" >

<input type="text" name="dato1"/>
<br/>
<input type="submit"/>

</form>


y el archivo que recibe los datos:


<?php

echo $_GET['dato1'];

?>

----tengo el problema tanto con get como con post. que seria? , no he tocado el php.ini, las sessions globals estan en off, sera problema de configurar las url amigables?, es un quebradero de cabeza para mi pues soy novato en esto, su ayuda sera muy valiosa, gracias.

Yoandris Velazquez Romero

16/1/2011
DUDA
Hola..
Estoy haciendo una pagina web en php ..
En la pagina principal tengo un formulario con un campo de texto
que le paso el paramatro de busqueda para que por ese parametro de busqueda me busque lo que yo deseo y me lo muestre en una tabla en esa misma pagina...
Mi duda es que no se como hacerlo, ya tengo hecha la funcion php que me devuelve todo donde sea igual al parametro de busqueda pero en el action del form lo envio a un archivo php y me muestra el
resultado en una pagina en blanco y lo que quiero es que me lo muestre en la pagina principal..
Si saben la respuesta necesito saberlo.. seria de gran aydua

Sentinel13

17/3/2011
NO funciona tu sxrip
Hola! sabes he estado probando este codigo pero no hace tiene algunos fallos no se el proposito en si del mismo pero segun describes arriva si los campos del formulario tienen datos imprime y pasa a la siguiente pantalla por asi decirlo, pero si no muestra el formulario, pero en si al borrar los datos muestra siempre los espacios vacios, por lo que tendrias que revisar tu scrip, para hacer las correcciones pertinentes, si puedo pronto pondre una solucion a este problemita, ok, pero gracias por tu aporte...

Jose Luis

15/5/2011
Duda del get
-Hola estoy comenzando a trabajar con php y tengo el siguiente script

<html>
<head>
<title>Inicio</title>
</head>
<body>
<?
if(!$_GET)
{
<br><a href='acercade.php?'>ir hacia acerca de</a></br>
}
?>
</body>
</html>

el asunto es que cuando lo ejecuto a parte de link que me lleva a la pagina
acercade.php me imprime el tag ?> de cierre de php alguien sabe porque?

Otra duda que tengo es porque se cae si al inicio empiezo el tag con "<?php" en vez de solo "<?"?

luis

14/4/2012
manejo de variables en php
Hola buena tarde, soy nuevo en el foro y me gustaria saber si alguien me puede ayudar en el manejo de variables entre formularios con php.
bien mi problema es que tengo un pequeño sistema con base de datos de altas, bajas etc. mi problema es que no puedo mandar llamar una variable desde un formulario de html para imprimirlo en un archivo pdf con la libreria fpdf, explico mas a detalle, tengo mi menu principal en el que doy de alta nuevos usuarios, despues hago consulta para ver los datos que tengo en la base de datos mediante un id de determinado usuario y lo hace todo bien, de hecho muestra mi formulario con los datos deshabilitados para que los usuarios no puedan modificar a menos que se administrador el problema surge aqui...que una vez que mando imprimir esos datos en un reporte pdf no me imprime la variable almacenada en la base de datos
solo muesta lo siguiente
nombre:
apellido:
direccion:
algo asi
lo que estoy manejando en codigo es lo sigueinte
//MANEJAMOS variables
$pdf->Ln(15);
$pdf->SetFont('Arial','B',13);
$pdf->Cell(320,5,'NOMBRE: ',0,1,'C'); <--- texto en mi pdf
$pdf->SetFont('Arial','B',13);
$pdf->Cell(360,-5,$_POST['nombre'],0,1,'C'); <-- este es el nombre de mi variable en la BD
$pdf->Ln(10);

//MANEJAMOS APELLIDO PATERNO
$pdf->Write (7,"Apellido Pat: ");<---- texto en mi reporte pdf
$pdf->SetFont('Arial','',13);
$pdf->Write (7,$_POST['apepat']); <-- este es el nombre de mi variable en la BD
$pdf->Ln();

//MANEJAMOS APELLIDO MATERNO
$pdf->SetFont('Arial','B',13);
$pdf->Write (7,"apemat: ");<---- texto emi reporte pdf
$pdf->SetFont('Arial','',13);
$pdf->Write (7,$_POST['apemat']); <-- este es el nombre de mi variable en la BD
$pdf->Ln();

$pdf->SetFont('Arial','B',13);
$pdf->Write (7,"DIRECCION: ");<---Esto es texto en mi reporte pdf
$pdf->SetFont('Arial','',13);
$pdf->Write (7,$_POST['direccion']);<-- este es el nombre de mi variable en la BD
$pdf->Ln();

ya intente con el metodo _POST, _GET, _REQUEST, y reg y ninguna me imprime

de antemano agradeceria si me pudieran dar ideas o la solucion a este problema
saludos!!!

ALBEISE

22/5/2014
solicito ayuda
Saludos necesito saber como debo hacer para que usando un boton buscar me busque un articulo una vez escrito el codigo y de la tabla de articulos me busque nombre y descripcion y los muestre en el formulario donde esta el boton buscar

gracias

albertocharly

08/8/2015
como mostrar detalle de producto
Hola Srs. desarrolloweb , estoy armando algo en php ,(un pequeño proyecto de muestra de productos de x usuarios), y tengo problemas,,,
tengo un buscador que hace su trabajo correctamente y me lista los productos almacenados en mysql,,
pero a cada uno de esos productos le quisiera hacer un enlace a : "ver mas",,
y no tengo idea como hacerlo,,
ya que el enlace se tendria que hacer individual a cada x producto, (no se si por medio de alguna cookie , o algo parecido,,) -creo que se entiende no?,,,el visitante al ver la lista de productos que se le presente segun la busqueda efectuada, deberia poder acceder a mas detalles de cada uno de esos productos,, si me pudiesen dar una mano,,
desde ya muchas gracias,,

srg301091

26/2/2016
No me funciona
Copio el código tal cual pero no me funciona. Me da como resultado, introduzca o no los datos en el formulario, lo siguiente:

Nombre:
Empresa:
Telefono: +34
Enviar

Su nombre: " . $_POST["nombre"]; echo "
Su empresa: " . $_POST["empresa"]; echo "
Su Teléfono: " . $_POST["telefono"]; } ?>

Utilizo la versión 5.6.16. ¿Alguien me ayuda? Gracias de antemano.

srg301091

26/2/2016
PHP 5.6.16
Solucioné el error anterior. Al parecer debo usar <?php en lugar de <? cuando abro etiqueta para el código php.

guillermo penedo

23/10/2016
autollamada
no me funcionan los codigos de me llamo a mi mismo que están en los comentarios, si alguien podría revisarlos y postear una solución sería genial. gracias.

lonchanick

17/8/2017
No corre
Al intentar ejecutar el ejemplo me sale este msg de erro:

¡Acceso prohibido!
Usted no tiene permiso para acceder al objeto solicitado. El objeto está protegido contra lectura o el servidor no puede leerlo.
Si usted cree que esto es un error del servidor, por favor comuníqueselo al administrador del portal.
Error 403
127.0.0.1
Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30

lonchanick

18/8/2017
Resuelto
Para los que no les ejecuta el primer ejemplo correctamente, puede que estén usando una carpeta o directorio mas allá al de htdocs; Por ejemplo yo estoy usando una carpeta adicional a htdocs asi: "htdocs/Israel/myfile.php" .. en el campo action del formulario tienen que colocar asi; <form action="htdocs/Israel/myfile.php" method="post"> ...