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_id` int(4) NOT NULL AUTO_INCREMENT,
`usuario_nombre` varchar(15) NOT NULL DEFAULT '',
`usuario_clave` varchar(32) NOT NULL DEFAULT '',
`usuario_email` varchar(50) NOT NULL DEFAULT '',
`usuario_edad` varchar(2) NOT NULL DEFAULT '',
`usuario_actividades` varchar(250) NOT NULL DEFAULT '',
`usuario_horario` varchar(50) NOT NULL DEFAULT '',
`usuario_foto1` varchar(50) NOT NULL DEFAULT '',
`usuario_foto2` varchar(50) NOT NULL DEFAULT '',
`usuario_foto3` varchar(50) NOT NULL DEFAULT '',
`usuario_foto4` varchar(50) NOT NULL DEFAULT '',
`usuario_freg` datetime 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.