Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro na minha prática de php

Fala galera estou bolando um sistema pequeno para praticar os conceitos da carreira de php.

Criei uma página de cadastro de usuário, fiz a conexão com o banco e criei uma função de inserção no banco. Porém ocorre ocorre o seguinte erro:

Parse error: syntax error, unexpected '$aluno' (T_VARIABLE) in C:\wamp64\www\emotiv\controllers\cadastra-usuario.php on line 12
// arquivo formulario-cadastro-usuario.php
<?php
require_once 'cabecalho.php';
require_once '/controllers/cadastra-usuario.php';
?>

<form class="" action="index.php" method="post">
  <label>Nome</label>
  <br>
  <input type="text" name="nome" value="<?=$aluno['nome']?>">
  <br>
  <br>
  <label>Matrícula</label>
  <br>
  <input type="text" name="matricula" value="<?=$aluno['matricula']?>">
  <br>
  <br>
  <label>Curso:</label>
  <br>
  <input type="text" name="curso" value="<?=$aluno['curso']?>">
  <br>
  <br>
  <label>Instituição:</label>
  <br>
  <input type="text" name="instituicao" value="<?=$aluno['instituicao']?>">
  <br>
  <br>
  <label>E-mail:</label>
  <input type="email" name="email" value="">
  <br>
  <br>
  <input type="submit" name="submit" value="Cadastrar">
</form>

<?php require 'rodape.php'; ?>
// arquivo cadastra-usuario.php
<?php
require_once 'banco-usuario.php';
require_once 'models/Aluno.php';

$aluno = new Aluno();

$aluno->nome = $_POST['nome'];
$aluno->curso = $_POST['curso'];
$aluno->instituicao = $_POST['instituicao'];
$aluno->email = $_POST['email'];

if(insereUsuario($conexao, Aluno $aluno)) {  // essa é a linha do erro
  $msg = "Aluno cadastrado com sucesso!";
} else {
  $msg = mysqli_error($conexao);
}
// arquivo banco-usuario.php
<?php
require_once 'conecta.php';
require_once 'models/Aluno.php';

function insereUsuario($conexao, Aluno $aluno) {
    $query = "insert into aluno (matricula, nome, curso, instituicao, email, senha)
      values ('{$aluno->matricula}', '{$aluno->nome}', '{$aluno->curso}', '{$aluno->instituicao}',
          '{$aluno->email}', '{$aluno->matricula}')";

    return mysqli_query($conexao, $query);
}
//arquivo conecta.php

<?php
$conexao = mysqli_connect("localhost", "root", "", "emotiv");
3 respostas

Acredit que esta linha...

if(insereUsuario($conexao, Aluno $aluno)) {

...deveria ser...

if(insereUsuario($conexao, $aluno)) {

Marcelo, você tem certeza?

Eu já havia tentado dessa forma, mas fica pior haha. São acusados os seguintes erros:

Notice: Undefined index: nome in C:\wamp64\www\emotiv\controllers\cadastra-usuario.php on line 7
Notice: Undefined index: curso in C:\wamp64\www\emotiv\controllers\cadastra-usuario.php on line 8
 Notice: Undefined index: instituicao in C:\wamp64\www\emotiv\controllers\cadastra-usuario.php on line 9
Notice: Undefined index: email in C:\wamp64\www\emotiv\controllers\cadastra-usuario.php on line 10

Fatal error: Cannot use object of type Aluno as array in C:\wamp64\www\emotiv\cadastro-usuario.php on line 9 Call Stack #TimeMemoryFunctionLocation 10.0010235952{main}( )...\cadastro-usuario.php:0
solução!

ok, identifiquei o erro.