Laravelのpublicディレクトリを使ってベタ書きのPHPで簡単なWEBアプリを作ろうとしてますが
表題のエラーが解決できません。
ローカル環境(XAMMP)では正常にPOST通信され、次のページが表示されるのですが、
それをAWS(Apache)にデプロイしたものを操作するとPOST通信するタイミングで404が表示されます。
formタグのaction="xxxxx.php"が環境によって書き方が違うのではないかとも思い
色々試しましたが上手くいきませんでした。
詳しい方がいましたらよろしくお願いします。
=====URL、ディレクトリ状況=====
ローカル環境の初期表示ページ(XAMPP)
http://localhost/laravelapp/public/calculator/calculator.php
AWS環境の初期表示ページ
http://ec2-XX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com/calculator/calculator.php
どちらの環境にもcalculatorフォルダの中に
Calculator.php
Calculate.php
Calcuexe.phpのファイルが構成されている
=====ソースコード=====
・Calculator.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <title>電卓</title> <link rel="stylesheet" type="text/css" href="../css/calculator.css"> </head> <body> <form action="Calcuexe.php" method="POST"> ←★★★actionの書き方が原因?★★★ <input type="text" name="value1" id="value1" class="CalcArea" value="<?php if(isset($calcu))echo($calcu->getVal1()) ?>" size="10" maxlengh="10" > <select name="operand" class="SymbolArea"> <option value=""></option> <option <?php if(isset($calcu) && $calcu->getOperand() == 'add')echo("selected") ?> value="add">+</option> <option <?php if(isset($calcu) && $calcu->getOperand() == 'subtract')echo("selected") ?> value="subtract">-</option> </select> <input type="text" name="value2" id="value2" class="CalcArea" value="<?php if(isset($calcu))echo($calcu->getVal2()) ?>" size="10" maxlengh="10" > = <input type="text" name="result" id="result" class="CalcArea" value="<?php if(isset($calcu))echo($calcu->getResult()) ?>" size="10" maxlengh="10" > <table border="0" class="ButtonArea"> <tr> <td><button class="Button" type="button" onclick="setNum(7)" value="7">7</button></td> <td><button class="Button" type="button" onclick="setNum(8)" value="8">8</button></td> <td><button class="Button" type="button" onclick="setNum(9)" value="9">9</button></td> </tr> <tr> <td><button class="Button" type="button" onclick="setNum(4)" value="4">4</button></td> <td><button class="Button" type="button" onclick="setNum(5)" value="5">5</button></td> <td><button class="Button" type="button" onclick="setNum(6)" value="6">6</button></td> </tr> <tr> <td><button class="Button" type="button" onclick="setNum('1')" value="1">1</button></td> <td><button class="Button" type="button" onclick="setNum(2)" value="2">2</button></td> <td><button class="Button" type="button" onclick="setNum(3)" value="3">3</button></td> </tr> <tr> <td></td> <td><button class="Button" type="button" onclick="setNum()" value="0">0</button></td> <td><input class="Button" type="submit" value="="></td> </tr> </table> </form> </body> <script> function setNum(val){ //入力エリアには2桁まで入力可能にさせる if( $("#value1").val().length < 2 ) { var dispval = $("#value1").val() + val; $("#value1").val(dispval); }else if( $("#value2").val().length < 2 ){ var dispval = $("#value2").val() + val; $("#value2").val(dispval); } } </script> </html>
・Calculate.php
<?php class Calculate { private $val1;//値1 private $val2;//値2 private $operand;//演算記号 private $result;//計算結果 //演算記号の定数 const ADD = 'add'; const SUBTRACT = 'subtract'; //コンストラクタ public function __construct($val1, $operand, $val2) { $this->val1 = $val1; $this->operand = $operand; $this->val2 = $val2; } //値1 public function getVal1() { return $this->val1; } //演算記号 public function getOperand() { return $this->operand; } //値2 public function getVal2() { return $this->val2; } //計算結果 public function getResult() { return $this->result; } //実際に計算処理をする public function calcuexe(){ if(is_numeric($this->val1) && is_numeric($this->val2)){ switch ($this->operand) { case self::ADD: $this->result = $this->val1 + $this->val2; break; case self::SUBTRACT: $this->result = $this->val1 - $this->val2; break; } } } } ?>
・Calcuexe.php
<?php require_once('Calculate.php'); $val1=$_POST['value1']; $operand=$_POST['operand']; $val2=$_POST['value2']; //画面から受け取った値をインスタンス化 $calcu = new calculate($val1, $operand, $val2); //計算実行 $calcu->calcuexe(); require_once('Calculator.php'); ?>
回答3件
あなたの回答
tips
プレビュー