Foros del Web » Programando para Internet » PHP »

Web php

Estas en el tema de Web php en el foro de PHP en Foros del Web. Hola.. alguien sabe como puedo hacer una web con ? = asi "http://www.dominio.com/index.php?id=02" alguien conoces tutoriales sobre eso.. gracias!!...
  #1 (permalink)  
Antiguo 21/11/2005, 14:21
Avatar de Stephano  
Fecha de Ingreso: junio-2005
Ubicación: Arequipa
Mensajes: 392
Antigüedad: 12 años, 6 meses
Puntos: 3
Web php

Hola.. alguien sabe como puedo hacer una web con ? = asi "http://www.dominio.com/index.php?id=02"
alguien conoces tutoriales sobre eso..
gracias!!
  #2 (permalink)  
Antiguo 21/11/2005, 15:30
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
El ? separa el nombre de la web o script de los parámetros que quieres enviar, para separar los siguientes parámetros se usa el &

www.site.es/index.php?var1=pepe&var2=34&var3=xxx

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 21/11/2005 a las 16:29
  #3 (permalink)  
Antiguo 21/11/2005, 16:52
Avatar de Stephano  
Fecha de Ingreso: junio-2005
Ubicación: Arequipa
Mensajes: 392
Antigüedad: 12 años, 6 meses
Puntos: 3
no te dejas entender.. yo recien me estoy iniciando en php, ese site que pusiste ahi esta blanco.. de todo modos gracias por tu ayuda..
  #4 (permalink)  
Antiguo 21/11/2005, 17:32
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
En enlace anterior solo es un ejemplo, en él se envían tres parámetros a un script llamado index.php y son:

var1 que tiene un valor de "pepe"
var2 que tiene un valor de "34"
var3 que tiene un valor de "xxx"

Guarda el siguiente ejemplo con el nombre de prueba.php:

Código PHP:
<html><head>
<title>Ejemplo de paso de variables a través de la url</title>
</head>
<body>
<a href="prueba.php?var1=pepe">Pincha aquí para enviar las variables a través de la url</a><br><br>

<form method="get" action="prueba.php">
Escribe tu nombre: <input type="text" name="nombre"></input>
<input type="submit" value="Enviar"></input>
</form>


<br><br>

<form method="post" action="prueba.php">
Escribe tu nombre: <input type="text" name="nombre"></input>
<input type="submit" value="Enviar"></input>
</form>

<?php
//Comprobamos si existe una variable pasada por el método request y llamada var1
if (isset($_REQUEST['var1'])) echo "var 1 vale ".$_REQUEST['var1'];
//Comprobamos si existe una variable llamado nombre enviada a través del método get
if (isset($_GET['nombre'])) echo "Hemos enviado una variable llamada <b>nombre</b> a través de un formulario por el método GET que vale <b>".$_GET['nombre']."</b>";
//comprobamos si existe una variable llamada nombre enviada a través del método post
if (isset($_POST['nombre'])) echo "Hemos enviado una variable llamada <b>nombre</b> a través de un formulario por el método POST que vale <b>".$_POST['nombre']."</b>";
?>
</body>
</html>
Fíjate que por el método post en la url no se ven los parámetros que envias ni su valor.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 21/11/2005 a las 17:48
  #5 (permalink)  
Antiguo 21/11/2005, 20:10
Avatar de kire  
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 12 años, 8 meses
Puntos: 0
Cita:
<?
// Donde se incluyen las paginas de forma automatica (con la url index.php?id=nombrepagina
// se abriria la pagina nombrepagina.php en esta parte).
if(!$id) {
include("home.php");
}
else {
if(file_exists("$id.php")) {
include("$id.php");
}
else {
include("error.php");
}
}
?>
FUNCIONAMIENTO:

al poner por ejemplo: index.php?id=home, se mostrará el index.php con la pagina home incluida en el lugar donde habeis puesto eso. si la pagina no existe se pondra la pagina de error!

PARA LOS QUE QUIEREN SABER ALGO MAS:

esta web, utiliza ese mismo script, esto lo que hace, es por ejemplo:
pagina hola.php:
Cita:
font face="arial">holaaaaaa</font><br /> Holaaa

y en la pagina index.php ponemos:
<table><tr><td><?
// Donde se incluyen las paginas de forma automatica (con la url index.php?id=nombrepagina
// se abriria la pagina nombrepagina.php en esta parte).
if($id == "") {
include("home.php");
}
else {
if(file_exists("$id.php")) {
include("$id.php");
}
else {
include("error.php");
}
}
?></td></tr></table>
al poner index.php?id=hola, el servidor PHP encriptaria eso, y lo imprimiria de la siguiente forma
Cita:
<table><tr><td><font face="arial">holaaaaaa</font><br /> Holaaa</td></tr></table>
__________________
Buscando Razon De Ser :-D
  #6 (permalink)  
Antiguo 21/11/2005, 20:11
Avatar de kire  
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 12 años, 8 meses
Puntos: 0
solo tienes que poner ese codigo donde quieras que este la pag incluida
__________________
Buscando Razon De Ser :-D
  #7 (permalink)  
Antiguo 22/11/2005, 02:20
Avatar de Stephano  
Fecha de Ingreso: junio-2005
Ubicación: Arequipa
Mensajes: 392
Antigüedad: 12 años, 6 meses
Puntos: 3
Hola gracias por responder... hize todo lo que me dijste pero me sale un error que es lo que estoy haciendo mal el erro es este.. y una otra cosa cuando pongo index.php?=001 no imprime la pagina 001.php siguie ahi en index.php

index.php
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<? 
// Donde se incluyen las paginas de forma automatica (con la url index.php?id=nombrepagina
// se abriria la pagina nombrepagina.php en esta parte).
if(!$id) { 
include(
"home.php"); 
}
else { 
if(
file_exists("$id.php")) { 
include(
"$id.php"); 

else { 
include(
"error.php"); 


?> 
<p>probando .............. </p>
<p><a href="index.php?=001">link</a></p>
</body>
</html>
001.php
Código PHP:
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
title>Documento sin t&iacute;tulo</title>
</
head>

<
body>
 
nueva web bla bla
</body>
</
html
cuando lo subi al servidor me arroja este error
Warning: main(home.php): failed to open stream: No such file or directory in /home/stepweb/public_html/e/index.php on line 13

Warning: main(): Failed opening 'home.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/stepweb/public_html/e/index.php on line 13

probando ..............

Link de la pagina AQUI
  #8 (permalink)  
Antiguo 22/11/2005, 03:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por Stephano
alguien sabe como puedo hacer una web con ? = asi "http://www.dominio.com/index.php?id=02"
Consulta las FAQ, claramente tienes una que dice textualmente "Como hago esas páginas web que las secciones q incluyen son del tipo index.php?id=2". ¿no es prácticamente tu misma pregunta?.
http://www.forosdelweb.com/showthrea...278#post265278

Entrarás, te darás cuenta que a eso se les conoce como "Web Modulares", buscarás en el foro --supongo te quedarían dudas-- y hayarás un artículo muy citado: http://www.zonaphp.com/articulo34.php

Cita:
cuando pongo index.php?=001 no imprime la pagina 001.php siguie ahi en index.php
La URI debe tener un parámetro y su valor, tu solo indicas el valor, no el parámetro. Deberia de ser archivo.php?parametro=valor (index.php?id=001 --en serio clickea el enlace ).

Comentario: Seguramente tienes register_globals en ON, por seguridad --y porque es obsoleto-- deberías desactivar esto y recojer los valores con la variable (matriz) superglobal $_GET. Otra FAQ: http://www.forosdelweb.com/showthrea...989#post238989

Según tu ejemplo sería $_GET['id']; bien puedes asignarselo a una variable $id para que manejes todo eso:
Código PHP:
$id$_GET['id']; // quizá te convenga validar antes su existencia
include("$id.php"); // ó include($id.".php"); 
Otro detalle es que ve que estás solo estás incluyendo... toma el include() como un copy&paste. Si tu archivo 001.php lo incluyes tal como está tu código final tendría una mala estructura (ve tu código fuente):
Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>

<!-- EL SIGUIENTE CÓDIGO PERTENECERIA A 001.php -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
nueva web bla bla
</body>
</html> 
<!-- FIN DE 001.php -->

<p>probando .............. </p>
<p><a href="index.php?=001">link</a></p>
</body>
</html> 
El archivo a incluir solo debería tener la línea correspondiente a "nueva web bla bla" --según tu código-- ó HTML que originalmente debe estar como <body>... repito: ve al include() como un copy&paste.

Cita:
Warning: main(home.php): failed to open stream: No such file or directory in /home/stepweb/public_html/e/index.php on line 13
El error (que es cuestión aparte de todo lo dicho) te esta diciendo que no encuentra el archivo home.php... como estás indicando solo el nombre del archivo ("sin ruta"), se entiende dicho archivo esta en la misma carpeta. Analizando el enlace que dejas se ve que no es así: http://www.stepweb.info/e/home.php

Espero haberte aclarado tus dudas... lee los enlaces que dejo para que entiendas la teoria de las webs modulares y el uso del include(). Suerte!

EDITO:
Releyendo tus palabras:
Cita:
no imprime la pagina 001.php siguie ahi en index.php
.. y seguirá en index.php supongo ya te quedará claro eso. Incluyes código, no redireccionas (como para que "no siga en el index"). Redireccionar es otra cosa y requiere de mucho más cuidado (haciendose con PHP)... ignora este comentario .
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 22/11/2005 a las 04:22
  #9 (permalink)  
Antiguo 22/11/2005, 07:03
Avatar de Stephano  
Fecha de Ingreso: junio-2005
Ubicación: Arequipa
Mensajes: 392
Antigüedad: 12 años, 6 meses
Puntos: 3
Gracias!! me fue de gran ayuda.., una pequeña duda mas... home.php que codigo debe de ir ahi o simplemente hago un php en blanco?
  #10 (permalink)  
Antiguo 22/11/2005, 07:36
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
home.php que codigo debe de ir ahi o simplemente hago un php en blanco?
lo que quieras!. según entiendo ese código (pensé que tú lo habías escrito) esta pensado para que home.php sea, propiamente, tu página de inicio, el default, el "verdadero index". No es otro archivo más que incluir, así como lo es 001.php ó error.php, todo depende de "las circuntancias" que se den (traduscase: de qué condiciones se cumplan).

... los enlaces iniciales (FAQ, artículos), tienes toda la teoría y mucho código.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 22/11/2005, 12:46
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 13 años, 9 meses
Puntos: 0
si el numero de parametros pasado por el get..... pueden ser variables....... hay alguna forma de saber cuantos han sido pasados o de recorrerselos todos?
  #12 (permalink)  
Antiguo 22/11/2005, 13:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
$_GET es un array .. así que puedes recorrerlo comodamente con un bucle tipo:

Código PHP:
foreach ($_GET $clave=>$valor){
   echo 
$clave." = ".$valor."<br>";

Y como array que es . .si quieres contar el n° de "variables" que llegan por dicho método aplica count() .. en fin .. puedes aplicar cualquier función de trabajo con arrays a dicho "array superglobal" ($_GET, $_POST .. etc)

Un saludo,
  #13 (permalink)  
Antiguo 22/11/2005, 15:55
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 13 años, 9 meses
Puntos: 0
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 07:08.