php - кнопка isset - PullRequest
       1

php - кнопка isset

0 голосов
/ 17 февраля 2012

Я пытаюсь решить проблему, но не удалось. Я получаю данные из Google Analytics, и мне нужно отправить дату начала и окончания. У меня есть два текстовых поля и пользователь выбирают дату начала и окончания. Однако, но перед тем, как пользователь выбирает enter image description here дату начала и окончания. Проблема возникает ..

Место, которое я использую 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>

что не так?

если проблемы выбора даты начала и окончания решены, проблемы возникают до того, как я выберу

Ответы [ 7 ]

3 голосов
/ 08 декабря 2012

Это должно быть isset($_POST["btnSubmit"]) НЕ отправить

представить = тип btnSubmit = имя кнопки

1 голос
/ 17 февраля 2012

Вы должны использовать isset() для каждой переменной, а не только для одной переменной. $_POST['txtStartDate'] и $_POST['txtEndDate'] и другие переменные просто не определены, это означает, что они не были отправлены с запросом POST.

1 голос
/ 17 февраля 2012

Когда ваша страница загружается, а $_POST['submit'] не установлен, ваши $_POST['txtStartDate'] и $_POST['txtEndDate'] не установлены, поэтому $arrDates также не установлен. Вам нужно проверить, установлены ли эти переменные $ _POST или нет, чтобы работать с ними.

1 голос
/ 17 февраля 2012

Я думаю, это должно быть:

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 с именем submit.Остерегайтесь разницы между type и name.

1 голос
/ 17 февраля 2012
Undefined index txtStartDate, ...

Возможно, ваша форма может не соответствовать той же спецификации имени переменной, которая используется в этом php-файле.Убедитесь, что имена полей совпадают внутри формы и здесь.

А также вы должны выполнить эти проверки в своем php-файле после успешной отправки: if(!isset($_POST['submit']))

0 голосов
/ 17 февраля 2012

Я думаю, это должно быть if(isset($_POST['submit'])) вместо if(!isset($_POST['submit'])), поскольку ! в начале означает отрицание

0 голосов
/ 17 февраля 2012
if(!isset($_POST['submit']))

Это означает, что если кнопка submit была нажата NOT . Вы должны проверить, установлен ли $_POST['submit'], в результате отправки формы, например так:

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