2012-02-17 20 views
0

私は問題を解決しようとしましたが、成功しませんでした。私はGoogleアナリティクスからデータを取得し、開始日と終了日を送信する必要があります。私は2つのテキストボックスとユーザーが開始と終了の日付を選択している。しかし、しかし、ユーザーがenter image description here開始日と終了日を選択する前に。問題は、私はISSETを使用する場所はここ..ですphp - isset button

を発生

これは間違っているものを私の完全なHTML

<?php 
define('ga_email','[email protected]'); 
define('ga_password','************'); 
define('ga_profile_id','*******'); 

require 'gapi.class.php'; 
require 'connectDB.php'; 

$ga = new gapi(ga_email,ga_password); 




?> 



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>İçerik</title> 
<script language="javascript" type="text/javascript" src="datetimepicker.js"> 

//Date Time Picker script- by TengYong Ng of http://www.rainforestnet.com 
//Script featured on JavaScript Kit (http://www.javascriptkit.com) 
//For this script, visit http://www.javascriptkit.com 

</script> 
</head> 
<div></div> 
<body> 
    <table align="center"> 
     <tr> 
     <td><br /> 
    <br /> 
    <form action="#" method="post" name="formDates" id="form1" > 
    <table width="303" height="40" border="0" align="center"> 
     <table width ="" 
    <tr> 
    <td>Başlangıç Tarihi</td> 
    <td> 
     <label for="txtStartDate"></label> 
     <input type="text" name="txtStartDate" id="txt1" value="" /><a href="javascript:NewCal('txt1','ddmmyyyy')"><img src="images/cal.gif" width="16" height="16" border="0" alt="Başlangıç Tarihi Seçin"> 
     </a> 
    </td> 
    </tr> 
    <tr> 
    <td>Bitiş Tarihi</td> 
    <td> 
     <label for="txtEndDate"></label> 
     <input type="text" name="txtEndDate" id="txt2" /><a href="javascript:NewCal('txt2','ddmmyyyy')"><img src="images/cal.gif" width="16" height="16" border="0" alt="Bitiş Tarihi Seçin"> 
     </a> 

    </td> 
    </tr> 
    </form> 
     <tr> 
      <td><input type="submit" name="btnSubmit" value="Gönder"</td> 
     </tr> 

</table> 
    <table width="1250" height="26" align="center"> 
    <tr> 

    <td width="138"><strong>Kanal Adı</strong> 
    <td width="150"><b>Kategori Adı</b></td> 
    <td width="130"><p><strong>Event Adı</strong></td> 
    <td width="145"><strong>Toplam</strong> 

    </tr> 
    </table> 



      <?php 

      if(isset($_POST['submit'])){  
       $startDate = $_POST['txtStartDate']; 
       $endDate = $_POST['txtEndDate']; 
      } 


      $arrDates = explode("-",$startDate); 
      $startDate=$arrDates[2]."-".$arrDates[1]."-".$arrDates[0]; 
      $arrDates = explode("-",$endDate); 
      $endDate = $arrDates[2]."-".$arrDates[1]."-".$arrDates[0]; 

      echo $startDate; 
      echo $endDate; 



      $ga->requestReportData(ga_profile_id,array('eventCategory','eventAction'),array('totalEvents'),$sort_metric=null,$filter='eventAction==InitPlayer',$start_date='2012-02-02',$end_date='2012-02-16'); 
      foreach($ga->getResults() as $result2); 
      { 
       echo $result2->geteventCategory(); 
       echo $result2->geteventAction(); 
       echo $result2->gettotalEvents(); 
      } 


      $ga->requestAccountData(); 
      $mysql = new mysql(); 
      $mysql->connect(); 
      $counter = 0; 



      foreach($ga->getResults() as $result) 
      {  
       echo $result . ' (' . $result->getProfileId() . ")<br />"; 
       echo "<br />"; 
       $counter++; 
      } 

      $result = mysql_query("select profile_id from profiles"); 
      $num_rows = mysql_num_rows($result); 



      if($counter != $num_rows) 
      { 
       $mysql->query("delete from profiles"); 

       foreach($ga->getResults() as $result) 
       { 
        $mysql->query("insert into profiles values(".$result->getProfileId().",'".$result."')"); 
       } 
      } 






      ?> 

</td> 
    </tr> 
    </table> 
</body> 
</head> 
</html> 

のですか?

開始日と終了日の問題が解決され、問題はその前に発生を選択した場合、私は

+0

ポストにHTMLフォームの提出を提出しないisset($_POST["btnSubmit"])でなければなりません。 $ _POST ['txtStartDate']が設定されているかどうかテストしないでください。 txtStartDateとtextEndDateが設定されていない場合は、エラーメッセージを返送するか、例外をスローするかに応じて対応してください。 – busypeoples

+1

あなたのHTMLフォームには、input要素に 'name'属性がありますか? HTMLコードなしでは手伝いが難しいですが、暗闇の中で私が撮ったものです – xbonez

答えて

1

私はそれがあるべきだと思う:

if(isset($_POST['submit'])) 

の代わり:

if(!isset($_POST['submit'])) 

感嘆符issetの意味はnotです。また、私はない$_POST['submit']のために、使用する実際のフィールドをチェックします:

if(isset($_POST['txtStartDate']) && isset($_POST['txtEndDate'])) 
{ 
    // Do something with $_POST['txtStartDate'] and $_POST['txtEndDate'] 
} 

あなたがエラーになった理由は$_POST['submit']が存在しないということです。 name属性がsubmitとなっているinput要素がありません。 typenameの違いに注意してください。

+0

if(isset($ _ POST ['txtStartDate'])&& isset($ _ POST ['txtEndDate'])) { $ startDate = $ _POST [ 'txtStartDate']; $ endDate = $ _POST ['txtEndDate']; echo $ startDate; echo $ endDate; } ありがとうございました! –

+1

ようこそ。今はうまくいきました。 – Mischa

1
Undefined index txtStartDate, ... 

は、あなたのフォームはあなたが使用するものと同じ変数名仕様に準拠することはできませんように思わ選びますこのPHPファイル。フィールド名がフォーム内で一致していることを確認してください。

そしてまた、あなたは、提出の成功の後、あなたのphpファイルでこれらのチェックを行う必要がありますif(!isset($_POST['submit']))

0
if(!isset($_POST['submit'])) 

これはボタンを提出する場合は押されていないであったことを意味します。私はそれがスタートでif(isset($_POST['submit']))代わりの!としてif(!isset($_POST['submit']))べきであると思い

if(isset($_POST['submit'])) 
0

否定に

+0

何も変更されていません。 –

+0

@MertMETİN投稿リクエストを実行してもよろしいですか?あなたのhtmlを表示してください。 – Mischa

+0

私は私の完全なPHPを送った –

1

を意味します$_POST['submit']はそうのように、フォーム送信の結果として、設定されている場合は、チェックする必要がありますページが読み込まれており、$_POST['submit']が設定されていない場合は、$_POST['txtStartDate']$_POST['txtEndDate']が設定されていないので、$arrDatesも設定されていません。これらの$ _POST変数が設定されているかどうかをチェックして、それらを処理する必要があります。

1

1つの変数だけでなく、すべての変数にisset()を使用する必要があります。 $_POST['txtStartDate']$_POST['txtEndDate']と他の変数は単純に定義されていません。つまり、POSTリクエストでは送信されませんでした。

2

それは

ボタンの種類= btnSubmit =名前