Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2013, 10:15
anacarmona
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 11 años, 8 meses
Puntos: 0
Modificar campos de base de datos y subir imagen

Hola mis disculpas por molestar, soy nueva en esto del php y me gustaría saber si me pueden ayudar a resolver algunas dudas, estoy haciendo una tarea para la prepa la cual consiste en un pequeño sistema de usuarios para actividades de una comunidad rural (que al final si esta bien podrían darle uso en un par de comunidades marginadas como premio al mejor proyecto) y me he estado basando en uno que encontré en internet el cual he poco a poco ajustando a mis necesidades que no son muchas realmente pero si indispensables para poder aprobar la materia y hacerlo lo mejor posible.

Mis dudas son las siguientes

Cree la siguiente tabla:

Código PHP:
CREATE TABLE `usuarios` ( 
    `
usuario_idint(4NOT NULL AUTO_INCREMENT
    `
usuario_nombrevarchar(15NOT NULL DEFAULT ''
    `
usuario_clavevarchar(32NOT NULL DEFAULT ''
    `
usuario_emailvarchar(50NOT NULL DEFAULT ''
    `
usuario_edadvarchar(2NOT NULL DEFAULT ''
    `
usuario_actividadesvarchar(250NOT NULL DEFAULT ''
    `
usuario_horariovarchar(50NOT NULL DEFAULT ''
    `
usuario_foto1varchar(50NOT NULL DEFAULT '',
    `
usuario_foto2varchar(50NOT NULL DEFAULT '',
    `
usuario_foto3varchar(50NOT NULL DEFAULT '',
    `
usuario_foto4varchar(50NOT NULL DEFAULT '',
    `
usuario_fregdatetime NOT NULL DEFAULT '0000-00-00 00:00:00'
    
PRIMARY KEY (`usuario_id`) 


Mi codigo para registrar usuarios es este:

Código PHP:
<?php 
    
include('acceso_db.php'); 
    if(isset(
$_POST['enviar'])) {

        function 
valida_email($correo) { 
            if (
preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/'$correo)) return true
            else return 
false
        } 

        
$sin_espacios count_chars($_POST['usuario_nombre'], 1); 
        if(!empty(
$sin_espacios[32])) {
            echo 
"El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>"
        }elseif(empty(
$_POST['usuario_nombre'])) {
            echo 
"No haz ingresado tu usuario. <a href='javascript:history.back();'>Reintentar</a>"
        }elseif(empty(
$_POST['usuario_clave'])) {
            echo 
"No haz ingresado contraseña. <a href='javascript:history.back();'>Reintentar</a>"
        }elseif(
$_POST['usuario_clave'] != $_POST['usuario_clave_conf']) {
            echo 
"Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>"
        }elseif(!
valida_email($_POST['usuario_email'])) {
            echo 
"El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>"
        }else { 
            
// "limpiamos" los campos del formulario de posibles códigos maliciosos 
            
$usuario_nombre mysql_real_escape_string($_POST['usuario_nombre']); 
            
$usuario_clave mysql_real_escape_string($_POST['usuario_clave']); 
            
$usuario_email mysql_real_escape_string($_POST['usuario_email']); 
            
$usuario_edad mysql_real_escape_string($_POST['usuario_edad']); 
            
$usuario_actividades mysql_real_escape_string($_POST['usuario_actividades']); 
            
$usuario_horario mysql_real_escape_string($_POST['usuario_horario']); 
            
$sql mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'"); 
            if(
mysql_num_rows($sql) > 0) { 
                echo 
"El nombre usuario elegido ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>"
            }else { 
                
$usuario_clave md5($usuario_clave);
                
$reg mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email, usuario_edad, usuario_actividades, usuario_horario, usuario_freg) VALUES ('".$usuario_nombre."', '".$usuario_clave."', '".$usuario_email."', '".$usuario_edad."', '".$usuario_actividades."', '".$usuario_horario."', NOW())"); 
                if(
$reg) { 
                    echo 
"Datos ingresados correctamente."
                }else { 
                    echo 
"Ha ocurrido un error y no se registraron los datos."
                } 
            } 
        } 
    }else { 
?> 
    <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
        <label>Usuario:</label><br /> 
        <input type="text" name="usuario_nombre" maxlength="15" /><br /> 
        <label>Contrasena:</label><br /> 
        <input type="password" name="usuario_clave" maxlength="15" /><br /> 
        <label>Confirmar Contrasena:</label><br /> 
        <input type="password" name="usuario_clave_conf" maxlength="15" /><br /> 
        <label>Email:</label><br /> 
        <input type="text" name="usuario_email" maxlength="50" /><br /> 
        <label>Edad:</label><br /> 
        <input type="text" name="usuario_edad" maxlength="50" /><br /> 
        <label>Actividades:</label><br /> 
        <input type="text" name="usuario_actividades" maxlength="250" /><br /> 
        <label>Horario:</label><br /> 
        <input type="text" name="usuario_horario" maxlength="50" /><br /> 
        <input type="submit" name="enviar" value="Registrar" /> 
        <input type="reset" value="Borrar" /> 
    </form> 
<?php 
    

?>
Hasta hay todo bien ya que se registran y todo genial, para acceder como usuario tengo el siguiente código (ambos funcionan bien lo que se me complica es que le quiero agregar ciertas funciones):

acceso.php
Código PHP:
<?php 
    session_start
(); 
    include(
'acceso_db.php'); 
    if(empty(
$_SESSION['usuario_nombre'])) {
?> 
        <form action="comprobar.php" method="post"> 
            <label>Usuario:</label><br /> 
            <input type="text" name="usuario_nombre" /><br /> 
            <label>Contrasena:</label><br /> 
            <input type="password" name="usuario_clave" /><br /> 
            <input type="submit" name="enviar" value="Ingresar" /> 
        </form>                     
<?php 
    
}else { 
?> 
        <p>Hola <strong><?=$_SESSION['usuario_nombre']?></strong> | <a href="logout.php">Salir</a></p> 
<?php 
    

?>
comprobar.php
Código PHP:
<?php 
    session_start
(); 
    include(
'acceso_db.php'); 
    if(isset(
$_POST['enviar'])) { 
        if(empty(
$_POST['usuario_nombre']) || empty($_POST['usuario_clave'])) { 
            echo 
"El usuario o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>"
        }else { 
            
$usuario_nombre mysql_real_escape_string($_POST['usuario_nombre']); 
            
$usuario_clave mysql_real_escape_string($_POST['usuario_clave']); 
            
$usuario_clave md5($usuario_clave); 
            
$sql mysql_query("SELECT usuario_id, usuario_nombre, usuario_clave FROM usuarios WHERE usuario_nombre='".$usuario_nombre."' AND usuario_clave='".$usuario_clave."'"); 
            if(
$row mysql_fetch_array($sql)) { 
                
$_SESSION['usuario_id'] = $row['usuario_id']; 
                
$_SESSION['usuario_nombre'] = $row["usuario_nombre"]; 
                
header("Location: acceso.php"); 
            }else { 
?> 
                Error, <a href="acceso.php">Reintentar</a> 
<?php 
            

        } 
    }else { 
        
header("Location: acceso.php"); 
    } 
?>
Lo que requiero hacer son dos cosas, una que al acceder ellos cuando sean redirigidos nuevamente a acceso.php ya estando logueados, les aparezca un formulario de los campos actividad y horarios de su usuario para que se puedan editar y actualizar en la base de datos (que aparezca en el input del formulario de cada campo el contenido que ya tienen y pueda ser modificable o actualizable) y lo otro que requiero es que cuando cree la base de datos cree para cada usuario 4 campos (usuario_foto1. usuario_foto2, etc) para que suban fotos de lo que serian las actividades diarias, lo que quiero ver es como crear un formulario para subir las fotos al servidor y guarde las ruta en la base de datos en los campos correspondientes al usuario activo (de preferencia que al subir el archivo el nombre cambie a algo asociado al nombre de usuario) y que si suben otras se sobreescriban las anteriores.

Espero me puedan ayudar, se los agradeceria mil.

Ahhh y si tienen alguna correccion o consejo para el codigo que aqui les puse tambien se los agradeceria.