el manejo de errores y el tipo de imagen cat hacen que funcione

He estado trabajando en este script de imagen durante demasiado tiempo y todavía parece que no puedo hacer que funcionen dos cosas: el tipo de imagen y el manejo de errores (si los campos están vacíos). Tengo el código para esto, pero cada vez que trato de agregarlo, no funciona.

mi código:

$error_message="";
$MaxSize = "600000";
if (isset($_POST['btn_update'])){
function createRandomPassword() {
$chars = "abcde!@#%^fghijkmnoABCDEFGHIJKpqrstuvwxyz023456789ABCDEFGHIJKLMNOPQRSTUVWZ!@#%^&";
srand((double)microtime()*10000000);
$i = 0;
$pass = '' ;
while ($i <= 19) {
$num = rand() % 60;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
if ($_FILES['aMyUploads0']['size'] > $MaxSize || $_FILES['aMyUploads1']['size'] > $MaxSize || $_FILES['aMyUploads2']['size'] > $MaxSize)
{
$error_message = "ERROR: File too big!";

}
$aMyUploads = array();
$password = createRandomPassword();
foreach($_FILES as $aFile)
{
$newLocation = 'uploads/'.$password .$aFile["name"];
if(0 === $aFile['error'] && (false !== move_uploaded_file($aFile['tmp_name'], $newLocation)))
{
$aMyUploads[] = $newLocation;
}
else
{
$aMyUploads[] = '';
}
}
$error_message="Journal successfully saved.";
$connection = mysql_connect("localhost", "????", "???");
mysql_select_db("????", $connection);
$insert = "INSERT INTO photos (image1, image2, image3) VALUES
(
' ".$aMyUploads[0]." ',
' ".$aMyUploads[1]." ',
' ".$aMyUploads[2]." '
)";
$add_member = mysql_query($insert) or die(mysql_error());
}

code im trying to add with no luck:



 //ERROR HANDLING CODE:

    if(empty($aMyUploads[0]) || empty($aMyUploads[1]) || empty($aMyUploads[2]))
    {
    $error_message="Please fill in all fields.";
    }
    else
    {
    $error_message="Journal successfully saved.";


//IMAGE TYPE CODE:

$allowed_filetypes = array(".jpg", ".gif", ".jpeg", ".png");

$ext = substr($newLocation, strpos($newLocation,'.'), strlen($newLocation)-1);
if(!in_array($ext,$allowed_filetypes))
{
die('The file you attempted to upload is not allowed.');
}

preguntado el 22 de mayo de 12 a las 18:05

¿Su código normalmente está alineado a la izquierda? Sangrar su código (al menos en la pregunta para que sea más fácil de leer) sería beneficioso:

1 Respuestas

Pruebe esto para verificar los campos obligatorios, insertado antes del código que verifica los tamaños de archivo.

// ERROR HANDLING CODE:
if (empty($_FILES) || empty($_FILES['aMyUploads0']) || empty($_FILES['aMyUploads1']) || empty($_FILES['aMyUploads2']))
{
    // Handle error
}

Y esto para validar tipos de archivos, insertados en su foreach.

// IMAGE TYPE CODE:

$allowed_filetypes = array("jpg", "gif", "jpeg", "png");

$ext = pathinfo($aFile['name'], PATHINFO_EXTENSION);
if (!in_array($ext, $allowed_filetypes))
{
    // Handle error
}

contestado el 22 de mayo de 12 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.