2017-03-15 14 views
0
<html> 
    <head> 
     <!-- SCRIPTS --> 
     <script type="text/javascript" src="scripts/controller.js"></script> 
     <!-- STYLES --> 
     <link href="styles/style.css" rel="stylesheet" type="text/css" /> 
    </head> 
    <body> 
    <?php 

    $errUrl = $videoId = ""; 
    $start = $end = 0; 

    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     print_r($_POST); 
     if (isset($_POST["yt_url"])) { 
      echo "hello2"; 
      $videoId = youtube_parser($_POST['yt_url']); 
     } 
     if (!$videoId) { 
      $errUrl = "URL is not valid!"; 
      $videoId = ""; 
     } else { 
      $errUrl = ""; 
     } 
     //$start = $_POST['startH'] * 3600 + $_POST['startM'] * 60 + $_POST['startS'] * 1; 
     //$end = $_POST['endH'] * 3600 + $_POST['endM'] * 60 + $_POST['endS'] * 1; 
    } 

    function youtube_parser($url) { 
     $regExp = '/^((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?$/'; 
     $match = preg_match($regExp, $url, $matches); 
     return ($match && strlen($matches[5]) === 11)? $matches[5] : false; 
    } 

    function test_input($data) { 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 
    ?> 
     <div class="left"> 
      <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
       <span class="error">* <?php echo $errUrl; ?></span><br> 
       URL: <input type="text" name="yt_url"> 
       <br><br> 
       Start Time:<br> 
       <span class="label">Hour: </span><input value="0" type="number" name="start_h"><br> 
       <span class="label">Minute: </span><input value="0" type="number" name="start_m"><br> 
       <span class="label">Second: </span><input value="0" type="number" name="start_s"> 
       <br><br> 
       End Time:<br> 
       <span class="label">Hour: </span><input value="0" type="number" name="end_h"><br> 
       <span class="label">Minute: </span><input value="0" type="number" name="end_m"><br> 
       <span class="label">Second: </span><input value="0" type="number" name="end_s"> 
       <br><br> 
       <input type="submit" name="submit" value="Submit"> 
      </form> 
     </div> 
     <div class="player"><?php 
      if (isset($videoId) && !empty($videoId)) { 
       echo '<iframe width="560" height="315" src="https://www.youtube.com/embed/$videoId?start=$start&end=$end" frameborder="0" allowfullscreen></iframe>'; 
      } 
      ?></div> 
    </body> 
</html> 

上記は私がこれまで持っていたものです。私はPHPを学ぼうとしていますが、私はw3schoolsのチュートリアルを手がかりにしています。私はフォームを使って作業することについて取り上げましたが、情報は$ _POST配列に渡されず、私はDOMコントロール。どんな洞察力も大いにありがとう!提供された例でさえも機能しないので、私のPHP設定と何か関係があると感じています。

追加情報: Intellij PHPStormで実行されているWebサーバー。 PHPのバージョンあなたのコードが有効になりますと、私はそれをしようとしたとき、それは$_POST配列から予想される出力を示し7.0.9

Screenshot of product

+0

'$ _SERVER [ "REQUEST_METHOD"] == "POST"' –

+0

試みを示して出力のために。 – Swellar

+0

はポストの下部にリンクがある@MarcinOrlowskiよりも、 '($ _ POST [ '提出'])'にISSETを使用するようにHTMLフォーム –

答えて

0

です:あなたがしている環境での問題を得たよう enter image description here

だから、それが見えますそれをテストする。

BTW <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
が間違っています。スパゲッティコードを除いて、ここではhtmlspecialchars()を使用しないでください。urlencode() (まだ私は_SERVER['PHP_SELF']をクライアントで偽装することはできません)。

また@CarlJanはあなたのフォームはあなたの submitボタンを POSTを経由して送信された場合にのみtrueになります。この意志条件として提出されたかどうかをチェックするために isset($_POST['submit'])を使用することを示唆して。今のところ、これはPOSTリクエスト(一般的に)であるかどうかをチェックしていますが、他のフォームからポストするか、手でトリガするのと同じではありません。

+0

さて、なぜ$ _POST配列が私の目的のために空であるのかに関する考え方はありますか? –

+0

JetBrainsによってPHPStormで実行することと関係があるようです。 –

+0

あなたのコードの問題ではありません。おそらくランタイム環境ですか?任意のホスティングにスクリプトをアップロードして試してみてください。さらに開発するには、ハーフベークド内蔵のIDEソリューションやXMMPなどの代わりに、VagrantベースのVMを使用することをおすすめします。 –

関連する問題