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(SERVIDOR, USUARIO, PASS, BD);
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(SERVIDOR, USUARIO, PASS, BD);
$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;
}
}
?>
examples
comillas ;D ;D ;D ;D ;D :-X
require("noexiste.php");
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
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(SERVIDOR, USUARIO, PASS, BD);
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 ('').
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.
No, falla ya en la primera ejecucion
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