Gracias a todos por vuestra colaboración. Intentaré afinar el problema según lo que me comentáis.
A GatorV, le indico lo que hay en la linea 252:
Código PHP:
Ver original$this->iniciar_sesion($_POST['usuario'], $_POST['clave']);
en el siguiente contexto:
Código PHP:
Ver originalpublic function iniciar_sesion(){
//Se procesa la información.
if (isset($_POST['usuario'])){ if (isset($_POST['clave'])){ $this->iniciar_sesion($_POST['usuario'], $_POST['clave']);
header('Location: ' . $_SERVER['SERVER_NAME']); }else{
echo " <p>\n";
echo " <em>Resultado:</em> Por favor, introduzca la clave.\n";
echo " </p>\n";
}
}else{
echo " <p>\n";
echo " <em>Resultado:</em> Por favor, introduzca su nombre de usuario.\n";
echo " </p>\n";
}
}
Esta función es llamada:
Código PHP:
Ver original//Creación de la página.
$web = new Recepcion(AUTOR,
FECHA_CREACION,
FECHA_MODIFICACION,
VERSION);
$web->escribir_doctype();
$web->iniciar_html();
$web->escribir_head();
$web->iniciar_body();
$web->escribir_capa_superpuesta();
$web->iniciar_contenedor();
$web->iniciar_encabezamiento();
$web->escribir_menu_superior();
$web->escribir_submenu_superior();
$web->escribir_mensaje_de_informacion('');
$web->escribir_mensaje_de_aviso('');
$web->escribir_mensaje_de_exito('');
$web->escribir_mensaje_de_error('');
$web->finalizar_encabezamiento();
$web->iniciar_columna_central();
$web->iniciar_columna_izquierda();
$web->titular_columna_izquierda(TITULO, SUBTITULO);
$web->escribir_columna_izquierda();
$web->indexar_inicio(HAY_ENLACE_AL_INICIO);
$web->finalizar_columna_izquierda();
$web->iniciar_columna_derecha();
$web->escribir_columna_derecha_introduccion();
if(isset($_POST['accion'])){ if($_POST['accion']=='iniciar_sesion'){
$web->escribir_columna_derecha_inicio_sesion();
}elseif($_POST['accion']=='recuperar_clave'){
$web->escribir_columna_derecha_recuperacion_clave();
}elseif($_POST['accion']=='registrar_usuario'){
$web->escribir_columna_derecha_registro_usuario();
}else{
//Nada.
}
}else{
//Nada.
}
if(isset($_POST['recuperar_clave'])){ $web->enviar_clave();
}
if(isset($_POST['iniciar_sesion'])){ $web->iniciar_sesion();
}
if(isset($_POST['registrar_usuario'])){ $web->registrar_usuario();
}
$web->finalizar_columna_derecha();
$web->finalizar_columna_central();
$web->finalizar_contenedor();
$web->finalizar_body();
$web->finalizar_html();
El parámetro "iniciar_sesion" es recibido del siguiente formulario:
Código PHP:
Ver originalpublic function escribir_columna_derecha_inicio_sesion(){
echo " <p>\n";
echo " <em>Inicio de sesión</em>";
echo " </p>\n";
echo " <p>\n";
echo " Por favor, rellene los campos abajo descritos\n";
echo " si desea iniciar una sesión no anónima.\n";
echo " </p>\n";
echo " <p>\n";
echo " Atención: La página se encuentra todavía en construcción\n";
echo " y no se almacenan de forma persistente los usuario. Es por ello que todas las sesiones son,\n";
echo " por ahora anónimas.\n";
echo " </p>\n";
echo " <p>\n";
echo " Disculpe la molestia y gracias por su confianza.\n";
echo " </p>\n";
echo " \n";
echo " <form id='sesion' name='sesion' method='post' action='".$_SERVER['PHP_SELF']."'>\n";
echo " <p>\n";
echo " <label>\n";
echo " Nombre de usuario*:\n";
echo " <br/>\n";
echo " <input id='usuario' name='usuario' type='text' size='30%' />\n";
echo " </label>\n";
echo " </p>\n";
echo " <p>\n";
echo " <label>\n";
echo " Contraseña*:\n";
echo " <br/>\n";
echo " <input id='clave' name='clave' type='text' size='30%' />\n";
echo " </label>\n";
echo " </p>\n";
echo " <p>\n";
echo " <input id='iniciar_sesión' name='iniciar_sesion' type='submit' value='Iniciar' />\n";
echo " </p>\n";
echo " </form>\n";
echo " \n";
}
Como podéis ver, no hay ninguna rutina de repetición en todo el código.
Respecto a las llaves, nunca he tenido problema en introducir el objeto y su método en una cadena destinada a ser una consulta SQL.
P.D. gnzsoloyo, gracias por cambiar el post. La verdad que cuando fui a publicarlo dudaba de ponerlo en un lado o en otro.