Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с созданием примитивной подписки


Автор: OnviК 9.2.2006, 05:07
Здравствуйте!
Вопрос наверное вам покажеться тупейшим, но надо надо же когда-то учиться.
Я в PHP если не ноль, так 0.0001 =), возникла следующая проблема:
Необходимо организовать элементарную подписку пользователей с формы сайта.
Хочу сделать все в одном файле (и скрипт и форму)...
Вот что я примерно натворил:
Код

if($a="send")
{
$includetext=fopen("uzcommaillist.txt", "a");
@fwrite($includetext, $usermail\n );
echo "Вы подписаны";
};


А теперь вопросы:
1) Почему-то PHP не понимает \n, говорит об неправильном чаратре. Куда вставлять?
2) Как я уже говорил, я в php 0.0001, в любом случае отображается "Вы подписаны", хотя
насколько я понимаю тут условие...

Помогите пожалуйста чайнику smile

P.S. НЕ подскажите, как можно организовать подписку только после подтверждения?

Автор: PARROT 9.2.2006, 10:00
Код

if($a="send")
{
  $includetext=fopen("uzcommaillist.txt","a");
    fwrite($includetext,"$usermail\n");
    fclose($includetext);
}

Добавлено @ 10:02
Читаем мануалы. Собаки ставить не нужно.

Автор: z-END 9.2.2006, 10:19
Цитата(OnviК @ 9.2.2006, 05:07 Найти цитируемый пост)
($a="send")

RTFM
это не сравнение а присваивание... читаем про ПХП хотябы вводную часть...

Автор: CyClon 9.2.2006, 10:39
Код
if($a == "send") {
    $itext = fopen("uzcommaillist.txt", a);
    fwrite($itext, $usermail."\n");
    echo "Вы подписаны";
}


1. Операторы сравнения: ==, ===, >, <, >=, <=.
2. Откуда берется переменная $a? Если из адресной строки, то лучше $a заменить на $_GET['a']. Юезопасность + Универальность скрипта.
3. Помоему "a" во втрой строке пишется без кавычек.
4. Никогда не ставим @, иначе потом не поймем в чем ошибка.
5. Выносите переменные из кавычек - прирост скорости до 40%.
6. Отсутпы

Как видишь в 6 строках кода можно найти до 10 ошибокsmile

Автор: PARROT 9.2.2006, 10:58
Верх не смотрела, торможу после вчерашнего.
CyClon, пользуемся кнопкой КОД, исправьте свое сообщение, пожалуйста.

Автор: OnviК 9.2.2006, 21:30
Блин ну и тупица же йа ))
Спасибо.
А как насчет организации подписки только после подтверждения меила?

Автор: CyClon 9.2.2006, 22:27
OnviК, с помощью функции mail отправляешь письмо с секретной ссылкой, в ссылке допустим md хеш даты отправки. в общем нада фантазировать и писать.

Автор: Janus 10.2.2006, 16:45
Цитата(CyClon @ 9.2.2006, 10:39)
3. Помоему "a" во втрой строке пишется без кавычек.

В кавычках.
Код

if($a == 'send') {
  $itext = fopen('uzcommaillist.txt', 'a');
  fwrite($itext, $usermail."\n");
  echo 'Вы подписаны';
}

Автор: OnviК 11.2.2006, 05:18
Вообщем я его немного перелопатил - по крайней мере теперь работает.
Вот ребят, извечная проблема - когда в начале скрипт пытается получить из адресной строки че-нить, то он выдает ошибку об необъявл. переменной - как разрешить ситуацию?

Автор: -=Ustas=- 11.2.2006, 08:49
Цитата(OnviК @ 11.2.2006, 05:18 Найти цитируемый пост)
Вот ребят, извечная проблема - когда в начале скрипт пытается получить из адресной строки че-нить, то он выдает ошибку об необъявл. переменной - как разрешить ситуацию?

Не надо забывать за глобальные массивы _GET и _POST. Ман у руля smile

Автор: Dave 14.2.2006, 13:39
Цитата(OnviК @ 11.2.2006, 05:18 Найти цитируемый пост)
Вот ребят, извечная проблема - когда в начале скрипт пытается получить из адресной строки че-нить, то он выдает ошибку об необъявл. переменной - как разрешить ситуацию?

проверяй есть переменная или нет, а потом уже делай что либо в зависимости от ситуации.

Автор: Kefir 14.2.2006, 13:58
OnviК,
Код
if(isset($_GET['my_great_var'])) {
  echo "Переменная из адресной строки my_great_var: ".$_GET['my_great_var'];
} else {
  echo "Переменная my_great_var не указана в адресной строке!";
}

В else-блоке делаешь обрабутку ситуации, когда переменная не определена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)