";
diff --git a/contacto/includes/formContact.php b/contacto/includes/formContact.php
index 04f3157..fe54658 100644
--- a/contacto/includes/formContact.php
+++ b/contacto/includes/formContact.php
@@ -1,5 +1,6 @@
getName().""; $emailValue = "value=".unserialize($_SESSION['user'])->getEmail().""; }
+ else { $nameValue = "placeholder='Nombre'"; $emailValue = "placeholder='Email'"; }
// Se generan los mensajes de error si existen.
$htmlErroresGlobales = self::generaListaErroresGlobales($errores);
@@ -23,10 +26,10 @@ class FormContact extends Form {
diff --git a/panel_user/includes/formChangeName.php b/panel_user/includes/formChangeName.php
index ce9b8d8..64102a5 100644
--- a/panel_user/includes/formChangeName.php
+++ b/panel_user/includes/formChangeName.php
@@ -41,8 +41,8 @@ class FormChangeName extends Form {
$nombre = $this->test_input($datos['new_name']) ?? null;
$nombre = strtolower($nombre);
- if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 8 ) {
- $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 8 caracteres.";
+ if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 15 ) {
+ $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 15 caracteres.";
}
$nombre2 = $this->test_input($datos['rename']) ?? null;
diff --git a/panel_user/includes/formDeleteAccount.php b/panel_user/includes/formDeleteAccount.php
index 077a583..8afc59c 100644
--- a/panel_user/includes/formDeleteAccount.php
+++ b/panel_user/includes/formDeleteAccount.php
@@ -13,7 +13,8 @@ class FormDeleteAccount extends Form {
}
protected function generaCamposFormulario($datos, $errores = array()){
- $nombre = $datos['username'] ?? '';
+ $nameValue = "value=".unserialize($_SESSION['user'])->getName()."";
+ $emailValue = "value=".unserialize($_SESSION['user'])->getEmail()."";
// Se generan los mensajes de error si existen.
$htmlErroresGlobales = self::generaListaErroresGlobales($errores);
@@ -25,8 +26,8 @@ class FormDeleteAccount extends Form {
$html = "
-
-
+
";
@@ -49,8 +49,8 @@ class FormDeleteAccount extends Form {
$nombre = $this->test_input($datos['name']) ?? null;
$nombre = strtolower($nombre);
- if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 8 ) {
- $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 8 caracteres.";
+ if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 15 ) {
+ $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 15 caracteres.";
}
$email = $this->test_input($datos['email']) ?? null;
diff --git a/panel_user/includes/formUploadPic.php b/panel_user/includes/formUploadPic.php
new file mode 100644
index 0000000..cf552ea
--- /dev/null
+++ b/panel_user/includes/formUploadPic.php
@@ -0,0 +1,139 @@
+ 'multipart/form-data');
+ parent::__construct('formUploadFiles', $options);
+ }
+
+ protected function generaCamposFormulario($datos, $errores = array()) {
+
+ // Se generan los mensajes de error si existen.
+ $htmlErroresGlobales = self::generaListaErroresGlobales($errores);
+ $errorFile = self::createMensajeError($errores, 'archivo', 'span', array('class' => 'error'));
+
+ foreach($datos as $key => $value){
+ $dats = $key." ".$value." ";
+ }
+
+ // Se genera el HTML asociado a los campos del formulario y los mensajes de error.
+ $html = '
+
+
'.$htmlErroresGlobales.'
+
+
'.$errorFile.'
+ ';
+
+ return $html;
+ }
+
+ protected function procesaFormulario($datos) {
+ // Solo se pueden definir arrays como constantes en PHP >= 5.6
+ global $ALLOWED_EXTENSIONS;
+
+ $result = array();
+ $ok = count($_FILES) == 1 && $_FILES['archivo']['error'] == UPLOAD_ERR_OK;
+
+ if ( $ok ) {
+ $archivo = $_FILES['archivo'];
+ $nombre = $_FILES['archivo']['name'];
+ /* 1.a) Valida el nombre del archivo */
+ $ok = $this->check_file_uploaded_name($nombre) && $this->check_file_uploaded_length($nombre) ;
+ /* 1.b) Sanitiza el nombre del archivo
+ $ok = sanitize_file_uploaded_name($nombre);
+ */
+ /* 1.c) Utilizar un id de la base de datos como nombre de archivo */
+
+ /* 2. comprueba si la extensión está permitida*/
+ $ok = $ok && in_array(pathinfo($nombre, PATHINFO_EXTENSION), $ALLOWED_EXTENSIONS);
+
+ /* 3. comprueba el tipo mime del archivo correspode a una imagen image/* */
+ $finfo = finfo_open(FILEINFO_MIME_TYPE);
+ $mimeType = finfo_file($finfo, $_FILES['archivo']['tmp_name']);
+ $ok = preg_match('/image\/*./', $mimeType);
+ finfo_close($finfo);
+
+ if ( $ok ) {
+ $tmp_name = $_FILES['archivo']['tmp_name'];
+ //$tmp_name = unserialize(strtolower($_SESSION["user"])->getName()).".jpg";
+
+ if ( !move_uploaded_file($tmp_name, USER_PICS.$nombre) ) {
+ $result[] = 'Error al mover el archivo';
+ }
+
+ // 4. Si fuese necesario guardar en la base de datos la ruta relativa $nombre del archivo
+ //return "index.php#img=".urlencode('img/'.$nombre);
+ $_SESSION['message'] = "
+
+
+
+
Operacion realizada con exito
+
Se ha modificado su imagen de usuario correctamente.
+
+
+
+
+
+ ";
+ $result = "./?option=change_profile_pic";
+ } else {
+ $result["errorFile"] = 'El archivo tiene un nombre o tipo no soportado';
+ }
+ } else {
+ $result[] = 'Error al subir el archivo.';
+ }
+ return $result;
+ }
+
+
+ /**
+ * Check $_FILES[][name]
+ *
+ * @param (string) $filename - Uploaded file name.
+ * @author Yousef Ismaeil Cliprz
+ * @See http://php.net/manual/es/function.move-uploaded-file.php#111412
+ */
+ protected function check_file_uploaded_name ($filename) {
+ return (bool) ((mb_ereg_match('/^[0-9A-Z-_\.]+$/i',$filename) === 1) ? true : false );
+ }
+
+ /**
+ * Sanitize $_FILES[][name]. Remove anything which isn't a word, whitespace, number
+ * or any of the following caracters -_~,;[]().
+ *
+ * If you don't need to handle multi-byte characters you can use preg_replace
+ * rather than mb_ereg_replace.
+ *
+ * @param (string) $filename - Uploaded file name.
+ * @author Sean Vieira
+ * @see http://stackoverflow.com/a/2021729
+ */
+ protected function sanitize_file_uploaded_name($filename) {
+ /* Remove anything which isn't a word, whitespace, number
+ * or any of the following caracters -_~,;[]().
+ * If you don't need to handle multi-byte characters
+ * you can use preg_replace rather than mb_ereg_replace
+ * Thanks @Łukasz Rysiak!
+ */
+ $newName = mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $filename);
+ // Remove any runs of periods (thanks falstro!)
+ $newName = mb_ereg_replace("([\.]{2,})", '', $newName);
+
+ return $newName;
+ }
+
+ /**
+ * Check $_FILES[][name] length.
+ *
+ * @param (string) $filename - Uploaded file name.
+ * @author Yousef Ismaeil Cliprz.
+ * @See http://php.net/manual/es/function.move-uploaded-file.php#111412
+ */
+ protected function check_file_uploaded_length ($filename) {
+ return (bool) ((mb_strlen($filename,'UTF-8') < 250) ? true : false);
+ }
+}
+?>
\ No newline at end of file
diff --git a/panel_user/index.php b/panel_user/index.php
index 5dcd749..9d61a2e 100644
--- a/panel_user/index.php
+++ b/panel_user/index.php
@@ -8,8 +8,8 @@
if($_SESSION["login"] && $_SESSION["rol"] === "user"){
if(!isset($_GET["option"])) $_GET["option"] = null;
switch($_GET["option"]){
- case "manage_profile":
- $reply = UserPanel::manage();
+ case "change_profile_pic":
+ $reply = UserPanel::changeUserPic();
break;
case "purchases":
$reply = UserPanel::purchases();
diff --git a/panel_user/panelUser.php b/panel_user/panelUser.php
index 3083f61..d6aceb8 100644
--- a/panel_user/panelUser.php
+++ b/panel_user/panelUser.php
@@ -13,14 +13,19 @@
static function panel(){
$name = strtoupper(unserialize($_SESSION['user'])->getName());
$email = unserialize($_SESSION['user'])->getEmail();
+ $userPic = USER_PICS.strtolower($name).".jpg";
+
+ $forms = self::manage();
+
return $reply = '
+
+ ';
+
+ //General page content:
+ require RAIZ_APP.'/HTMLtemplate.php';
+?>
diff --git a/register/includes/formRegister.php b/register/includes/formRegister.php
index 092f6ed..c862421 100644
--- a/register/includes/formRegister.php
+++ b/register/includes/formRegister.php
@@ -58,8 +58,8 @@ class FormRegister extends Form {
$nombre = $this->test_input($datos['new_name']) ?? null;
$nombre = strtolower($nombre);
- if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 8 ) {
- $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 8 caracteres.";
+ if ( empty($nombre) || mb_strlen($nombre) < 3 || mb_strlen($nombre) > 15 ) {
+ $result['new_name'] = "El nombre tiene que tener\n una longitud de al menos\n 3 caracteres\n y menos de 15 caracteres.";
}
$email = $this->test_input($datos['new_email']) ?? null;