fallo require en PHP

Iniciado por santi810, 20 Agosto 2014, 16:15 PM

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

santi810

En primer lugar pido disculpas si me equivoco de carpeta, no estoy seguro de que esta se la de PHP.

Estoy intentando montar una aplicacion  en php para interactuar con una base de datos MySQL para apuntar varias cosas, como los dias que trabajo.

Al basar en debuger se para aqui:
require('./extra_funciones.php');
como si no fuera capaz de acceder al archivo, cuando hasta ahora me accedia sin problemas.

He comprobado los nombres y creo que esta todo bien por lo que no entiendo lo que esta fallando, a ver si alguien puede ayudarme y encuentra lo que yo no estoy viendo.

Adjunto los 2 archivos:


index.php:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<?php
/* index.php (controlador) */
require('./vista/menu.php');
require(
'./conexion.php');
require(
'./extra_funciones.php');
$conexion abrir_conexion();
if (!
$conexion) {
    require(
'.\vista\error.php');
    exit;
}

if (isset(
$_POST["engadir"])) {
    
$accion "engadir";
}
switch (
$accion) {
    case 
"engadir":
        
$fecha $_POST["fecha1"];
        
$usuario $_POST["usuario"];
        
$sitio $_POST["sitio"];
        
$cobro $_POST["cobro"];
        
$notas $_POST["notas"];
        
$propina $_POST["propina"];
        
$tempo $_POST["tempo"];
        
$pago_asoc $_POST["pago_asoc"];
        
$engadir engadir_extra($fecha$usuario$sitio$propina$cobro
                
$notas$tempo$pago_asoc);       
break;
}

//require('./vista/pie.php');




extra_funciones.php
<?php
/* Abre la conexion con la base de datos */  
function abrir_conexion(){  
    
define("SERVIDOR""localhost");
    
define("USUARIO""raspberry");
    
define("PASS""cFcE7jSSXsAY6AuY");
    
define("BD""ServidorWeb");
    
$conexion mysqli_connect(SERVIDORUSUARIOPASSBD);
    if (
$conexion){
        @
mysqli_set_charset($conexion"UTF8");
    }
    
//mysqli_free_result($conexion);
    //mysqli_close($conexion);
    
return $conexion;
}
/* Mete en $sitios os nombres dos locales 
 * para mostralos no formulario de ingreso*/
function buscar_sitios(){
    
$conexion abrir_conexion();
    
$sentencia "SELECT Nomlocal FROM local";
    
$resultado mysqli_query($conexion$sentencia);
    if (!
$resultado) {
        return 
FALSE;
    } else {
        while (
$fila mysqli_fetch_assoc($resultado)) {
            
$sitios[] = $fila;
        }
        return 
$sitios;
    }
}
/* Funcion igual a anterior pero saca 2 resultados, ID de usuario e nombre */
function buscar_usuarios(){
    
$conexion abrir_conexion();
    
$sentencia "SELECT Nombre, usuID FROM usuarios";
    
$resultado mysqli_query($conexion$sentencia);
    if (!
$resultado) {
        return 
FALSE;
    } else {
        while (
$fila mysqli_fetch_assoc($resultado)) {
            
$usuarios[] = $fila;
        }
        return 
$usuarios;
    }
}
// añade os datos de 1 extra, devolve true si se añadiron correctamente
function engadir_extra($fecha$usuario$sitio$propina$cobro$notas$tempo$pago_asoc){
    
$conexion mysqli_connect(SERVIDORUSUARIOPASSBD);
        
$sql "INSERT INTO `ServidorWeb`.`extras` (`Usuario`, `extraID`, `fecha`,"
                
" `Local`, `tempo`, `precio`, `notas`, `pago_asoc`, `Propina`)"
                
" VALUES (\'$usuario\', NULL, \'$fecha\', \'$sitio\', \'$tempo\', \'$cobro\', \'$notas\', \'$pago_asoc\', \'$propina\');";
        
$resultado mysqli_query($conexion$sql);
if ($resultado){
            return 
TRUE;
        }
}
?>


::: Devil :::

examples

comillas  ;D  ;D  ;D  ;D  ;D  :-X

require("noexiste.php");
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

#!drvy

Asegurante de que conexion.php no tiene errores y que el script que tienes permiso de lectura para leer el extra_funciones.php

PD: Los require/include van sin parantesis. No son funciones.
http://php.net/manual/es/function.include.php

Saludos

santi810

Cambie los parentesis, gracias por el apunte!!


El error persiste y los permisos son 777

root@raspberrypi:/var/www/beta# ls -l
total 40
drwxrwxrwx 2 nobody users 4096 ago 10 17:57 calendario
-rwxrwxrwx 1 nobody users  398 ago 20 22:24 conexion.php
-rwxrwxrwx 1 nobody users  202 jul 25 23:28 extra_consultar.php
-rwxrwxrwx 1 nobody users 3712 ago 20 15:17 extra_engadir.php
-rwxrwxrwx 1 nobody users 2036 ago 20 15:58 extra_funciones.php
drwxrwxrwx 2 nobody users 4096 jul 31 14:13 images
-rwxrwxrwx 1 nobody users 2299 ago 11 16:23 index.css
-rwxrwxrwx 1 nobody users  970 ago 20 22:24 index.php
drwxrwxrwx 3 nobody users 4096 jul 31 00:37 nbproject
drwxrwxrwx 2 nobody users 4096 jul 31 23:30 vista
root@raspberrypi:/var/www/beta#




En conexion.php no hay ningun error, el debuger lo lee correctamente, adjunto el archivo tambien por si es de utilidad:
<?php
/* Abre la conexion con la base de datos */
function abrir_conexion(){  
    
define("SERVIDOR""localhost");
    
define("USUARIO""raspberry");
    
define("PASS""++++++");
    
define("BD""ServidorWeb");
    
$conexion mysqli_connect(SERVIDORUSUARIOPASSBD);
    if (
$conexion){
        
mysqli_set_charset($conexion"UTF8");
    }
    return 
$conexion;
}
?>




Las comillas tambien prove a cambiarlas pero no es eso, ademas en el manual de php tambien estan como comillas simples ('').

crksergio

Fíjate que no estés haciendo un doble require. Es decir, si estás en la página 1, en la cuál haces require de la página 2 y 3, pero en la 2 ya estás haciendo un require de la 3, te va a dar error. Es algo bastante típico.

santi810

No, falla ya en la primera ejecucion

santi810

Vale, la funcion abrir_conexion esta en los dos archivos, por eso me da error!

gracias de todos modos!

Por mi podeis cerrar el hilo, que no se si puedo hacerlo yo