Hola ! que tal, estoy con un "pequeño problemita" la cuestión es la siguiente. Quiero hacer un apartado de un panel de control para modificar un perfil.
Tengo los siguientes códigos:
El modificarperfil.php
<?php
session_start();
include("function.php");
include("getdata.php");
include("connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
if(!isset($_GET['usuario'])){
echo 'No se ha seleccionado ningun usuario.'; //no ha seleccionado usuario,
}else{
//comprobamos si esa id existe
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
if(mysql_num_rows($usuario)>0){
$query=mysql_fetch_array($usuario);
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>';
}else{
echo 'El usuario seleccionado no existe';
}
}
?>
A su vez en la tabla de modificar perfil pongo lo siguiente para obtener los datos de la bd:
<td width="292"><input name="firstname" type="text" id="firstname" value="<?php echo $firstname;?>"></td>
El function.php:
<?php
session_start();
function getfname($id)
{
$query = mysql_query("select * from prueba where id=$id");
$getname= mysql_fetch_array($query);
$firstname= $getname["firstname"];
return $firstname;
}
function getlname($id)
{
$query =mysql_query("select * from prueba where id=$id");
$getname= mysql_fetch_array($query);
$lastname=$getname["lastname"];
return $lastname;
}
function getusuario($id)
{
$query=mysql_query("select * from prueba where id=$id");
$getname=mysql_fetch_array($query);
$usuario=$getname["usuario"];
return $usuario;
}
function getgender ($id)
{
$query=mysql_query("select * from prueba where id=$id");
$getname=mysql_fetch_array($query);
$gender=$getname["Genero"];
return $gender;
}
?>
El getdata.php:
<?php
session_start();
include "connect.php";
$query=mysql_query("select * from prueba where id=$id");
$getname=mysql_fetch_array($query);
$firstname=$getname["firstname"];
$lastname=$getname["lastname"];
$usuario=$getname["usuario"];
$gender=$getname["genero"];
?>
El connect.php:
<?php
if(!defined('INCLUDE_CHECK')) die('No estás autorizado a ejecutar este archivo directamente');
/* Database config */
$db_host = 'localhost';
$db_user = 'user';
$db_pass = 'xxxx';
$db_database = 'prueba';
/* End config */
$link = mysql_connect($db_host,$db_user,$db_pass) or die('Imposible establecer la conexión a la base de datos');
mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");
?>
El error que me tira todo esto es que "No estás autorizado a ejecutar este archivo directamente"
Gracias de antemano por tomarse el trabajo de leerlo. :)
if(!defined('INCLUDE_CHECK')) die('No estás autorizado a ejecutar este archivo directamente');
Hay dices que si la constaste INCLUDE_CHECK no esta definida se ejecuta el if pero si existe o esta definida no se ejecuta.
El if esta mal hecho siempre te respondera lo mismo una y otra vez, el problema esque no usas el aniador if( $a || $ae)
Osea quedaria correctamente asi:
if(!defined('INCLUDE_CHECK')) || die('No estás autorizado a ejecutar este archivo directamente');
Si no se ejecuta el primer parametro del if se ejecuta el segundo.
Puse lo que me dijiste pero me tira un error ahora en el index.php
<?php
error_reporting(E_ALL ^ E_NOTICE);
ob_start();
define('INCLUDE_CHECK',true);
require("connect.php");
//Archivos incluidos solo si el INCLUDE_CHECK está definido
?>
Esto es lo que tengo al inicio del index.php hay más pero asumo que el error está por aca.
cambié el connect.php con lo que me dijiste pero ahora no puedo abrir el index, me dice parse error on line 3 que es en la que dice define('INCLUDE_CHECK', true)
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
que pasa si el nombre contiene un espacio en blanco o una comilla como por ejemplo "Allen Paige's"?
http://cl.php.net/manual/en/function.mysql-real-escape-string.php
osea, esta bien, comprueba si esta definido INCLUDE_CHECK, pero por lo que se ve en estos codigos, no se define en ningun lado :P en que archivo lo definis??
Poner el codigo que te da error y que error tira.
CitarEl error que me tira todo esto es que "No estás autorizado a ejecutar este archivo directamente"
¬¬
No es un error lol.
Citarif(!defined('INCLUDE_CHECK')) die('No estás autorizado a ejecutar este archivo directamente');
y simplemente lo comentara o lo definiera el INCLUDE_CHECK y otros flags???
El problema está en el connect.php, con el if, pero no sé muy bien como hacerlo :huh:
Ya lo arreglé gracias a todos. ;D