nixp.ru v3.0

25 января 2017,
среда,
02:23:35 MSK

DevOps с компанией «Флант»
Longobard написал 24 августа 2004 года в 00:25 (590 просмотров) Ведет себя как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.

Всем привет! Срочно нужна ваша помощь.

Итак мы собираемся всей тусой закрыть летний сезон. В связи с этим снимаем клуб. Надо бы накатать простенький пхп/перл скрипт шоб он такой был:

есть надпись вида

»

идет матрасян: число

прочих людей: число

итого: число

»

под нею два едитбокса. К одному подпись: «сколько матрасян с вами идет?».

К другому «а сколько левого народу с вами будет?»

и кнопень «отметится».

После этого на комп к отметившемуся кладется плюшка. Если у него уже есть плюшка — то пишем «вы уже проголосовали и пошли ка вы нах». Если нет — увеличиваем счетчики соответствующие. Числа хранятся в текстовом файле, скулю поднимать ради этого дела ломает.

Зарнее спасибо если напишете. Если укажете доку по перлу/пхп шоб за вечерок успел я изучить все шо нужно для этого скрипта — тож спасибо. Тока скажите примерно в сторону каких функций копать. Скриптик простенький, просто завтра я буду дома тока вечером — а уже к ночи он уже должен быть готов :)

Спасибо!

Longobard

Короче вот такая вот фыгня. Начал писать сам. Три часа ночи — не оченгь подходящее для изучения время :)

Вот код:

<?
      $matras = $_POST['matras'];
      $levak = $_POST['levak'];
      if (!(is_numeric ($matras) && is_numeric ($levak))) {
            echo 'Вводить мона тока цифры, ибо не ху# мне мозги еб#$ь!';
            return;
            }
      if ($reload == yes) {
      echo 'Вы уже голосовали';
      return;
      }
      else {
      $y2k = mktime(0,0,0,1,1,2005);
      setcookie('reload', 'yes', $y2k);
              echo "лови плюшку";
      }
      echo "Вы ввели: матрасян $matras, остальных $levak";
?>

Вопрос: то ли плюшка не кладется, но вобщем после первого вызова скрипта видим надпись «лови плюшку» и «вы ввели стока-то матрасян и пр.».После повторного запуска по идее должна быть надпись      «Вы уже голосовали», но ее нету, и плюшки как будто и нету. В чем фигня? Причем в браузере есть меню «куки» — там список всех плюшек. В нем есть плюшка reload, значение yes. Че я делаю не так?

Longobard

пробовал юзать if (isset ($reload)) — та же кака. Сделал echo $reload — переменная всегда пустая. В чем лажа? Как присвоить ей значение такой куки?

Longobard

Юзаю вотьь енту доку:

http://www.codenet.ru/webmast/php/cookies.php

ЗЫ: все, пойду спать :)

Longobard

Во прочитал енто: (из официяльной доки).

Вы можете установить cookie используя функцию setcookie(). Cookie — часть заголовка HTTP, то есть функция SetCookie должна быть вызвана до того, как любой вывод будет полан браузеру (Ряд замечаний здесь просто необходим, по-моему. Во-первых, «любой» вывод — это, в том числе, и пустая строчка в начала PHP скрипта. Во-вторых, «подкрутив» php.ini можно добиться того, чтобы cookie слались и после начала вывода в окно браузера — но кто только станет «крутить» php.ini на сервере хостера?). Это — то же самое ограничение, что и для функции header(). Любые cookie, посланные вам клиентом, автоматически переводятся в переменные PHP, точно также, как данные POST и GET методов.

Засунул куку в начало скрипта

<?

if (!isset($reload )) {

$y2k = mktime(0,0,0,1,1,2005);

setcookie(’reload’, 'yes’, $y2k);

}

else {

echo 'Вы уже голосовали’;

return;

}

$matras = $_POST['matras'];

$levak = $_POST['levak'];

if (!(is_numeric ($matras) && is_numeric ($levak))) {

echo 'Вводить мона тока цифры, ибо не ху# мне мозги еб#$ь!’;

return;

}

echo «Вы ввели: матрасян $matras, остальных $levak»;

?>

та же кака. в свойствах браузера reload в yes, а переменная пуста

n0xi0uzz

Вот перловый вариант.

Сразу говорю, с плюшками этот скрипт работать не умеет. Остальное все делает:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
#count.pl
#coded by n0xi0uzz
use CGI;
$cgi = new CGI;
$action = $cgi->param("action");
$Gmatr = $cgi->param("Gmatr");
$Gpeop = $cgi->param("Gpeop");
$file = "data.txt";
open DAT, "$file";
@numb = ;
$matr = $numb[0];
$peop = $numb[1];
$res = $matr + $peop;
close DAT;
print "идет матрасян: $matr
";
print "прочих людей: $peop
";
print "итого: $res
";
print "


<form action=«count.pl» method=«post»>»;

print «сколько матрасян с вами идет? <input name=«Gmatr»>

»;

print «а сколько левого народу с вами будет? <input name=«Gpeop»>

»;

print «<input type=«hidden» name=«Gmatr» value=«$Gmatr»>»;

print «<input type=«hidden» name=«Gpeop» value=«$Gpeop»>»;

print «<input name=«action» value=«post» type=«hidden»>»;

print «<input type=«submit» value=«отметится»>»;

print «</form>»;

if ($action eq «post»)

{

&submit;

}

sub submit {

$file = «data.txt»;

open DAT, «$file»;

@numb = ;

$matr = $numb[0];

$peop = $numb[1];

close DAT;

$Nmatr = $Gmatr + $matr;

$Npeop = $Gpeop + $peop;

open DAT, «>$file»;

print DAT «$Nmatr\n»;

print DAT «$Npeop»;

close DAT;

}
</form>

n0xi0uzz

могу посоветовать (в перловом варианте) вместо плюшек использовать переменные окружения, типа:

$ENV{«REMOTE_ADDR»} — IP-aдрес посетителя

$ENV{«HTTP_USER_AGENT»} — тип браузера

$ENV{«HTTP_ACCEPT_LANGUAGE»} — язык

С ними работать куда удобнее и проще, как с обычными переменными.

Т.е. пишешь их в лог, потом сравниваешь с текущими, и если равны, то блокируешь операцию.

Longobard

ЯТЬ! Помогите с плюшками plz!

Longobard

Рахобрался. Куки берем из массива $HTTP_COOKIE_VARS

Короче на днях куплю книфку тооолстенькую по пхп :)

Longobard

Усе, написал :)

n0xi0uzz

Покажешь всем? Мне, например, интересно… ;)

Longobard

Покажу. Три файла. Вот первый:

index.html

<form method=«post» action=«vote.php»>

Здесь вы можете отметится сколько вас пойдет на пати</a>.

FormaT & LiveRadio  представляют

LiveRadio Party!!!

28.08.2004

Deep Sound Club (бомбоубежище)

house, disco, funk, jungle, deep house from dj’s:

Vasic, hoopa, stu’art

вход: 100.ru

«давайте проводим лето замечательным общением, или просто мего пьянкой =)»

Адрес клуба: ст. м. Лиговский проспект, ул. Черняховского, 31

================

подробности на канале #LiveRadio!

</i>

Итак, ваш ник:

<input type=«text» name=«nick» value=«Ананимус»>

Сколько будет от вас:

Матрасян: <input type=«text» name=«matras» value=«0»>

Прочих: <input type=«text» name=«levak» value=«0»>

<input type=«submit» name=«submit» value="Кнопка срабатывает при силе нажатия не менее 50 кг ;)">

Статистика</a>

<em>Developed by LONGOBARD (longobard@users.mns.ru)</i></em>

</form>
</form>

Вот второй:

result.php

[i]<?
echo "Cтатистика:
";
$link = mysql_connect("localhost", "root", "******")
or die("Could not connect : " . mysql_error());
mysql_select_db("liveradio") or die("Could not select database");
$query = "SELECT * FROM live";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
if (!(mysql_num_rows($result) > 0)) {
echo "Еще никто не зарегистрировался......
";
return;
}
echo '[/i]


';

      echo '

Вот третий:

vote.php

<?      $do_you_vote = $HTTP_COOKIE_VARS["do_you_vote"];
      $matras = $_POST['matras'];
      $levak = $_POST['levak'];
      $nick = $_POST['nick'];
      echo "

$nick, здарофф!</h1>



"; if (!(is_numeric ($matras) && is_numeric ($levak))) { echo 'Вводить мона тока цифры, ибо не ху# мне мозги еб#$ь!'; return; } echo "Вы ввели: матрасян $matras, остальных $levak. "; if ($matras == 0 && $levak == 0) { echo "А вам череп не жмет? "; return; } $client_ip = $_SERVER['REMOTE_ADDR']; $link = mysql_connect("localhost", "root", "longobardyalov") or die("Could not connect : " . mysql_error()); mysql_select_db("liveradio") or die("Could not select database"); $query = "SELECT * FROM live WHERE ip='$client_ip'"; $result = mysql_query($query) or die("Query failed : " . mysql_error()); if (mysql_num_rows($result) > 0) { $fuck = mysql_fetch_row($result); $voted_matras = $fuck [1]; $voted_levak = $fuck[2]; echo "$nick, вы же уже отметились :) Вы отписались что от вас идет $voted_matras матрасян и еще $voted_levak прочих. Если че-та напортачили - стучите мне в приват блин...."; return; } $query = "INSERT INTO live (ip, matras, levak, nick) VALUES ('$client_ip','$matras','$levak', '$nick')"; mysql_query($query) or die("Query failed : " . mysql_error()); /* Освобождаем память от результата */ mysql_free_result($result); /* Закрываем соединение */ mysql_close($link); ?>

Не пинать за корявый код, завтра буду прилизывать, аж самому стыдно :)
<table width=«700» border=«1» cellspacing=«0» cellpadding=«0»>
<tr>
<td>Ник</td></td>
<td>IP</td></td>
<td>Идет матрасян</td></td>
<td>Идет прочих</td></td>
<td>Итого идет</td></tr>’;

       while ($fuck = mysql_fetch_row($result)) {

           $ip = $fuck[0];

           $matras = $fuck[1];

           $levak = $fuck[2];

           $nick = $fuck[3];

           $total = $matras+$levak;

           $total_counter += $total;

           $total_matras += $matras;

           $total_levak += $levak;

           echo »
</td>
</tr>
<tr>
<td>$nick</td></td>
<td>$ip</td></td>
<td>$matras</td></td>
<td>$levak</td></td>
<td>$total</td></tr>»;

       }

        print «</table>\n»;

     echo »

Итого идет $total_counter человек, из них $total_matras матрасян и $total_levak прочих </h1>»;

  /* Освобождаем память от результата */

  mysql_free_result($result);

  /* Закрываем соединение */

  mysql_close($link);

?>
</td>
</tr>
</table>

decvar
$link = mysql_connect(«localhost», «root», «longobardyalov»)

внушаить….

Longobard

decvar ты думаешь я забыл заменить пасс в постинге? Пасс я специяльно выложил сюды фейковый %)

Uncle Theodore
LONGOBARD
decvar ты думаешь я забыл заменить пасс в постинге? Пасс я специяльно выложил сюды фейковый %)

Что, уже поменять успел? :-)

Good Luck,

UT

Longobard
Uncle Theodore
Что, уже поменять успел? :-)

Good Luck,

UT

Какие мы шустрые ;)

mcmxx

Свяжитесь со мной через ICQ 136061617 или e-mail programms@mcmxx.com — за деньги можем договориться…

Uncle Theodore
mcmxx
Свяжитесь со мной через ICQ 136061617 или e-mail programms@mcmxx.com — за деньги можем договориться…

Пацак не только меркантильный, но и невнимательный. Не заметил, что вопрос уже решен. Придется ему искать деньги где-нибудь в другом месте…

Good Luck,

UT

Longobard

Я уже продолжаю дальше изучать :) Кстати я думал что знаю хорошо С++. Однако после этого теста, где ответил правильно только на вопросы с 1 по 7, понял что не мешало бы подучить его :)

Uncle Theodore
LONGOBARD
Я уже продолжаю дальше изучать :) Кстати я думал что знаю хорошо С++. Однако после этого теста, где ответил правильно только на вопросы с 1 по 7, понял что не мешало бы подучить его :)

Ну ты, конечно, подучи, если есть желание, но строго говоря, тест дебильный. Последнее время я часто встречаю такие «тесты» очень часто, даже в математике, на собеседовании при приеме студентов в аспирантуру. Автором теста всегда движет подспудное желание показать, что он д’Артаньян, а все остальные… даже не французы. Абсолютно ничего о способностях и уровне знаний кандидата такой тест не говорит. Странных феноменов в разных областях до фига, а уж придумать извратный искусственный пример слепления этих феноменов в одну кучу может каждый дурак. Не знаю, знаком ли ты с примером диктанта про «Колоссальную дощатую террасу», который легко доказывал, что абсолютно никто русского языка не знает, поскольку написать правильно не может.

Good Luck,

UT

Longobard

Да уж. Тест этот на извраты языка :) Нормальный человек не извращается и извратов не знает :) Правда вот про виртуальное наследоание — это я зря забыл, надо учить.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.