Вопрос № 39259: Здравствуйте, эксперты!
Возникла такая задача:
На одной страничке есть форма. Данные с нее (с эдитов и радиобаттонов) передаются методом post на вторую страничку. На второй страничке эти данные записываются в БД MySQL. Имена переменных Var1, ...Вопрос № 39285: Всем привет!
У меня такой вопрос: "Как создать код защиты от накруток для системы голосования (язык PHP) на сайте?"
Я уже долго пытаюсь его реализовать, но никак не получается.
Пожалуйста приведите пример такой системы, желатель...Вопрос № 39294: Здравствуйте уважаемые эксперты.
Меня интересует вот что:
каким образом можно задать переменные, чтобы их мог использовать любой php скрипт?
тоесть:
переменные какимто образом задаются
открывается любая страница где есть их исполь...Вопрос № 39305: Здравствуйте Эксперты.
Есть ли отдельная функция для подсчета количества одинаковых (заданых) символов в строке?
Или как можно определить сколько символов "@" в строке "Здравствуйте@уважаемые@эксперты@в@области@php"
За...Вопрос № 39317: У меня такая проблема:
На одном бесплатном хостинге функция GregorianToJD не работает. Как можно другим способом посчитать кол-во дней между датами??...Вопрос № 39319: Возникла следущая проблема:
Есть сайт - состоит из 4 частей(шапка, левая - кнопки, центр(текст), правая(реклама)), так вот, есть рекламодатель, который хочет, чтобы его реклама была ТОЛЬКО на главной странице, а у меня они не меняются, т.е. при п...
Вопрос № 39.259
Здравствуйте, эксперты!
Возникла такая задача:
На одной страничке есть форма. Данные с нее (с эдитов и радиобаттонов) передаются методом post на вторую страничку. На второй страничке эти данные записываются в БД MySQL. Имена переменных Var1, Var2 .. VarN
Проблема: заранее точно не известно, сколько будет этих переменных. Как организовать цикл, чтобы их всех записать в БД?
Заранее спасибо.
Отправлен: 03.04.2006, 10:21
Вопрос задал: Perez (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Straight
Здравствуйте, Perez!
Ищие все переменные в массиве $_POST
Приложение:
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 03.04.2006, 11:09
Отвечает: Zysoftik
Здравствуйте, Perez!
Насколько я понял, форма строится скриптом. Соответственно, Вы знаете максимальное количество возможных переменных. Через POST передаются все переменные формы. Я бы посоветовал так:
- в форму ввести поле <input type=hidden name=varcount value=N>, где N - число полей формы.
- при приеме формы сделать цикл
for ($i=1;$i<=$_POST['varcount'];$i++)
if (trim($_POST['Var'.$i])!="") //Добавление в БД
Ответ отправил: Zysoftik (статус: 3-ий класс)
Ответ отправлен: 03.04.2006, 11:27
Вопрос № 39.285
Всем привет!
У меня такой вопрос: "Как создать код защиты от накруток для системы голосования (язык PHP) на сайте?"
Я уже долго пытаюсь его реализовать, но никак не получается.
Пожалуйста приведите пример такой системы, желательно с подробными комментариями.
Заранее благодарен всем ответившим.
Код системы голосования (если нужно) в приложении. Желательно оптимизировать систему защиты от накруток под этот код.
Отвечает: Stamm
Здравствуйте, Демьянчук Виталий!
Можно сделать защиту несколькими способами:
1. Писать в куки - отпадает, т.к. пользователь может отключить куки
2. Писать в $_SESSION - тоже отпадает, т.к. можно закрыть окно и открыть опять, а переменные в $_SESSION пропадут
3. Сохранять IP-адрес в базу - я пользуюсь этим методом
Файл с вопросами должен быть такого вида(без тире):
------------
Вопрос
Ответ1~0
Ответ2~0
Ответ3~0
----------
Смотри код в приложении. Если чего не понятно пиши stamm@mail.ru
Приложение:
--------- В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 03.04.2006, 22:18
Вопрос № 39.294
Здравствуйте уважаемые эксперты.
Меня интересует вот что:
каким образом можно задать переменные, чтобы их мог использовать любой php скрипт?
тоесть:
переменные какимто образом задаются
открывается любая страница где есть их использование. значение для них уже заданы заблаговременно.
Заранее спасибо!
Отправлен: 03.04.2006, 20:00
Вопрос задал: Redcap (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Redcap!
Если вы хотите использовать переменные для текущего сеанса пользователя, то можно использовать функции putenv() и getenv(), с помощью которые осуществляется доступ к глобальным переменным. Туда можно записать любое значение. Для функции putenv() параметром служит строка вида "переменная=значение", для getenv() - только название переменной. Эти переменные будут действовать лишь для конкретного пользователя. Чтобы использовать переменные для нескольких скриптов, можно поступить следующим образом.
- Создать скрипт vars.php:
<?php
$var1 = "abc";
$var2 = "1";
$var3 = true;
...
?>
А в каждом из скриптов, где используются данные переменные, в самом начале написать:
include("vars.php");
В этом случае первый скрипт вставиться во второй и переменные можно свободно использовать.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
$GLOBALS['varname']=varvalue;
и обращаться к нему, как
$somevariable=$GLOBALS['varname'];
Этот массив является глобальным по определению и доступен во всех местах кода, включая ф-ции, в отличие от предложенного Ерёминым Андреем метода, хотя Вам выбирать, как удобней.
Ответ отправил: Zysoftik (статус: 3-ий класс)
Ответ отправлен: 03.04.2006, 21:48
Вопрос № 39.305
Здравствуйте Эксперты.
Есть ли отдельная функция для подсчета количества одинаковых (заданых) символов в строке?
Или как можно определить сколько символов "@" в строке "Здравствуйте@уважаемые@эксперты@в@области@php"
Заранее благодарю
Отправлен: 03.04.2006, 22:08
Вопрос задал: Redcap (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Doctor013
Здравствуйте, Redcap!
substr_count(строка, подстрока) - возвращает количество вхождений подстроки в строку и еще count_chars(строка, 1 - возвращает массив, где индекс - ASCII код символа, а значение - количество вхождений. Соответственно, второй вариант возвращает информацию по всем символам.
--------- Большинство ответов на вопросы в рассылках находиться через Яндекс за 1 мин.
Ответ отправил: Doctor013 (статус: Студент)
Ответ отправлен: 03.04.2006, 22:21
Отвечает: Ерёмин Андрей
Здравствуйте, Redcap!
Конкретной такой функции не знаю, но можно проще поступить:
$str = "Здравствуйте@уважаемые@эксперты@в@области@php";
$len_1 = strlen($str);
$str = str_replace($str,"@",""); // Удалить все "собаки"
$len_2 = strlen($str);
$count = $len_1 - $len_2;
Т.е. сравниваются длины строки оригинальной и без данного символа, в $count получается количество вхождений смивола в строку.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Константин
Отдельной функции нет, можно через
while ($ind = strchr('@', $string))
{
$num++;
$string = substr($string, $ind+1);
}
После этого в $num будет твое количество символов.
Ответ отправил: Константин (статус: 2-ой класс)
Ответ отправлен: 05.04.2006, 22:06
Вопрос № 39.317
У меня такая проблема:
На одном бесплатном хостинге функция GregorianToJD не работает. Как можно другим способом посчитать кол-во дней между датами??
Отправлен: 03.04.2006, 23:45
Вопрос задал: Stamm (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: gp
Здравствуйте, Stamm!
Ну, можно, например взять разницу между mktime() от каждой и разделить на (3600*24).
Ответ отправил: gp (статус: Академик) Украина, Симферополь WWW:Федерация Крымского Армспорта ---- Ответ отправлен: 04.04.2006, 00:56
Вопрос № 39.319
Возникла следущая проблема:
Есть сайт - состоит из 4 частей(шапка, левая - кнопки, центр(текст), правая(реклама)), так вот, есть рекламодатель, который хочет, чтобы его реклама была ТОЛЬКО на главной странице, а у меня они не меняются, т.е. при переходе скажем в раздел "Новости" перегружается только центральная часть(с текстом). Подскажите - как можно сделать так, чтобы реклама этого заказчика была видна только на главной странице. Очень прошу помочь, буду благодарен за сопровождение объяснения кодом.
Заранее благодарен всем ответившим.
Отвечает: Stamm
Здравствуйте, Наумов Роман!
Очень просто, надо просто проверить имя страницы:
if ($_SERVER['PHP_SELF']=='/index.php'){
//Код показа рекламы
}
--------- В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 04.04.2006, 00:07
Отвечает: XMF
Здравствуйте, Наумов Роман!
--
Покопай в сторону JavaScript
Ответ отправил: XMF (статус: 5-ый класс)
Ответ отправлен: 04.04.2006, 00:12
Отвечает: gp
Здравствуйте, Наумов Роман!
Использовать PHP для решения этой проблемы более элегантно (если PHP вообще поддерживается хостингом), но есть и недостаток - шапка при выполнении условия будет создаваться заново и перегружаться. А для JS, раз уж XMF поленился ответить до конца, можно использовать, например, такой код (вставляется в функцию, находится (подгружается) в центральном фрейме и вызывается, например, по событию Onload тега Body.
Здесь подразумевается, что центральная часть первой страницы содержит в своем названии "page123", верхний фрейм в структуре фреймов имеет имя "topFrame", блок рекламы заключен в контейнер (div) с id="Logo". Плюсы данного подхода - верхний фрейм не перегружается, ненужный элемент скрывается и появляется. По аналогии можно добавить другой контейнер, который будет появляться вместо первого с другой рекламой или т.п. Ну, минусов тоже хватает:)
Ответ отправил: gp (статус: Академик) Украина, Симферополь WWW:Федерация Крымского Армспорта ---- Ответ отправлен: 04.04.2006, 01:26
Отвечает: Константин
В шапке, которую вставляешь сделай проверку на $_SERVER['PHP_SELF'];
stristr('index', $_SERVER['PHP_SELF']);
Ответ отправил: Константин (статус: 2-ой класс)
Ответ отправлен: 05.04.2006, 21:58