Hi guys, im a student and i’m learning mvc on my php class. My school work is to make insert/update and delete using mvc. This is my folder structure.
.On controllers/Brawler i have this function.
> public function insert() {
$Brawlers = $this->model('Brawlers'); // é retornado o model Brawlers() $data = $Brawlers::inserir($_POST, $_FILES); $this->view('brawler/insert', ['brawlers' => $data]); }
On models/Brawlers i have
public static function inserir($post, $files){ // tratamento dos erros $post = $_POST; $files = $_FILES; if (isset($_POST['name']) && isset($_POST['rarity']) && isset($_POST['role']) && isset($_POST['health']) && isset($_POST['speed']) && isset($_FILES['image'])) { if ($_FILES['image']['error'] > 0) { echo 'Problema: <br />'; switch ($_FILES['image']['error']) { case 1: echo 'Ficheiro excedeu o tamanho máximo especificado em php.ini'; break; // do PHP case 2: echo 'Ficheiro excedeu o tamanho máximo especificado pelo aributo MAX_FILE_SIZE do formulário HTML'; break; // do HTML case 3: echo 'Ficheiro apenas parcialmente carregado [corrompido]'; break; // falhou case 4: echo 'Ficheiro não foi carregado'; break; // falhou } exit; } $name = $_POST['name']; $rarity = $_POST['rarity']; $role = $_POST['role']; $health = $_POST['health']; $speed = $_POST['speed']; $image = $_FILES['image']['name']; $image_caminho = "imgs/" . $image; $ativo = 1; // se existe o ficheiro uploaded if (is_uploaded_file($_FILES['image']['tmp_name'])) { // neste caso, o registo em base de dados apenas é efetuado se houver ficheiro // verificar se o ficheiro já existe no servidor (na pasta do projeto) // no caso de existir, o nome do ficheiro é alterado sendo concatenado com o timestamp if (file_exists($image_caminho)) { $image = time() . $image; $image_caminho = "imgs/" . $image; } // move-o para o destino if (move_uploaded_file($_FILES['image']['tmp_name'], $image_caminho)) { // foi feito o upload do ficheiro com sucesso para a pasta destino // registar informação em base de dados $sql="INSERT INTO brawlers (name, rarity, role, health, speed, image) VALUES (?,?,?,?,?,?)"; /* Prepare statement */ $stmt = $conn->prepare($sql); if($stmt === false) { trigger_error('Problema com o SQL: ' . $sql . ' Erro: ' . $conn->error, E_USER_ERROR); } else { /* Bind parameters. Types: s = string, i = integer, d = double, b = blob */ $stmt->bind_param('ssssss', $name, $rarity, $role, $health, $speed, $image); /* Execute statement */ $stmt->execute(); if ($stmt->affected_rows > 0) { echo "<div><b>Utilizador registado com sucesso.</b></div>" ; echo "<div><img src='" . $image_caminho . "'></div>" ; } } $stmt->close(); } else { echo 'Problema: Impossível mover para destino final'; exit; } } else { echo 'Problema: Filename: '; echo $_FILES['image']['name']; exit; } } }
And on Views/insert i have
<div style="padding-top: 40px;"> <h1>Criação de novo utilizador</h1> <form action="./insert" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <div> <div>Name</div> <div><input type="text" name="name" id="name"></div> </div> <div> <div>Rarity:</div> <div><input type="text" name="rarity" id="rarity"></div> </div> <div> <div>Role:</div> <div><input type="text" name="role" id="role"></div> </div> <div> <div>health:</div> <div><input type="text" name="health" id="health"></div> </div> <div> <div>speed:</div> <div><input type="text" name="speed" id="speed"></div> </div> <div> <div>Imagem:</div> <div><input type="file" name="image"></div> </div> <div style="margin-top: 20px;"> <button type="submit">Enviar formulário</button> </div> </form> <a href="../">Voltar para pagina inicial</a></li> </div>
I’m trying to make the insert, but its not working. When i click submit nothing happpens. Can someone help me with this? Thank you and sorry for my bad english.