Ir para conteúdo
Fórum Script Brasil
  • 0

Meu script básico não está funcionando, virei e revirei e não encontrei o erro, apelo para um de vocês, obrigado...!


iatoran

Pergunta

Estou iniciando um curso de php básico e gostaria muito de que alguém encontrasse onde errei - já conferi e "reconferi" o exemplo do professor Manoel, mas deu a "mulesta dos cachorro" (é, é, pernambuquês), mas nada feito, nada funciona, a tela fica sem resposta.


Vou pôr meu código e apelar para alguém me dar uma dica:

---------

View:
 
<html>
<head>
 
<meta charset = "utf-8>
<title>Aprendendo PHP </title>
</head>
 
 
<body>
<form action="<?php echo "localhost/exercicio/app/controllers/exercicio/calcularEx01" ?>" method="Post"> <!-- quando pus url_base, o navegador fica reclamando, assim, ele parou, então, mantive só para funcionar -->
Nome1: <input type="text" name="txt_nome1">
Nome2: <input type="text" name="txt_nome2">
<input type="submit" value="Imprime">
 
</form>
<br> <span><b> <?php echo isset ($resultado) ? $resultado : null; ?> </b></span>
</body>
</html>

---------
Model:
 
?php
 
namespace app\models; // tem que ter ponto-e-vírgula no namespace e no use
 
//use app\core\Model
class Exercicio {  // não tem parênteses na classe
public function lerDoisValores ($nome1, $nome2) {
 
return $nome1." ".$nome2; 
 
}
}
 
Controller
 
?php 
 
namespace app\controllers;
 
use app\models\Exercicio; 
 
class ExercicioController {   //classes não têm parêntesis
 
public function index () {
echo "Lista de Resultados";
 
}
 
public function ex01 () {   //função tem parêntesis - são os atributos
 
 
$dados["view"] = "ex01";
$this-> load("ex01", $dados);
}
public function calcularEx01 () {   //função tem parêntesis - são os atributos
$objExercicio = new Exercicio(); //objeto também tem parêntesis
 
$nome1 = isset ($_POST["txt_nome1"]) ? $_POST["txt_nome1"] : null;
$nome2 = isset ($_POST["txt_nome2"]) ? $_POST["txt_nome2"] : null;
 
$dados["resultado"] = $objExercicio-> lerDoisValores($nome1, $nome2);
 
$dados["vies"] = "ex01";
$this-> load("ex01", $dados);
}
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Para você ajuntar dois textos, basta usar o HTML

Caso você não saiba como conectar o banco de dados no HTML com JavaScript, aí você vai precisar do PHP.

Um código básico de PHP é assim:

<?php
$mysqli=new mysqli("localhost","root","","astudy");

O PHP se tornou popular porque é bem mais fácil trabalhar com ele do que com JavaScript.

Mas nem tudo que tem o marcador <?php é PHP como é o código que você publicou. Esse código que você publicou é Laravel, uma nova tecnologia que surgiu em 2011 para turbinar o PHP com falicitadores. É o mesmo caso do JQuery com o JavaScript.

Se eu fosse você, pediria o dinheiro de volta do professor que não ensinou nada para você, só fez você perder tempo.

Mas, já que chegamos aqui, usei o seu código para rodar no Laravel. O PHP precisa de um servidor tipo Wamp no ambiente Windows. O Laravel precisa de tudo isso e do programa Composer. No PHP você é o controlador, visualizador e roteador. Já o Laravel exige que você separe tudo assim:

astudy>routes>web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ExercicioController;
Route::get('',[ExercicioController::class,'ex01']);

astudy>app>Http>Controllers>ExercicioController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ExercicioController extends Controller{
    public function ex01(request $request) { 
        if($request->input('txt_nome1')){
            $texto1=$request->input('txt_nome1');
            $texto2=$request->input('txt_nome2');
            $resultado=Exercicio::lerDoisValores($texto1,$texto2);}   
        return view('view',['resultado'=>$resultado]);}} 

astudy>app>Http>Controllers>Exercicio.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class Exercicio extends Controller{
    public static function lerDoisValores ($nome1, $nome2) {
        return $nome1." ".$nome2;}}

astudy>resources>views:view.blade.php
<html>
<head>
<meta charset=utf-8>
<title>Aprendendo Laravel</title>
</head>
<body>
<form>
Nome1: <input type="text" name="txt_nome1">
Nome2: <input type="text" name="txt_nome2">
<input type="submit" value="Imprime">
</form>
<br> <span><b> <?php echo isset ($resultado) ? $resultado : null; ?> </b></span>
</body>
</html>

O seu código sugere criar a classe Exercício dentro da pasta Models. Eu tentei e não consegui. Tentei criar a classe no Helper.php, mas não consegui. A minha última saída foi criar a classe dentro do controlador. Eu apanhei muito, mas consegui concatenar os dois textos pelo Laravel, isso parece inútil, mas aos poucos fui aprendendo o que posso e o que não posso fazer com o Laravel.

O Laravel, no meu caso, precisa do servidor WampServ, e também de um outro servidor chamado Artisan. Para botar o Laravel no ar, você tem que digitar no diretório do projeto "php artisan serve".

No navegador, você digita "localhost" para acessar o PHP, e digita "localhost:8000" para acessar o Laravel.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...