Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/plugins/avatarep.php on line 1102

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/mybb-es.com/html/inc/class_language.php on line 201
Programacion modular de sitios.
Himura   15 Apr, 2011, 4:57 pm
#1
estas creando un sitio con varias paginas pero no tienen muchos contenido y quieres evitarte el uso de muchos archivos para realisarla, usando este tuto podemos crear las paginas usando un solo archivo...
por ejemplo usemos esta misma web en el panel de control hay varias paginas pero es solo un archivo usercp.php.
usercp.php?action=options
usercp.php?action=profile
usercp.php?action=avatar
usercp.php?action=editsig
entre otras, pues para hacer esto msmo en tu sitio por ejemplo digamos que tienes cinco paginas el indice, usuarios, productos, acerca de..., contacto.
normalmente tendrias que crear 5 archivos diferentes para mostrar estas paginas, pero usando las sentencias de control y el envio de informacion mediante get podemos hacer lo mismo.
veamos el ejemplo
usercp.php?action=options
usercp.php = es el archivo php
?action= aca estamos mandando informacion al archivo php mediante get action es el nombre que se le dio al "campo" (??? no se como llamarle ???)
esta claro que es solo una palabra y puede ser reemplasada por cualquiera claro esta que tiene que tomarse en cuenta en el archivo php.
=options = es la informacion que estamos enviando mediante get la cual sera comparada y mostrara la pagina deseada.

entonces teniamos que enviamos informacion al archivo usercp.php mediante get, para recibir la informacion y trabajar con ella, usamos la variable $_GET[xxx] en ete caso seria
$_GET[action]
$_GET[] = claro es la variable sistema que se usa para trabajar con informacion mandada mediante get
action = al nombre del campo que envia la informacion ntonces tendriamos que $_GET[action]=options, mas informacion busquen sobre variables y formularios.

escribamos el archivo index.php
Código PHP:
<?php 
<php
//ejemplo de sitio modular por Himura
//asi mostramos la pagina principal al entrar a index.php
if(!$_GET[page])
{
echo
"contenido de indice pagina principal";
}
// para mostra la pagina usuarios, index.php?page=usuarios
elseif($_GET[page]=="usuarios")
{
echo
"pagina de usuarios";
}
// para mostra la pagina productos, index.php?page=productos
elseif($_GET[productos])
{
echo
"pagina de productos";
}
// para mostra la pagina acerca de, index.php?page=about
elseif($_GET[page]=="about")
{
echo
"pagina de acerca de..."
}
// para mostra la pagina contacto, index.php?page=contacto
elseif($_GET[page]=="contacto")
{
echo
pagina de contacto";
}

Con switch by ~Night
Código PHP:
<?php
switch($_GET['page']){
case
"usuarios":
echo
"pagina de usuarios";
break;
case
"about":
echo
"pagina de acerca de...";
break;
default:
echo
"Aquí iría la página normal creo yo";
}
?>
yo uso siempre la primera forma...
MaTiiass   15 Apr, 2011, 5:23 pm
#2
genial himura +rep xD
Edson Ordaz   15 Apr, 2011, 6:52 pm
#3
Muy buen tuto Himura....
Respecto al ejemplo de usercp.php en MyBB se usa asi
Código PHP:
<?php 
$mybb
->input[xxx];

Saludos!!!
Himura   15 Apr, 2011, 7:00 pm
#4
si es cierto en mybb se usa asi $mybb->input[xxx]; claro esta que si usas $_GET[xxx] funcionaria igual
la gracia de $mybb->input[xxx];seria que recive informacion tanto de get como post...
si se programa para mybb es mejor usar $mybb->input[xxx];sobretodo las paginas que usan ceo...
Mochihost   16 Apr, 2011, 2:34 am
#5
la 1º forma es muy hackeable prueba a que get sea ' OR '1'='1'
Gypaete   16 Apr, 2011, 4:51 am
#6
No hace falta poner elseif ,si pones otro if funciona igual.
Mochihost   16 Apr, 2011, 5:00 am
#7
si pones

if

if

if

pasa por los 3 if, si pones else if, al llegar al que quieres, no pasa por el resto, usa menos recursos Tongue

por eso es mejor switch, por que va directamente al que queremos y no chupa tantos recursos como if Big Grin
  
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.