我尝试解决问题,但没有成功。我从谷歌分析中检索数据,我必须发送开始和结束日期。我有两个文本框和用户选择开始和结束日期。但是,在用户选择开始和结束日期之前。问题出现了..
我使用的地方isset在这里,
这是我的完整HTML
<?php
define('ga_email','mertmetinbjk@gmail.com');
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 :(得分:2)
必须isset($_POST["btnSubmit"])
不提交
submit = type btnSubmit =按钮的名称
答案 1 :(得分:1)
Undefined index txtStartDate, ...
似乎您的表单可能与您在此php文件中使用的表单符合相同的变量名称规范。确保字段名称在表单和此处匹配。
此外,您应该在提交成功后在您的php文件中进行这些检查:if(!isset($_POST['submit']))
答案 2 :(得分: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']
不存在。 input
个元素没有名为name
的{{1}}属性。请注意submit
和type
之间的区别。
答案 3 :(得分:1)
当您的网页加载且未设置$_POST['submit']
时,您的$_POST['txtStartDate']
和$_POST['txtEndDate']
未设置,因此$arrDates
也未设置。您需要检查是否设置了这些$ _POST变量,以便与它们一起使用。
答案 4 :(得分:1)
您必须对每个变量使用isset()
,而不仅仅是一个变量。 $_POST['txtStartDate']
和$_POST['txtEndDate']
以及其他变量根本没有定义,这意味着它们不会随POST
请求一起发送。
答案 5 :(得分:0)
if(!isset($_POST['submit']))
这意味着如果提交按钮不按下。作为表单提交的结果,您应该检查$_POST['submit']
是否已设置,如下所示:
if(isset($_POST['submit']))
答案 6 :(得分:0)
我想它应该是if(isset($_POST['submit']))
而不是if(!isset($_POST['submit']))
因为!
在开始时意味着否定