Puko
Dseda
Verificación en dos pasos activada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
En python
cuentame todo sobre "raise"
cuentame todo sobre "raise"
En Python, la palabra claveEn python
cuentame todo sobre "raise"
raise se utiliza para generar excepciones de forma intencionada. Esto es útil para indicar que ha ocurrido un error en una parte específica de tu código. Aquí tienes un resumen completo sobre raise:raiseraise para lanzar excepciones predefinidas. Por ejemplo, si deseas indicar que un valor no es válido, puedes usar:python
raise ValueError("El valor no es válido.")
Exception. Luego, puedes lanzar esta excepción usando raise.python
class MiExcepcion(Exception):
pass
raise MiExcepcion("Este es un error personalizado.")
try y quieres re-lanzarla después de hacer alguna operación (como un registro de error), puedes usar raise sin argumentos:python
try:
x = 1 / 0
except ZeroDivisionError as e:
print("Error: División por cero.")
raise # Re-lanza la excepción
python
try:
x = int("no es un número")
except ValueError as e:
raise ValueError("Error al convertir a entero.") from e
raise dentro de funciones para manejar errores específicos y lanzar excepciones que el código que llama pueda manejar:python
def dividir(a, b):
if b == 0:
raise ValueError("División por cero no permitida.")
return a / b
raise se utiliza para lanzar excepciones en Python.class MiExcepcion(Exception):
pass
def validar_numero(numero):
if not isinstance(numero, int):
raise MiExcepcion("Se esperaba un número entero.")
try:
validar_numero("texto")
except MiExcepcion as e:
print(f"Ocurrió un error: {e}")
try.Puedes crear un bucle infinito en Python que permita al usuario ingresar múltiples URLs, guardarlas en una lista y finalizar el ingreso cuando el usuario presiona "Enter" dos veces seguidas. Aquí tienes un ejemplo de cómo podrías hacerlo:En python
¿Cómo hago esto?
while True:
pegar varias urls, después otras , hasta que le de doble enter
#otro código
#fin
urls = [] # Lista para almacenar las URLs
print("Introduce las URLs (presiona Enter dos veces para finalizar):")
while True:
url = input() # Obtener la entrada del usuario
if url == "": # Verificar si el usuario presiona Enter
# Comprobar si ya hubo una entrada vacía (doble Enter)
if len(urls) > 0 and urls[-1] == "":
break # Salir del bucle si hay doble Enter
else:
urls.append("") # Agregar entrada vacía a la lista
else:
urls.append(url) # Agregar la URL a la lista
# Mostrar las URLs ingresadas
print("URLs ingresadas:")
for url in urls:
if url: # Evitar imprimir entradas vacías
print(url)
urls para almacenar todas las URLs que el usuario ingresará.while True: se inicia un bucle infinito que continuará solicitando URLs hasta que se indique que debe detenerse.input() se utiliza para capturar la entrada del usuario. <input name="fotoshop" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" />Puedes crear un bucle infinito en Python que permita al usuario ingresar múltiples URLs, guardarlas en una lista y finalizar el ingreso cuando el usuario presiona "Enter" dos veces seguidas. Aquí tienes un ejemplo de cómo podrías hacerlo:
Python:urls = [] # Lista para almacenar las URLs print("Introduce las URLs (presiona Enter dos veces para finalizar):") while True: url = input() # Obtener la entrada del usuario if url == "": # Verificar si el usuario presiona Enter # Comprobar si ya hubo una entrada vacía (doble Enter) if len(urls) > 0 and urls[-1] == "": break # Salir del bucle si hay doble Enter else: urls.append("") # Agregar entrada vacía a la lista else: urls.append(url) # Agregar la URL a la lista # Mostrar las URLs ingresadas print("URLs ingresadas:") for url in urls: if url: # Evitar imprimir entradas vacías print(url)
### Explicación:
1. Inicializar la Lista: Se crea una lista vacíaurlspara almacenar todas las URLs que el usuario ingresará.
2. Bucle Infinito: Conwhile True:se inicia un bucle infinito que continuará solicitando URLs hasta que se indique que debe detenerse.
3. Entrada del Usuario:input()se utiliza para capturar la entrada del usuario.
4. Verificación de Doble Enter:
- Si el usuario presiona "Enter" (es decir, la cadena está vacía), se verifica si la lista ya tenía una entrada vacía. Si es así, se rompe el bucle.
- Si no ha habido un doble Enter, se agrega una cadena vacía a la lista para manejar entradas vacías.
5. Mostrar Resultados: Finalmente, se imprime la lista de URLs ingresadas, omitiendo las entradas vacías.
### Uso
Ejecuta el código y comienza a introducir las URLs, presionando "Enter" después de cada una. Una vez que quieras finalizar, presiona "Enter" dos veces seguidas. Las URLs ingresadas se mostrarán al final.
Para permitir que un elemento<input name="fotoshop" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" />
como hao para que me deje subir varias imagenes?
<input> de tipo file acepte múltiples archivos, simplemente debes agregar el atributo multiple. Este atributo le indica al navegador que el usuario puede seleccionar más de un archivo. Aquí tienes cómo se vería tu código modificado:<input name="fotoshop" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" multiple />
multiple: Este atributo permite seleccionar varias imágenes o videos a la vez. Ctrl (en Windows) o Command (en Mac) mientras hace clic en los archivos.una duda, porque solo sube una sola foto o video, quiero que agregue asiPara permitir que un elemento<input>de tipofileacepte múltiples archivos, simplemente debes agregar el atributomultiple. Este atributo le indica al navegador que el usuario puede seleccionar más de un archivo. Aquí tienes cómo se vería tu código modificado:
HTML:<input name="fotoshop" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" multiple />
### Explicación:
-multiple: Este atributo permite seleccionar varias imágenes o videos a la vez.
### Uso:
Cuando el usuario haga clic en el botón para seleccionar archivos, podrá seleccionar múltiples archivos manteniendo presionada la teclaCtrl(en Windows) oCommand(en Mac) mientras hace clic en los archivos.
Recuerda que si necesitas procesar esos archivos en tu aplicación, deberás hacerlo en el lado del servidor, y quizás sea útil tener un código en JavaScript para manejar la vista previa o la manipulación de los archivos seleccionados en el cliente.
posters(photo,photo2,photo3) VALUES ("photo1","photo2","photo3"));Para permitir la subida de múltiples fotos o videos y almacenarlos en la base de datos, deberás modificar tanto la parte del frontend (HTML) como la parte del backend (PHP). Te muestro cómo hacerlo:una duda, porque solo sube una sola foto o video, quiero que agregue asi
mysqli_query($conexion,"INSERT INTOposters(photo,photo2,photo3) VALUES ("photo1","photo2","photo3"));
<input name="fotoshop[]" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" multiple />
name="fotoshop[]" indica que se están enviando múltiples valores.$photos = $_FILES['fotoshop'];
// Conexión a la base de datos
$conexion = mysqli_connect("localhost", "usuario", "contraseña", "base_de_datos");
// Verifica si hay un error en la subida
foreach ($photos['tmp_name'] as $key => $tmp_name) {
$photo = $photos['name'][$key];
$photo_tmp = $photos['tmp_name'][$key];
// Aquí puedes establecer la ruta donde deseas guardar las imágenes
$upload_path = "ruta/donde/guardar/" . basename($photo);
// Mueve la imagen del directorio temporal a tu carpeta de destino
if (move_uploaded_file($photo_tmp, $upload_path)) {
// Almacena el nombre de la imagen en la base de datos
mysqli_query($conexion, "INSERT INTO posters (photo) VALUES ('$photo')");
}
}
// Cierra la conexión
mysqli_close($conexion);
photo. Si quieres almacenar hasta 3 fotos en las columnas photo, photo2, photo3, necesitarás un poco de lógica adicional para verificar cuántas imágenes ya has insertado.if (count($photos['tmp_name']) <= 3) {
$query = "INSERT INTO posters (photo, photo2, photo3) VALUES ('" . $photos['name'][0] . "', '" . $photos['name'][1] . "', '" . $photos['name'][2] . "')";
mysqli_query($conexion, $query);
}
empecemos de cero, hazme este codigo para que suba el photo2, photo3Para permitir la subida de múltiples fotos o videos y almacenarlos en la base de datos, deberás modificar tanto la parte del frontend (HTML) como la parte del backend (PHP). Te muestro cómo hacerlo:
### 1. Modifica el HTML
Asegúrate de que tu input permita múltiples archivos y que se llamen de manera que puedas identificarlos:
HTML:<input name="fotoshop[]" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" multiple />
Nota: La sintaxisname="fotoshop[]"indica que se están enviando múltiples valores.
### 2. Modifica el Código PHP
En el lado del servidor, deberás procesar el array de archivos enviados. Aquí te muestro un ejemplo de cómo hacerlo:
PHP:$photos = $_FILES['fotoshop']; // Conexión a la base de datos $conexion = mysqli_connect("localhost", "usuario", "contraseña", "base_de_datos"); // Verifica si hay un error en la subida foreach ($photos['tmp_name'] as $key => $tmp_name) { $photo = $photos['name'][$key]; $photo_tmp = $photos['tmp_name'][$key]; // Aquí puedes establecer la ruta donde deseas guardar las imágenes $upload_path = "ruta/donde/guardar/" . basename($photo); // Mueve la imagen del directorio temporal a tu carpeta de destino if (move_uploaded_file($photo_tmp, $upload_path)) { // Almacena el nombre de la imagen en la base de datos mysqli_query($conexion, "INSERT INTO posters (photo) VALUES ('$photo')"); } } // Cierra la conexión mysqli_close($conexion);
### Consideraciones
- Base de Datos: En el ejemplo anterior, se inserta cada imagen en una sola columnaphoto. Si quieres almacenar hasta 3 fotos en las columnasphoto, photo2, photo3, necesitarás un poco de lógica adicional para verificar cuántas imágenes ya has insertado.
- Validación: Asegúrate de validar los tipos de archivos y manejar errores que puedan ocurrir durante la carga de archivos.
- Seguridad: Recuerda proteger tu aplicación contra inyecciones SQL utilizando declaraciones preparadas, y también sanitiza la entrada y los nombres de los archivos para evitar problemas de seguridad.
Si quieres insertar tres fotos en tres columnas diferentes, podrías hacer algo como esto, asumiendo que no hay más de tres:
PHP:if (count($photos['tmp_name']) <= 3) { $query = "INSERT INTO posters (photo, photo2, photo3) VALUES ('" . $photos['name'][0] . "', '" . $photos['name'][1] . "', '" . $photos['name'][2] . "')"; mysqli_query($conexion, $query); }
Esta lógica fundamental debería permitir que subas múltiples fotos y las almacenes adecuadamente en la base de datos.
posters(idviews,idseguis,category,hora,photo,nombre,apellido,username,email,descripts,fecha) VALUES ('0,','".$friendfly."','".$_POST['category']."','".date("d-m-Y H:i:s")."','".$target_path."','".$nombre."','".$apellido."','".$username."','".$email."','".$_POST['mensaje']."','".date('d M Y')."')");newnotification(hora,fecha,idbug,idsug,idviews,username,frame,mensaje) VALUES ('".date("d-m-Y H:i:s")."','".date('d M Y')."','".$ultimo_id_insertado."','0,".$loupa['id'].",','0,','".$username."','etiqueta','te ha etiquetado en una publicacion')");Aquí tienes una versión del código que permite subir múltiples archivos (tanto fotos como videos), incluyendo el manejo deempecemos de cero, hazme este codigo para que suba el photo2, photo3
if(!empty($_FILES) and $_FILES['fotoshop']['type'] == "video/mp4"){
if(is_uploaded_file($_FILES['fotoshop']['tmp_name'])){
sleep(1);
$source_path = $_FILES['fotoshop']['tmp_name'];
$target_path = 'upload/'.mt_rand(1,100).bin2hex(random_bytes(mt_rand(5,15))).'.mp4';
move_uploaded_file($source_path, $target_path);
}
}
if(!empty($_FILES) and $_FILES['fotoshop']['type'] == "image/jpeg" or !empty($_FILES) and $_FILES['fotoshop']['type'] == "image/png" or !empty($_FILES) and $_FILES['fotoshop']['type'] == "image/jpg"){
$source_path = $_FILES['fotoshop']['tmp_name'];
$target_path = "imguser/".mt_rand(1,99999).mt_rand(1,1000).$username.date("zihdYN").".webp";
move_uploaded_file($source_path, $target_path);
}
if(!empty($_FILES)){
$querim = mysqli_query($conexion,"SELECT * FROM friends where litefriends like '%,".$id.",%' and username != '".$username."' order by id desc");
if(mysqli_num_rows($querim) ===0){$quid.='0,';}
$ino=1;while($filo = mysqli_fetch_assoc($querim)){
$pinta=$ino++;
$quala = mysqli_query($conexion,"SELECT * FROM profileuser where username = '".$filo['username']."' order by id desc");
$qilo = mysqli_fetch_assoc($quala);
$quid.= '0,'.$qilo['id'].',';
}
$friendfly = str_replace(",0,",",",$quid);
mysqli_query($conexion,"INSERT INTOposters(idviews,idseguis,category,hora,photo,nombre,apellido,username,email,descripts,fecha) VALUES ('0,','".$friendfly."','".$_POST['category']."','".date("d-m-Y H:i:s")."','".$target_path."','".$nombre."','".$apellido."','".$username."','".$email."','".$_POST['mensaje']."','".date('d M Y')."')");
$ultimo_id_insertado = mysqli_insert_id($conexion);
$tu_texto = $_POST['mensaje'];
preg_match_all("/@[\w]+/", $tu_texto, $palabras_con_arroba);
foreach($palabras_con_arroba[0] as $palabra){
$chopo = mysqli_query($conexion,"SELECT * FROM profileuser where username='".str_replace('@', '', $palabra)."' ORDER BY id DESC limit 1");
if($loupa = mysqli_fetch_assoc($chopo) and $loupa['id'] !== $id){
$chopop = mysqli_query($conexion,"SELECT * FROM newnotification where frame='etiqueta' and username='".$username."' and idbug='".$ultimo_id_insertado."' ORDER BY id DESC limit 1");
if($comem = mysqli_fetch_assoc($chopop)){
mysqli_query($conexion,"UPDATE newnotification SET idsug=CONCAT(idsug,'".$loupa['id'].",') where idsug not like '%,".$loupa['id'].",%' and username='".$username."' and idbug='".$ultimo_id_insertado."'");
}elseif($comem['idbug'] !== $ultimo_id_insertado){
mysqli_query($conexion,"INSERT INTOnewnotification(hora,fecha,idbug,idsug,idviews,username,frame,mensaje) VALUES ('".date("d-m-Y H:i:s")."','".date('d M Y')."','".$ultimo_id_insertado."','0,".$loupa['id'].",','0,','".$username."','etiqueta','te ha etiquetado en una publicacion')");
}
}
}
}
photo2 y photo3. Vamos a asegurarnos de que todas las imágenes y videos se suban correctamente y se almacenen en la base de datos. <input> acepte múltiples archivos, como se mostró anteriormente:<input name="fotoshop[]" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" multiple />
// Inicializa los arrays para almacenar las rutas de los archivos subidos
$uploaded_photos = [];
$uploaded_videos = [];
// Verifica si hay archivos subidos
if (!empty($_FILES['fotoshop'])) {
foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) {
$fileType = $_FILES['fotoshop']['type'][$key];
// Manejo de videos
if ($fileType === "video/mp4") {
if (is_uploaded_file($tmp_name)) {
sleep(1);
$target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4';
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_videos[] = $target_path;
}
}
}
// Manejo de imágenes (jpeg, png, jpg)
elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") {
$target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp";
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_photos[] = $target_path;
}
}
}
// Construimos la cadena de fotos
$photos_string = implode(',', $uploaded_photos);
$videos_string = implode(',', $uploaded_videos);
// Procesar el resto de tu código para insertar en la base de datos
$querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC");
$quid = '';
if (mysqli_num_rows($querim) === 0) {
$quid .= '0,';
}
$ino = 1;
while ($filo = mysqli_fetch_assoc($querim)) {
$pinta = $ino++;
$quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC");
$qilo = mysqli_fetch_assoc($quala);
$quid .= '0,' . $qilo['id'] . ',';
}
$friendfly = str_replace(",0,", ",", $quid);
mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photos_string . "', '" . $videos_string . "', '', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')");
// Notificaciones y etiquetado (ya tienes tu lógica aquí)
}
// Cierra conexión si es necesario
foreach para procesar cada archivo que el usuario sube.$uploaded_photos y $uploaded_videos) para almacenar las rutas de las imágenes y videos subidos.posters, incluyendo la cadena con las rutas de las fotos y videos subidos.posters están correctamente configuradas para almacenar los datos.no sube la imagen o video e photo2 y photo3Aquí tienes una versión del código que permite subir múltiples archivos (tanto fotos como videos), incluyendo el manejo dephoto2yphoto3. Vamos a asegurarnos de que todas las imágenes y videos se suban correctamente y se almacenen en la base de datos.
### Paso 1: Modificar el HTML
Asegúrate de que tu<input>acepte múltiples archivos, como se mostró anteriormente:
HTML:<input name="fotoshop[]" id="fileclip" title="Permitido solo .jpg, .jpeg, .png, .mp4" accept="image/png,image/jpg,image/jpeg,video/mp4" class="sendluar" type="file" multiple />
### Paso 2: Manejo del PHP
A continuación, el código PHP que maneja la subida de archivos y la inserción en la base de datos:
PHP:// Inicializa los arrays para almacenar las rutas de los archivos subidos $uploaded_photos = []; $uploaded_videos = []; // Verifica si hay archivos subidos if (!empty($_FILES['fotoshop'])) { foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) { $fileType = $_FILES['fotoshop']['type'][$key]; // Manejo de videos if ($fileType === "video/mp4") { if (is_uploaded_file($tmp_name)) { sleep(1); $target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4'; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_videos[] = $target_path; } } } // Manejo de imágenes (jpeg, png, jpg) elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") { $target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp"; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_photos[] = $target_path; } } } // Construimos la cadena de fotos $photos_string = implode(',', $uploaded_photos); $videos_string = implode(',', $uploaded_videos); // Procesar el resto de tu código para insertar en la base de datos $querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC"); $quid = ''; if (mysqli_num_rows($querim) === 0) { $quid .= '0,'; } $ino = 1; while ($filo = mysqli_fetch_assoc($querim)) { $pinta = $ino++; $quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC"); $qilo = mysqli_fetch_assoc($quala); $quid .= '0,' . $qilo['id'] . ','; } $friendfly = str_replace(",0,", ",", $quid); mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photos_string . "', '" . $videos_string . "', '', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')"); // Notificaciones y etiquetado (ya tienes tu lógica aquí) } // Cierra conexión si es necesario
### Explicaciones Clave:
1. Manejo de Múltiples Archivos: Se utiliza un bucleforeachpara procesar cada archivo que el usuario sube.
2. Subida de Archivos: Se valida el tipo de archivo, se generará un nuevo nombre para el archivo y se moverá el archivo a su destino deseado.
3. Array de Rutas: Se usan dos arrays ($uploaded_photosy$uploaded_videos) para almacenar las rutas de las imágenes y videos subidos.
4. Inserción en la Base de Datos: Al final, se inserta una fila en la tablaposters, incluyendo la cadena con las rutas de las fotos y videos subidos.
### Observaciones:
- Asegúrate de que las columnas en tu tabla
postersestán correctamente configuradas para almacenar los datos.- Si quieres almacenar específicamente tres fotos y videos en columnas separadas, necesitarás lógica adicional para gestionar eso.
- Recuerda que deberías realizar más validaciones y tratamientos de error en un entorno de producción.
Esto debería darte una buena base para manejar la subida de múltiples archivos en tu aplicación.
Para asegurarte de que se suban correctamente las imágenes y videos a las columnasno sube la imagen o video e photo2 y photo3
photo, photo2 y photo3, necesitamos modificar el script para manejar hasta tres archivos y almacenarlos apropiadamente.// Inicializa los arrays para almacenar las rutas de los archivos subidos
$uploaded_photos = [];
$uploaded_videos = [];
// Verifica si hay archivos subidos
if (!empty($_FILES['fotoshop'])) {
foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) {
$fileType = $_FILES['fotoshop']['type'][$key];
// Manejo de videos
if ($fileType === "video/mp4") {
if (is_uploaded_file($tmp_name)) {
sleep(1);
$target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4';
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_videos[] = $target_path;
}
}
}
// Manejo de imágenes (jpeg, png, jpg)
elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") {
$target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp";
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_photos[] = $target_path;
}
}
}
// Preparamos las rutas para el INSERT
$photo1 = isset($uploaded_photos[0]) ? $uploaded_photos[0] : null;
$photo2 = isset($uploaded_photos[1]) ? $uploaded_photos[1] : null;
$photo3 = isset($uploaded_photos[2]) ? $uploaded_photos[2] : null;
$video1 = isset($uploaded_videos[0]) ? $uploaded_videos[0] : null;
// Si solo hay videos, los guardamos en la columna "photo"
if ($video1) {
$photo1 = $video1;
$photo2 = null; // Reseteamos las otras fotos si solo hay un video
$photo3 = null;
}
// Procesar el resto de tu código para insertar en la base de datos
$querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC");
$quid = '';
if (mysqli_num_rows($querim) === 0) {
$quid .= '0,';
}
$ino = 1;
while ($filo = mysqli_fetch_assoc($querim)) {
$pinta = $ino++;
$quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC");
$qilo = mysqli_fetch_assoc($quala);
$quid .= '0,' . $qilo['id'] . ',';
}
$friendfly = str_replace(",0,", ",", $quid);
mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')");
// Notificaciones y etiquetado (ya tienes tu lógica aquí)
}
// Cierra conexión si es necesario
$photo1, $photo2, $photo3) para almacenar las rutas de las imágenes. Esto facilita la inserción en la base de datos.photo1 y se eliminan photo2 y photo3 ya que deben estar vacías si no se cargan fotos.puedes hacer que los videos se guarde en el mismo orden que se subio en photo?Para asegurarte de que se suban correctamente las imágenes y videos a las columnasphoto,photo2yphoto3, necesitamos modificar el script para manejar hasta tres archivos y almacenarlos apropiadamente.
Aquí tienes un código modificado que permite subir hasta tres archivos y los almacena en las respectivas columnas:
### Código PHP Modificado
PHP:// Inicializa los arrays para almacenar las rutas de los archivos subidos $uploaded_photos = []; $uploaded_videos = []; // Verifica si hay archivos subidos if (!empty($_FILES['fotoshop'])) { foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) { $fileType = $_FILES['fotoshop']['type'][$key]; // Manejo de videos if ($fileType === "video/mp4") { if (is_uploaded_file($tmp_name)) { sleep(1); $target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4'; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_videos[] = $target_path; } } } // Manejo de imágenes (jpeg, png, jpg) elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") { $target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp"; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_photos[] = $target_path; } } } // Preparamos las rutas para el INSERT $photo1 = isset($uploaded_photos[0]) ? $uploaded_photos[0] : null; $photo2 = isset($uploaded_photos[1]) ? $uploaded_photos[1] : null; $photo3 = isset($uploaded_photos[2]) ? $uploaded_photos[2] : null; $video1 = isset($uploaded_videos[0]) ? $uploaded_videos[0] : null; // Si solo hay videos, los guardamos en la columna "photo" if ($video1) { $photo1 = $video1; $photo2 = null; // Reseteamos las otras fotos si solo hay un video $photo3 = null; } // Procesar el resto de tu código para insertar en la base de datos $querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC"); $quid = ''; if (mysqli_num_rows($querim) === 0) { $quid .= '0,'; } $ino = 1; while ($filo = mysqli_fetch_assoc($querim)) { $pinta = $ino++; $quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC"); $qilo = mysqli_fetch_assoc($quala); $quid .= '0,' . $qilo['id'] . ','; } $friendfly = str_replace(",0,", ",", $quid); mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')"); // Notificaciones y etiquetado (ya tienes tu lógica aquí) } // Cierra conexión si es necesario
### Explicación de los Cambios:
1. Almacenamiento Separado: Se utilizan variables individuales ($photo1,$photo2,$photo3) para almacenar las rutas de las imágenes. Esto facilita la inserción en la base de datos.
2. Subida de Videos: Si solo un video se sube, se lo asigna aphoto1y se eliminanphoto2yphoto3ya que deben estar vacías si no se cargan fotos.
3. Condicionales de Verificación: Se verifica si existen archivos subidos antes de acceso a las rutas, asegurando que no se generen errores.
4. Manejo de Errores: Asegúrate de que tu directorio de destino existe y tiene los permisos correctos para permitir la carga de archivos.
5. Inyección SQL: Aunque se está ingresando la consulta directamente, considera usar sentencias preparadas para evitar la inyección SQL.
Ahora, asegúrate de que la lógica y los permisos del servidor están configurados correctamente para que funcione la carga de archivos. Después de estos cambios, deberías poder subir hasta tres archivos de imagen o video correctamente.
Por supuesto. Para garantizar que los videos y las imágenes se guarden en el mismo orden que fueron subidos en las columnas correspondientes de la base de datos (comopuedes hacer que los videos se guarde en el mismo orden que se subio en photo?
photo, photo2, photo3), puedes realizar la siguiente modificación en el código.// Inicializa los arrays para almacenar las rutas de los archivos subidos
$uploaded_files = [];
// Verifica si hay archivos subidos
if (!empty($_FILES['fotoshop'])) {
foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) {
$fileType = $_FILES['fotoshop']['type'][$key];
$target_path = '';
// Manejo de videos
if ($fileType === "video/mp4") {
if (is_uploaded_file($tmp_name)) {
sleep(1);
$target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4';
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_files[] = $target_path; // Agregar video a la lista
}
}
}
// Manejo de imágenes (jpeg, png, jpg)
elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") {
$target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp";
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_files[] = $target_path; // Agregar imagen a la lista
}
}
}
// Asignamos las rutas en el orden que fueron subidas
$photo1 = isset($uploaded_files[0]) ? $uploaded_files[0] : null;
$photo2 = isset($uploaded_files[1]) ? $uploaded_files[1] : null;
$photo3 = isset($uploaded_files[2]) ? $uploaded_files[2] : null;
// Procesar el resto de tu código para insertar en la base de datos
$querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC");
$quid = '';
if (mysqli_num_rows($querim) === 0) {
$quid .= '0,';
}
$ino = 1;
while ($filo = mysqli_fetch_assoc($querim)) {
$pinta = $ino++;
$quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC");
$qilo = mysqli_fetch_assoc($quala);
$quid .= '0,' . $qilo['id'] . ',';
}
$friendfly = str_replace(",0,", ",", $quid);
mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')");
// Notificaciones y etiquetado (ya tienes tu lógica aquí)
}
// Cierra conexión si es necesario
$uploaded_files que almacena todos los archivos subidos, independientemente de si son imágenes o videos.photo1, photo2 y photo3 de acuerdo con el índice.photo1, photo2 y photo3, se verifica si los elementos existen en el array, garantizando así que sea seguro hacer referencia a ellos.photo, el segundo a photo2 y el tercero a photo3.puedes hacer que cuando $_POST['category'] sea igual a livs se suba solo una foto o video en photo1Por supuesto. Para garantizar que los videos y las imágenes se guarden en el mismo orden que fueron subidos en las columnas correspondientes de la base de datos (comophoto,photo2,photo3), puedes realizar la siguiente modificación en el código.
Aquí tienes el código que almacena los archivos en el orden en que se subieron, asegurando que la inserción en la base de datos refleje ese orden.
### Código PHP Modificado
PHP:// Inicializa los arrays para almacenar las rutas de los archivos subidos $uploaded_files = []; // Verifica si hay archivos subidos if (!empty($_FILES['fotoshop'])) { foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) { $fileType = $_FILES['fotoshop']['type'][$key]; $target_path = ''; // Manejo de videos if ($fileType === "video/mp4") { if (is_uploaded_file($tmp_name)) { sleep(1); $target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4'; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_files[] = $target_path; // Agregar video a la lista } } } // Manejo de imágenes (jpeg, png, jpg) elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") { $target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp"; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_files[] = $target_path; // Agregar imagen a la lista } } } // Asignamos las rutas en el orden que fueron subidas $photo1 = isset($uploaded_files[0]) ? $uploaded_files[0] : null; $photo2 = isset($uploaded_files[1]) ? $uploaded_files[1] : null; $photo3 = isset($uploaded_files[2]) ? $uploaded_files[2] : null; // Procesar el resto de tu código para insertar en la base de datos $querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC"); $quid = ''; if (mysqli_num_rows($querim) === 0) { $quid .= '0,'; } $ino = 1; while ($filo = mysqli_fetch_assoc($querim)) { $pinta = $ino++; $quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC"); $qilo = mysqli_fetch_assoc($quala); $quid .= '0,' . $qilo['id'] . ','; } $friendfly = str_replace(",0,", ",", $quid); mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')"); // Notificaciones y etiquetado (ya tienes tu lógica aquí) } // Cierra conexión si es necesario
### Explicación de los Cambios:
1. Array Unificado: En lugar de tener dos arrays separados para fotos y videos, se usa un solo array$uploaded_filesque almacena todos los archivos subidos, independientemente de si son imágenes o videos.
2. Orden de Inserción: Los archivos se añaden al mismo array en el orden en que fueron subidos. Luego, se asignan aphoto1,photo2yphoto3de acuerdo con el índice.
3. Manejo de Nulidad: Al momento de asignar las variablesphoto1,photo2yphoto3, se verifica si los elementos existen en el array, garantizando así que sea seguro hacer referencia a ellos.
Con esta configuración, puedes subir y guardar los archivos en el orden en el que fueron seleccionados por el usuario. Así, el primer archivo subido irá aphoto, el segundo aphoto2y el tercero aphoto3.
Claro, aquí tienes el código modificado para que, cuando el valor depuedes hacer que cuando $_POST['category'] sea igual a livs se suba solo una foto o video en photo1
$_POST['category'] sea igual a "livs", solo se suba una imagen o un video a photo1. Para cualquier otra categoría, se permitirá que se suban hasta tres archivos.// Inicializa el array para almacenar la ruta del archivo subido
$uploaded_files = [];
// Verifica si hay archivos subidos
if (!empty($_FILES['fotoshop'])) {
foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) {
$fileType = $_FILES['fotoshop']['type'][$key];
$target_path = '';
// Manejo de videos
if ($fileType === "video/mp4") {
if (is_uploaded_file($tmp_name)) {
sleep(1);
$target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4';
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_files[] = $target_path; // Agregar video a la lista
break; // Salimos del bucle después de subir un video
}
}
}
// Manejo de imágenes (jpeg, png, jpg)
elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") {
$target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp";
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_files[] = $target_path; // Agregar imagen a la lista
break; // Salimos del bucle después de subir una imagen
}
}
}
// Asignamos la ruta si la categoría es "livs"
if ($_POST['category'] === "livs") {
$photo1 = isset($uploaded_files[0]) ? $uploaded_files[0] : null;
$photo2 = null;
$photo3 = null;
} else { // Para otras categorías, permite hasta tres archivos
$photo1 = isset($uploaded_files[0]) ? $uploaded_files[0] : null;
$photo2 = isset($uploaded_files[1]) ? $uploaded_files[1] : null;
$photo3 = isset($uploaded_files[2]) ? $uploaded_files[2] : null;
}
// Procesar el resto de tu código para insertar en la base de datos
$querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC");
$quid = '';
if (mysqli_num_rows($querim) === 0) {
$quid .= '0,';
}
$ino = 1;
while ($filo = mysqli_fetch_assoc($querim)) {
$pinta = $ino++;
$quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC");
$qilo = mysqli_fetch_assoc($quala);
$quid .= '0,' . $qilo['id'] . ',';
}
$friendfly = str_replace(",0,", ",", $quid);
mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')");
// Notificaciones y etiquetado (ya tienes tu lógica aquí)
}
// Cierra conexión si es necesario
$_POST['category']: Se agrega una condición para verificar si la categoría es "livs". Si es así, solo se sube un archivo a photo1.break: En el bucle que maneja la subida de archivos, se utiliza break para salir del bucle después de que se haya subido un archivo, evitando que se suban más archivos si ya se ha subido uno.photo1. Para otras categorías, se seguirán permitiendo hasta tres archivos.una duda, tampoco se subira al servidor verdad?Claro, aquí tienes el código modificado para que, cuando el valor de$_POST['category']sea igual a "livs", solo se suba una imagen o un video aphoto1. Para cualquier otra categoría, se permitirá que se suban hasta tres archivos.
### Código PHP Modificado
PHP:// Inicializa el array para almacenar la ruta del archivo subido $uploaded_files = []; // Verifica si hay archivos subidos if (!empty($_FILES['fotoshop'])) { foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) { $fileType = $_FILES['fotoshop']['type'][$key]; $target_path = ''; // Manejo de videos if ($fileType === "video/mp4") { if (is_uploaded_file($tmp_name)) { sleep(1); $target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4'; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_files[] = $target_path; // Agregar video a la lista break; // Salimos del bucle después de subir un video } } } // Manejo de imágenes (jpeg, png, jpg) elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") { $target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp"; if (move_uploaded_file($tmp_name, $target_path)) { $uploaded_files[] = $target_path; // Agregar imagen a la lista break; // Salimos del bucle después de subir una imagen } } } // Asignamos la ruta si la categoría es "livs" if ($_POST['category'] === "livs") { $photo1 = isset($uploaded_files[0]) ? $uploaded_files[0] : null; $photo2 = null; $photo3 = null; } else { // Para otras categorías, permite hasta tres archivos $photo1 = isset($uploaded_files[0]) ? $uploaded_files[0] : null; $photo2 = isset($uploaded_files[1]) ? $uploaded_files[1] : null; $photo3 = isset($uploaded_files[2]) ? $uploaded_files[2] : null; } // Procesar el resto de tu código para insertar en la base de datos $querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC"); $quid = ''; if (mysqli_num_rows($querim) === 0) { $quid .= '0,'; } $ino = 1; while ($filo = mysqli_fetch_assoc($querim)) { $pinta = $ino++; $quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC"); $qilo = mysqli_fetch_assoc($quala); $quid .= '0,' . $qilo['id'] . ','; } $friendfly = str_replace(",0,", ",", $quid); mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')"); // Notificaciones y etiquetado (ya tienes tu lógica aquí) } // Cierra conexión si es necesario
### Explicación de los Cambios:
1. Condicional para$_POST['category']: Se agrega una condición para verificar si la categoría es "livs". Si es así, solo se sube un archivo aphoto1.
2. Uso debreak: En el bucle que maneja la subida de archivos, se utilizabreakpara salir del bucle después de que se haya subido un archivo, evitando que se suban más archivos si ya se ha subido uno.
3. Multi-subida para Otras Categorías: Si la categoría no es "livs", se permite la subida de hasta tres archivos como anteriormente.
Con estos cambios, cuando se envíe una publicación con la categoría "livs", solo se guardará un archivo en la columnaphoto1. Para otras categorías, se seguirán permitiendo hasta tres archivos.
Correcto, en el código actual, si la categoría es "livs", solo se permite la subida de un único archivo, y este se subirá al servidor. Si hay un archivo subido sin problemas, se moverá a la ubicación deseada en el servidor. Sin embargo, si no se sube ningún archivo o si se produce un error, no se guardará ninguno.una duda, tampoco se subira al servidor verdad?
no sube el photo2 y photo3Correcto, en el código actual, si la categoría es "livs", solo se permite la subida de un único archivo, y este se subirá al servidor. Si hay un archivo subido sin problemas, se moverá a la ubicación deseada en el servidor. Sin embargo, si no se sube ningún archivo o si se produce un error, no se guardará ninguno.
### Resumen:
- Categoría "livs": Solo se permite un único archivo (foto o video) y este se subirá al directorio especificado en el servidor.
- Otras categorías: Permiten hasta tres archivos, que también se subirán al servidor.
Si un archivo se mueve correctamente a la ubicación de destino, la ruta de ese archivo se almacenará en la base de datos. Puedes verificar la condición de subida y asegúrate de que la carpeta de destino tenga los permisos necesarios para permitir la escritura. Si la subida no funciona, revisa los mensajes de error o verifica que el archivo está en un formato permitido.
Si necesitas más aclaraciones o ajustes, ¡hazmelo saber!
Para asegurarte de queno sube el photo2 y photo3
photo2 y photo3 se suban correctamente, necesitarás ajustar el código para manejar las condiciones que permiten múltiples archivos cuando la categoría no es "livs", y asegurarte de que los archivos sean efectivamente subidos y procesados.photo1, photo2 y photo3:// Inicializa el array para almacenar las rutas de los archivos subidos
$uploaded_files = [];
// Verifica si hay archivos subidos
if (!empty($_FILES['fotoshop'])) {
foreach ($_FILES['fotoshop']['tmp_name'] as $key => $tmp_name) {
$fileType = $_FILES['fotoshop']['type'][$key];
$target_path = '';
// Manejo de videos
if ($fileType === "video/mp4") {
if (is_uploaded_file($tmp_name)) {
sleep(1);
$target_path = 'upload/' . mt_rand(1, 100) . bin2hex(random_bytes(mt_rand(5, 15))) . '.mp4';
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_files[] = $target_path; // Agregar video a la lista
}
}
}
// Manejo de imágenes (jpeg, png, jpg)
elseif ($fileType === "image/jpeg" || $fileType === "image/png" || $fileType === "image/jpg") {
$target_path = "imguser/" . mt_rand(1, 99999) . mt_rand(1, 1000) . $username . date("zihdYN") . ".webp";
if (move_uploaded_file($tmp_name, $target_path)) {
$uploaded_files[] = $target_path; // Agregar imagen a la lista
}
}
}
// Asignamos las rutas en el orden que fueron subidas
$photo1 = null;
$photo2 = null;
$photo3 = null;
if (count($uploaded_files) > 0) {
$photo1 = $uploaded_files[0]; // Primer archivo subido va a photo1
}
if (count($uploaded_files) > 1) {
$photo2 = $uploaded_files[1]; // Segundo archivo subido va a photo2
}
if (count($uploaded_files) > 2) {
$photo3 = $uploaded_files[2]; // Tercer archivo subido va a photo3
}
// Procesar el resto de tu código para insertar en la base de datos
$querim = mysqli_query($conexion, "SELECT * FROM friends WHERE litefriends LIKE '%," . $id . ",%' AND username != '" . $username . "' ORDER BY id DESC");
$quid = '';
if (mysqli_num_rows($querim) === 0) {
$quid .= '0,';
}
$ino = 1;
while ($filo = mysqli_fetch_assoc($querim)) {
$pinta = $ino++;
$quala = mysqli_query($conexion, "SELECT * FROM profileuser WHERE username = '" . $filo['username'] . "' ORDER BY id DESC");
$qilo = mysqli_fetch_assoc($quala);
$quid .= '0,' . $qilo['id'] . ',';
}
$friendfly = str_replace(",0,", ",", $quid);
mysqli_query($conexion, "INSERT INTO posters (idviews, idseguis, category, hora, photo, photo2, photo3, nombre, apellido, username, email, descripts, fecha) VALUES ('0,', '" . $friendfly . "', '" . $_POST['category'] . "', '" . date("d-m-Y H:i:s") . "', '" . $photo1 . "', '" . $photo2 . "', '" . $photo3 . "', '" . $nombre . "', '" . $apellido . "', '" . $username . "', '" . $email . "', '" . $_POST['mensaje'] . "', '" . date('d M Y') . "')");
// Notificaciones y etiquetado (ya tienes tu lógica aquí)
}
// Cierra conexión si es necesario
[ $uploaded_files ] para almacenar todos los archivos subidos, ya sean imágenes o videos.[ $uploaded_files ] para asignar archivos a [ $photo1, $photo2, $photo3 ] según el número de archivos subidos. Esto asegura que se asignen correctamente.[ $photo1, $photo2, $photo3 ] se insertan en la base de datos. Si no hay suficientes archivos, las variables restantes permanecerán nulas.multiple.move_uploaded_file() y añade mensajes de depuración según sea necesario.