ФорумПрограммированиеPHP для идиотов → проверка: существует ли переменная

проверка: существует ли переменная

  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 3:48

    Всем привет, столкнулся с проблемкой
    вот мой скрипт


    <?
    session_start();
    $ipishnik = $_SERVER["REMOTE_ADDR"];
    $timenc = date("H:i:s");
    $datenc = date("d.m.Y");

    $connectnc = mysql_connect("localhost", "123", "123")
    or die("Не могу подключиться" );
    mysql_select_db('123', $connectnc) or die ('Не могу выбрать БД');

    $max1 = mysql_result(mysql_query("select MAX(`id_n`) AS `maxid_n` from newcounter"),0,0);

    if (isset($gotovo))
    { echo "$max1"; }
    else
    {
    $newzn = $max1 + 1;
    mysql_query("INSERT INTO newcounter VALUES('$newzn', '$ipishnik')");
    echo "$newzn";
    $gotovo = 1;
    }
    ?>


    интересует почему isset не работает, по идее проверка должно проверять существуетли переменная $gotovo
    если да то показать $max1
    если нет то прибавить к $max + 1, занести результат в $newzn, записать его в базу
    и собственно показать его значение
    а потом создать переменную $gotovo чтобы при обновлении страницы, показывался просто $max1
    подскажите пожалуйста, что я сделал не так 8)
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 3:53, спустя 4 минуты 14 секунд

    а где эта переменная объявляется?
    + обязательно к прочтению http://phpfaq.ru/globals
    все умрут, а я изумруд
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 4:24, спустя 31 минуту 33 секунды

    прочитал, видимо не допонял
    вместо $gotovo = 1;
    поставил global $gotovo;

    не помогло, как объявить её?
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:28, спустя 4 минуты 21 секунду

    откуда она должна прийти?
    все умрут, а я изумруд
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:32, спустя 3 минуты 15 секунд


    как объявить её?

    $gotovo = 1;
    Только ты объявляешь ее после того как проверяешь isset, с какого же хера ему работать?

    Второй вопрос, зачем проверять переменную на isset, если ты хочешь ее объявить. Объявив ее ты уже знаешь, что она isset.

    Если же переменная приходит из вне, читай ссылку от md5.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:34, спустя 2 минуты 9 секунд

    Tureg, причем тут global?
    Вы опишите что у вас получается то в итоге… Что вам не нравиться в результатах?
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:35, спустя 53 секунды

    смахивает на то, что ТС рассчитывает на register_globals …
    Сапожник без сапог
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 4:37, спустя 2 минуты 21 секунду

    Только ты объявляешь ее после того как проверяешь isset, с какого же хера ему работать?
    Второй вопрос, зачем проверять переменную на isset, если ты хочешь ее объявить. Объявив ее ты уже знаешь, что она isset.


    так мне это и нужно, чтобы при первом заходе на страницу, её и не было! а только после обновления этой страницы



    она должна объявится в этом же скрипте, в этой сессии, что бы при обновлении страницы она уже была обявлена, то есть при проверке if (isset($gotovo))
    должно произойти true на второй и последуйщий заход на эту страницу, вот 8)

    Вы опишите что у вас получается то в итоге… Что вам не нравиться в результатах?


    мне не нравится, что при каждом заходе на страницу к $max1 прибавляется единица, а должно по задумке прибовляться только при первом заходе 8)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:38, спустя 1 минуту 25 секунд

    надо вот так тогда в конце делать

    $_SESSION['gotovo'] = 1;

    и потом isset($_SESSION['gotovo'])
    Сапожник без сапог
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 4:47, спустя 8 минут 14 секунд

    в этом случае страница вообще не грузится 8(
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 4:48, спустя 1 минуту 12 секунд

    вообщем получилось вот что


    <?
    session_start();
    $ipishnik = $_SERVER["REMOTE_ADDR"];
    $timenc = date("H:i:s");
    $datenc = date("d.m.Y");

    $connectnc = mysql_connect("localhost", "123", "123")
    or die("Не могу подключиться" );
    mysql_select_db('123', $connectnc) or die ('Не могу выбрать БД');

    $max1 = mysql_result(mysql_query("select MAX(`id_n`) AS `maxid_n` from newcounter"),0,0);

    if isset($_SESSION['gotovo'])
    { echo "$max1"; }
    else
    {
    $newzn = $max1 + 1;
    mysql_query("INSERT INTO newcounter VALUES('$newzn', '$ipishnik')");
    echo "$newzn";
    $_SESSION['gotovo'] = 1;
    }
    ?>
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 4:49, спустя 59 секунд


    в этом случае страница вообще не грузится 8(
    А у тебя php установлено? :)
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 13 января 2009 г. 4:49, спустя 32 секунды

    8) смешная шутка
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:54, спустя 4 минуты 40 секунд

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

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 13 января 2009 г. 4:57, спустя 2 минуты 24 секунды


    в этом случае страница вообще не грузится 8(
    потому что ошибки синтаксические надо исправить сначала

Пожалуйста, авторизуйтесь, чтобы написать комментарий!