paginas incluidas no funcionan correctamente

Iniciado por gAb1, 28 Septiembre 2014, 05:20 AM

0 Miembros y 1 Visitante están viendo este tema.

gAb1

Si te refieres a listar los archivos y con sus rustas completas, aqui va:

/ includes -> config.php
              -> db_connect.php
              -> functions.php

/ themes/default/views/layouts  -> main.php

/ views/site -> login.php

Si, los archivos estan en su sitio y los nombres estan bien.

Ese error me lo dio antes cuando cambie la ruta a './db_connect.php' pero era mas largo el mensaje o creo que era el segundo que mostraba, ya no me acuerdo.

MinusFour

Agrega:

Código (php) [Seleccionar]

if(isset($mysqli)){
var_dump($mysqli);
}


Al final de db_connect.php, correlo y pega el output.

Mueve ese mismo código después a functions.php justo despues del require_once a db_connect.php, correlo y pega el output.

gAb1

#12
el de db_connect.php:
Código (php) [Seleccionar]
object(mysqli)#1 (19) { ["affected_rows"]=> int(0) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(134) "Uptime: 22348 Threads: 1 Questions: 657 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.029" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(554) ["warning_count"]=> int(0) }

el de functions.php:
Código (php) [Seleccionar]
string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(555) ["warning_count"]=> int(0) } object(mysqli)#1 (19) { ["affected_rows"]=> int(-1) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(134) "Uptime: 22459 Threads: 1 Questions: 660 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.029" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(555) ["warning_count"]=> int(0) }

Eso es con el include($_SERVER['DOCUMENT_ROOT'] . '/includes/db_connect.php'); en login.php y en main.php junto con el require_once a functions.php

MinusFour

Cita de: gAb1 en  1 Octubre 2014, 01:01 AM
el de db_connect.php:
Código (php) [Seleccionar]
object(mysqli)#1 (19) { ["affected_rows"]=> int(0) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(134) "Uptime: 22348 Threads: 1 Questions: 657 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.029" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(554) ["warning_count"]=> int(0) }

el de functions.php:
Código (php) [Seleccionar]
string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(555) ["warning_count"]=> int(0) } object(mysqli)#1 (19) { ["affected_rows"]=> int(-1) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(134) "Uptime: 22459 Threads: 1 Questions: 660 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.029" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(555) ["warning_count"]=> int(0) }

Eso es con el include($_SERVER['DOCUMENT_ROOT'] . '/includes/db_connect.php'); en login.php y en main.php junto con el require_once a functions.php

No hagas el include desde login.php... el propósito es encontrar porque no funciona al importar solamente functions.php...

gAb1

solo con el include en main.php

Código (php) [Seleccionar]
object(mysqli)#1 (19) { ["affected_rows"]=> int(0) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(135) "Uptime: 24111 Threads: 1 Questions: 1985 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.082" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(1057) ["warning_count"]=> int(0) } object(mysqli)#1 (19) { ["affected_rows"]=> int(-1) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(135) "Uptime: 24111 Threads: 1 Questions: 1986 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.082" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(1057) ["warning_count"]=> int(0) } object(mysqli)#2 (19) { ["affected_rows"]=> int(0) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) ["stat"]=> string(135) "Uptime: 24111 Threads: 2 Questions: 1988 Slow queries: 0 Opens: 71 Flush tables: 1 Open tables: 64 Queries per second avg: 0.082" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(1058) ["warning_count"]=> int(0) }

Código (php) [Seleccionar]
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\themes\default\views\layouts\main.php:45) in C:\xampp\htdocs\includes\functions.php on line 28

Warning: session_regenerate_id(): Cannot regenerate session id - headers already sent in C:\xampp\htdocs\includes\functions.php on line 29

Notice: Undefined variable: mysqli in C:\xampp\htdocs\views\site\login.php on line 6

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\includes\functions.php on line 155


Sin el include en main.php solo aparecen los dos errores de siempre.

MinusFour

Debe ser un problema de visibilidad por la función showContent()...

¿Porque no pones más código para ver todo? Siento que en un lugar estás encapsulando código y otras partes del script no ven las variables. Sobre todo por la manera tan extraña en la que estás llamando a una funcion que no ha sido declarada en ese archivo.

gAb1

Claro, las funciones las declaro en functions.php para no tenerlas en los archivos de contenido visual.

La función showContent() de index.php ya sabes cual es, haciendo un include() normal al archivo y mostrandolo dentro de main.php que es incluido dentro de index.php, pero eso ya lo sabes.

main.php es un archivo de estructura html5 con etiquetas <?php ?> para llamar funciones o scripts para el menu de navegación, etc. Por ejemplo, el primer error de antes en main.php:45

Esto es lo que hay:
Código (php) [Seleccionar]
<?php if (isset($_SESSION['username'])) {
    
// muestra opciones del menu
} else {
       
// muestra otras opciones del menu
}
?>


Y esto es lo que hay de las lineas de error de functions.php:28 y 29
Código (php) [Seleccionar]
function sec_session_start() {
    $session_name = 'sec_session_id';   // Set a custom session name
    $secure = SECURE;
    // This stops javascript being able to access the session id.
    $httponly = true;
    // Forces sessions to only use cookies.
    if (ini_set('session.use_only_cookies', 1) === FALSE) {
        header("Location: /error?err=Could not initiate a safe session (ini_set)");
        exit();
    }
    // Gets current cookies params.
    $cookieParams = session_get_cookie_params();
    session_set_cookie_params($cookieParams["lifetime"],
        $cookieParams["path"],
        $cookieParams["domain"],
        $secure,
        $httponly);
    // Sets the session name to the one set above.
    session_name($session_name);
    session_start();            // Start the PHP session  LINEA 28
    session_regenerate_id();    // regenerated the session, delete the old one. 29
}


Las dos ultimas lineas son las del error de antes.

Y la famosa función login_check del non-object error:
Código (php) [Seleccionar]
function login_check($mysqli) {
    // Check if all session variables are set
    if (isset($_SESSION['user_id'],
                        $_SESSION['username'],
                        $_SESSION['login_string'])) {

        $user_id = $_SESSION['user_id'];
        $login_string = $_SESSION['login_string'];
        $username = $_SESSION['username'];

        // Get the user-agent string of the user.
        $user_browser = $_SERVER['HTTP_USER_AGENT'];

        if ($stmt = $mysqli->prepare("SELECT password  // ESTA ES LA LINEA 155
                                      FROM members
                                      WHERE id = ? LIMIT 1")) {
            // Bind "$user_id" to parameter.
            $stmt->bind_param('i', $user_id);
            $stmt->execute();   // Execute the prepared query.
            $stmt->store_result();

            if ($stmt->num_rows == 1) {
                // If the user exists get variables from result.
                $stmt->bind_result($password);
                $stmt->fetch();
                $login_check = hash('sha512', $password . $user_browser);

                if ($login_check == $login_string) {
                    // Logged In!!!!
                    return true;
                } else {
                    // Not logged in
                    return false;
                }
            } else {
                // Not logged in
                return false;
            }
        } else {
            // Not logged in
            return false;
        }
    } else {
        // Not logged in
        return false;
    }
}


Aqui el prepare() es el que da ese error, que tambien lo uso en otras paginas y tambien da errores...

No sé donde puede estar el problema, conoces la estructura basica de como funciona todo y las funciones son de la web esa que puse antes.

Si necesitas ver algo en especifico dimelo.

Gracias!

MinusFour

Cita de: gAb1 en  1 Octubre 2014, 02:02 AMLa función showContent() de index.php ya sabes cual es, haciendo un include() normal al archivo y mostrandolo dentro de main.php que es incluido dentro de index.php, pero eso ya lo sabes.

Aquí no veo nada de showContent(), solo se que la declaras en index.php

Código (php) [Seleccionar]

//include a main.php
//Notese que showContent(); se ejecuta en main.php antes que llegue a la declaracion de abajo.

function showContent() {

}


Fuera que dices que showContent hace un include, no se que tenga....

gAb1

Si, en main.php dentro de un div y article (que es el cuerpo del contenido de la pagina incluida):

Código (php) [Seleccionar]
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . '/index.php');
showContent();
?>


No se, tantos includes y no puede haber algun error o problema que encapsule parte del codigo y no lo interprete bien?

MinusFour

Aún no se que haga esa funcion de showContent()...

De hecho, toda tu lógica la tienes que revisar muy bien. Es horrible los laberintos inecesarios que estás haciendo. ¿Cual es el proposito de hacer un include al archivo que rutea?