Ajax file upload with form upload custom error message












0















I am following this tutorial on how to upload an image with file using ajax and php.. https://www.codexworld.com/ajax-file-upload-with-form-data-jquery-php-mysql/



Everything works fine but for some reasons I get the custom error message
"Some problem occurred, please try again."



Even when the file gets uploaded and also the data.



html



<p class="statusMsg"></p>
<form enctype="multipart/form-data" id="fupForm" >
<div class="form-group">
<label for="name">NAME</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />
</div>
<div class="form-group">
<label for="email">EMAIL</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email" required />
</div>
<div class="form-group">
<label for="file">File</label>
<input type="file" class="form-control" id="file" name="file" required />
</div>
<input type="submit" name="submit" class="btn btn-danger submitBtn" value="SAVE"/>




Ajax



<script>
$(document).ready(function(e){
$("#fupForm").on('submit', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'submit.php',
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
beforeSend: function(){
$('.submitBtn').attr("disabled","disabled");
$('#fupForm').css("opacity",".5");
},
success: function(msg){
$('.statusMsg').html('');
if(msg == 'ok'){
$('#fupForm')[0].reset();
$('.statusMsg').html('<span style="font-size:18px;color:#34A853">Form data submitted successfully.</span>');
}else{
$('.statusMsg').html('<span style="font-size:18px;color:#EA4335">Some problem occurred, please try again.</span>');
}
$('#fupForm').css("opacity","");
$(".submitBtn").removeAttr("disabled");
}
});
});

//file type validation
$("#file").change(function() {
var file = this.files[0];
var imagefile = file.type;
var match= ["image/jpeg","image/png","image/jpg"];
if(!((imagefile==match[0]) || (imagefile==match[1]) || (imagefile==match[2]))){
alert('Please select a valid image file (JPEG/JPG/PNG).');
$("#file").val('');
return false;
}
});
});
</script>


submit.php



<?php
if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
$uploadedFile = '';
if(!empty($_FILES["file"]["type"])){
$fileName = time().'_'.$_FILES['file']['name'];
$valid_extensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if((($_FILES["hard_file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "uploads/".$fileName;
if(move_uploaded_file($sourcePath,$targetPath)){
$uploadedFile = $fileName;
}
}
}

$name = $_POST['name'];
$email = $_POST['email'];

//include database configuration file
include_once 'dbConfig.php';

//insert form data in the database
$insert = $db->query("INSERT form_data (name,email,file_name) VALUES
('".$name."','".$email."','".$uploadedFile."')");

echo $insert?'ok':'err';
}









share|improve this question




















  • 1





    Warning: You are wide open to SQL Injections and should really use parameterized Prepared Statements instead of manually building your queries like that. Specially since you're not escaping the user inputs at all!

    – Magnus Eriksson
    Nov 28 '18 at 12:00






  • 2





    Do a console.log(msg) and check what it actually contains.

    – Magnus Eriksson
    Nov 28 '18 at 12:00











  • You can check the server response from your browser network section.

    – McBern
    Nov 28 '18 at 12:18











  • could you please show me table structure of form_data. because as per my assumption this must due to database error.

    – Parvej Alam
    Nov 28 '18 at 12:25
















0















I am following this tutorial on how to upload an image with file using ajax and php.. https://www.codexworld.com/ajax-file-upload-with-form-data-jquery-php-mysql/



Everything works fine but for some reasons I get the custom error message
"Some problem occurred, please try again."



Even when the file gets uploaded and also the data.



html



<p class="statusMsg"></p>
<form enctype="multipart/form-data" id="fupForm" >
<div class="form-group">
<label for="name">NAME</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />
</div>
<div class="form-group">
<label for="email">EMAIL</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email" required />
</div>
<div class="form-group">
<label for="file">File</label>
<input type="file" class="form-control" id="file" name="file" required />
</div>
<input type="submit" name="submit" class="btn btn-danger submitBtn" value="SAVE"/>




Ajax



<script>
$(document).ready(function(e){
$("#fupForm").on('submit', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'submit.php',
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
beforeSend: function(){
$('.submitBtn').attr("disabled","disabled");
$('#fupForm').css("opacity",".5");
},
success: function(msg){
$('.statusMsg').html('');
if(msg == 'ok'){
$('#fupForm')[0].reset();
$('.statusMsg').html('<span style="font-size:18px;color:#34A853">Form data submitted successfully.</span>');
}else{
$('.statusMsg').html('<span style="font-size:18px;color:#EA4335">Some problem occurred, please try again.</span>');
}
$('#fupForm').css("opacity","");
$(".submitBtn").removeAttr("disabled");
}
});
});

//file type validation
$("#file").change(function() {
var file = this.files[0];
var imagefile = file.type;
var match= ["image/jpeg","image/png","image/jpg"];
if(!((imagefile==match[0]) || (imagefile==match[1]) || (imagefile==match[2]))){
alert('Please select a valid image file (JPEG/JPG/PNG).');
$("#file").val('');
return false;
}
});
});
</script>


submit.php



<?php
if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
$uploadedFile = '';
if(!empty($_FILES["file"]["type"])){
$fileName = time().'_'.$_FILES['file']['name'];
$valid_extensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if((($_FILES["hard_file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "uploads/".$fileName;
if(move_uploaded_file($sourcePath,$targetPath)){
$uploadedFile = $fileName;
}
}
}

$name = $_POST['name'];
$email = $_POST['email'];

//include database configuration file
include_once 'dbConfig.php';

//insert form data in the database
$insert = $db->query("INSERT form_data (name,email,file_name) VALUES
('".$name."','".$email."','".$uploadedFile."')");

echo $insert?'ok':'err';
}









share|improve this question




















  • 1





    Warning: You are wide open to SQL Injections and should really use parameterized Prepared Statements instead of manually building your queries like that. Specially since you're not escaping the user inputs at all!

    – Magnus Eriksson
    Nov 28 '18 at 12:00






  • 2





    Do a console.log(msg) and check what it actually contains.

    – Magnus Eriksson
    Nov 28 '18 at 12:00











  • You can check the server response from your browser network section.

    – McBern
    Nov 28 '18 at 12:18











  • could you please show me table structure of form_data. because as per my assumption this must due to database error.

    – Parvej Alam
    Nov 28 '18 at 12:25














0












0








0








I am following this tutorial on how to upload an image with file using ajax and php.. https://www.codexworld.com/ajax-file-upload-with-form-data-jquery-php-mysql/



Everything works fine but for some reasons I get the custom error message
"Some problem occurred, please try again."



Even when the file gets uploaded and also the data.



html



<p class="statusMsg"></p>
<form enctype="multipart/form-data" id="fupForm" >
<div class="form-group">
<label for="name">NAME</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />
</div>
<div class="form-group">
<label for="email">EMAIL</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email" required />
</div>
<div class="form-group">
<label for="file">File</label>
<input type="file" class="form-control" id="file" name="file" required />
</div>
<input type="submit" name="submit" class="btn btn-danger submitBtn" value="SAVE"/>




Ajax



<script>
$(document).ready(function(e){
$("#fupForm").on('submit', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'submit.php',
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
beforeSend: function(){
$('.submitBtn').attr("disabled","disabled");
$('#fupForm').css("opacity",".5");
},
success: function(msg){
$('.statusMsg').html('');
if(msg == 'ok'){
$('#fupForm')[0].reset();
$('.statusMsg').html('<span style="font-size:18px;color:#34A853">Form data submitted successfully.</span>');
}else{
$('.statusMsg').html('<span style="font-size:18px;color:#EA4335">Some problem occurred, please try again.</span>');
}
$('#fupForm').css("opacity","");
$(".submitBtn").removeAttr("disabled");
}
});
});

//file type validation
$("#file").change(function() {
var file = this.files[0];
var imagefile = file.type;
var match= ["image/jpeg","image/png","image/jpg"];
if(!((imagefile==match[0]) || (imagefile==match[1]) || (imagefile==match[2]))){
alert('Please select a valid image file (JPEG/JPG/PNG).');
$("#file").val('');
return false;
}
});
});
</script>


submit.php



<?php
if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
$uploadedFile = '';
if(!empty($_FILES["file"]["type"])){
$fileName = time().'_'.$_FILES['file']['name'];
$valid_extensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if((($_FILES["hard_file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "uploads/".$fileName;
if(move_uploaded_file($sourcePath,$targetPath)){
$uploadedFile = $fileName;
}
}
}

$name = $_POST['name'];
$email = $_POST['email'];

//include database configuration file
include_once 'dbConfig.php';

//insert form data in the database
$insert = $db->query("INSERT form_data (name,email,file_name) VALUES
('".$name."','".$email."','".$uploadedFile."')");

echo $insert?'ok':'err';
}









share|improve this question
















I am following this tutorial on how to upload an image with file using ajax and php.. https://www.codexworld.com/ajax-file-upload-with-form-data-jquery-php-mysql/



Everything works fine but for some reasons I get the custom error message
"Some problem occurred, please try again."



Even when the file gets uploaded and also the data.



html



<p class="statusMsg"></p>
<form enctype="multipart/form-data" id="fupForm" >
<div class="form-group">
<label for="name">NAME</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />
</div>
<div class="form-group">
<label for="email">EMAIL</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter email" required />
</div>
<div class="form-group">
<label for="file">File</label>
<input type="file" class="form-control" id="file" name="file" required />
</div>
<input type="submit" name="submit" class="btn btn-danger submitBtn" value="SAVE"/>




Ajax



<script>
$(document).ready(function(e){
$("#fupForm").on('submit', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: 'submit.php',
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
beforeSend: function(){
$('.submitBtn').attr("disabled","disabled");
$('#fupForm').css("opacity",".5");
},
success: function(msg){
$('.statusMsg').html('');
if(msg == 'ok'){
$('#fupForm')[0].reset();
$('.statusMsg').html('<span style="font-size:18px;color:#34A853">Form data submitted successfully.</span>');
}else{
$('.statusMsg').html('<span style="font-size:18px;color:#EA4335">Some problem occurred, please try again.</span>');
}
$('#fupForm').css("opacity","");
$(".submitBtn").removeAttr("disabled");
}
});
});

//file type validation
$("#file").change(function() {
var file = this.files[0];
var imagefile = file.type;
var match= ["image/jpeg","image/png","image/jpg"];
if(!((imagefile==match[0]) || (imagefile==match[1]) || (imagefile==match[2]))){
alert('Please select a valid image file (JPEG/JPG/PNG).');
$("#file").val('');
return false;
}
});
});
</script>


submit.php



<?php
if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
$uploadedFile = '';
if(!empty($_FILES["file"]["type"])){
$fileName = time().'_'.$_FILES['file']['name'];
$valid_extensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if((($_FILES["hard_file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "uploads/".$fileName;
if(move_uploaded_file($sourcePath,$targetPath)){
$uploadedFile = $fileName;
}
}
}

$name = $_POST['name'];
$email = $_POST['email'];

//include database configuration file
include_once 'dbConfig.php';

//insert form data in the database
$insert = $db->query("INSERT form_data (name,email,file_name) VALUES
('".$name."','".$email."','".$uploadedFile."')");

echo $insert?'ok':'err';
}






php html ajax






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 28 '18 at 15:02









daedsidog

1,3342830




1,3342830










asked Nov 28 '18 at 11:55









IbrahimcodesIbrahimcodes

206




206








  • 1





    Warning: You are wide open to SQL Injections and should really use parameterized Prepared Statements instead of manually building your queries like that. Specially since you're not escaping the user inputs at all!

    – Magnus Eriksson
    Nov 28 '18 at 12:00






  • 2





    Do a console.log(msg) and check what it actually contains.

    – Magnus Eriksson
    Nov 28 '18 at 12:00











  • You can check the server response from your browser network section.

    – McBern
    Nov 28 '18 at 12:18











  • could you please show me table structure of form_data. because as per my assumption this must due to database error.

    – Parvej Alam
    Nov 28 '18 at 12:25














  • 1





    Warning: You are wide open to SQL Injections and should really use parameterized Prepared Statements instead of manually building your queries like that. Specially since you're not escaping the user inputs at all!

    – Magnus Eriksson
    Nov 28 '18 at 12:00






  • 2





    Do a console.log(msg) and check what it actually contains.

    – Magnus Eriksson
    Nov 28 '18 at 12:00











  • You can check the server response from your browser network section.

    – McBern
    Nov 28 '18 at 12:18











  • could you please show me table structure of form_data. because as per my assumption this must due to database error.

    – Parvej Alam
    Nov 28 '18 at 12:25








1




1





Warning: You are wide open to SQL Injections and should really use parameterized Prepared Statements instead of manually building your queries like that. Specially since you're not escaping the user inputs at all!

– Magnus Eriksson
Nov 28 '18 at 12:00





Warning: You are wide open to SQL Injections and should really use parameterized Prepared Statements instead of manually building your queries like that. Specially since you're not escaping the user inputs at all!

– Magnus Eriksson
Nov 28 '18 at 12:00




2




2





Do a console.log(msg) and check what it actually contains.

– Magnus Eriksson
Nov 28 '18 at 12:00





Do a console.log(msg) and check what it actually contains.

– Magnus Eriksson
Nov 28 '18 at 12:00













You can check the server response from your browser network section.

– McBern
Nov 28 '18 at 12:18





You can check the server response from your browser network section.

– McBern
Nov 28 '18 at 12:18













could you please show me table structure of form_data. because as per my assumption this must due to database error.

– Parvej Alam
Nov 28 '18 at 12:25





could you please show me table structure of form_data. because as per my assumption this must due to database error.

– Parvej Alam
Nov 28 '18 at 12:25












1 Answer
1






active

oldest

votes


















1














The Error was in you PHP where you trying to check your file type you given $_FILES['hard_file']['type'] where it should be $_FILES['file']['type']



  if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
$uploadedFile = '';
if(!empty($_FILES["file"]["type"])){
$fileName = time().'_'.$_FILES['file']['name'];
$valid_extensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "./".$fileName;
if(move_uploaded_file($sourcePath,$targetPath)){
$uploadedFile = $fileName;
}
}
}





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53518920%2fajax-file-upload-with-form-upload-custom-error-message%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    The Error was in you PHP where you trying to check your file type you given $_FILES['hard_file']['type'] where it should be $_FILES['file']['type']



      if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
    $uploadedFile = '';
    if(!empty($_FILES["file"]["type"])){
    $fileName = time().'_'.$_FILES['file']['name'];
    $valid_extensions = array("jpeg", "jpg", "png");
    $temporary = explode(".", $_FILES["file"]["name"]);
    $file_extension = end($temporary);
    if((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
    $sourcePath = $_FILES['file']['tmp_name'];
    $targetPath = "./".$fileName;
    if(move_uploaded_file($sourcePath,$targetPath)){
    $uploadedFile = $fileName;
    }
    }
    }





    share|improve this answer




























      1














      The Error was in you PHP where you trying to check your file type you given $_FILES['hard_file']['type'] where it should be $_FILES['file']['type']



        if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
      $uploadedFile = '';
      if(!empty($_FILES["file"]["type"])){
      $fileName = time().'_'.$_FILES['file']['name'];
      $valid_extensions = array("jpeg", "jpg", "png");
      $temporary = explode(".", $_FILES["file"]["name"]);
      $file_extension = end($temporary);
      if((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
      $sourcePath = $_FILES['file']['tmp_name'];
      $targetPath = "./".$fileName;
      if(move_uploaded_file($sourcePath,$targetPath)){
      $uploadedFile = $fileName;
      }
      }
      }





      share|improve this answer


























        1












        1








        1







        The Error was in you PHP where you trying to check your file type you given $_FILES['hard_file']['type'] where it should be $_FILES['file']['type']



          if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
        $uploadedFile = '';
        if(!empty($_FILES["file"]["type"])){
        $fileName = time().'_'.$_FILES['file']['name'];
        $valid_extensions = array("jpeg", "jpg", "png");
        $temporary = explode(".", $_FILES["file"]["name"]);
        $file_extension = end($temporary);
        if((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
        $sourcePath = $_FILES['file']['tmp_name'];
        $targetPath = "./".$fileName;
        if(move_uploaded_file($sourcePath,$targetPath)){
        $uploadedFile = $fileName;
        }
        }
        }





        share|improve this answer













        The Error was in you PHP where you trying to check your file type you given $_FILES['hard_file']['type'] where it should be $_FILES['file']['type']



          if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_FILES['file']['name'])){
        $uploadedFile = '';
        if(!empty($_FILES["file"]["type"])){
        $fileName = time().'_'.$_FILES['file']['name'];
        $valid_extensions = array("jpeg", "jpg", "png");
        $temporary = explode(".", $_FILES["file"]["name"]);
        $file_extension = end($temporary);
        if((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && in_array($file_extension, $valid_extensions)){
        $sourcePath = $_FILES['file']['tmp_name'];
        $targetPath = "./".$fileName;
        if(move_uploaded_file($sourcePath,$targetPath)){
        $uploadedFile = $fileName;
        }
        }
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 28 '18 at 13:03









        Thalinda BandaraThalinda Bandara

        12918




        12918
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53518920%2fajax-file-upload-with-form-upload-custom-error-message%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Lallio

            Futebolista

            Jornalista