php - isset-Taste
ich versuche, ein problem zu lösen, aber nicht erfolgreich. I abrufen von Daten aus google analytics und ich habe zum senden von start-und end-Datum. Ich habe zwei textbox-und Benutzer-wählen Sie start-und end-Datum.Aber, aber, bevor Sie start-und end-Datum. Das problem tritt auf,..
Den Ort, den ich verwenden isset hier,
Dies ist meine vollständige 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>
was ist falsch?
wenn ein wählen Sie start-und end-Datum der Probleme gelöst ist , die Probleme vor, die ich wählen
- Post im html-Formular. warum nicht testen, ob $_POST['txtStartDate'] gesetzt? Stellen Sie sicher, um entsprechend zu reagieren, wenn txtStartDate und textEndDate sind nicht festgelegt, entweder durch senden eine Fehlermeldung zurück oder werfen eine Ausnahme.
- Sind Sie sicher, dass Sie in Ihrem html-Formular, das input-Elemente haben eine
name
- Attribut? Seine schwer zu helfen, ohne den HTML-code, aber das ist mein Schuss im Dunkeln
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es sollte sein:
statt:
Dem Ausrufezeichen vor
isset
bedeutetnot
. Auch würde ich prüfen, für die eigentlichen Felder, die Sie verwenden möchten, nicht für$_POST['submit']
:Der Grund, Sie waren immer der Fehler ist, dass
$_POST['submit']
existiert nicht. Es ist nichtinput
element mit einemname
Attribut namenssubmit
. Hüten Sie sich vor der Unterschied zwischentype
undname
.Muss es
isset($_POST["btnSubmit"])
NICHT Einreichensubmit = Typ
btnSubmit = name der Schaltfläche
Scheint es, dass Ihr Formular kann nicht nach den gleichen Variablen-Namen-Spezifikation mit ein, die Sie in dieser php-Datei. Stellen Sie sicher, dass die Feldnamen entsprechen in der form und hier.
Und auch Sie sollten diese Kontrollen in Ihrer php-Datei, die nach der Vorlage Erfolg:
if(!isset($_POST['submit']))
Wenn Ihre Seite geladen wird und
$_POST['submit']
ist nicht gesetzt, Ihre$_POST['txtStartDate']
und$_POST['txtEndDate']
auch nicht so$arrDates
ist nicht zu setzen. Sie brauchen, um zu überprüfen, ob die $_POST-vars gesetzt sind oder nicht, mit Ihnen zu arbeiten.Verwenden Sie
isset()
auf jede variable, nicht nur eine variable.$_POST['txtStartDate']
und$_POST['txtEndDate']
und anderen Variablen sind einfach nicht definiert, das bedeutet, dass Sie nicht gesendet, mit derPOST
Anfrage.Ich denke, es sollte
if(isset($_POST['submit']))
stattif(!isset($_POST['submit']))
als!
im start bedeutet eine negationDies bedeutet, dass, wenn die Einreichen button war NICHT gedrückt. Sie sollten prüfen, ob die
$_POST['submit']
gesetzt ist, als ein Ergebnis der Formular-Vorlage, etwa so: