HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.11.2007, 10:42
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

<a href="http://ya.ru" target="_blank">YA</a>
 
Ответить с цитированием

  #2  
Старый 15.11.2007, 15:44
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Разумеется, лучше использовать поле типа INT и засовывать туда timestamp, ну или если дефолтное значение - INT blablabla NOT NULL DEFAULT CURRENT_TIMESTAMP.
 
Ответить с цитированием

  #3  
Старый 15.11.2007, 15:46
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Цитата:
По-моему лучше бы все таки поставить не Varchar а Int, как написал je0n, поскольку так удобнее всего работать с датой имхо...
Для меня наоборот, с INTом были проблемы (возможно из-за точек между числами), поэтому и пользуюсь для даты типом VARCHAR, имхо удобнее для меня так
 
Ответить с цитированием

  #4  
Старый 15.11.2007, 15:59
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

.:enot:., лучше откажись от использования типа Varchar для хранения даты, это как минимум затратно - хранить Int в 4 байта или твою дату, в которой ХЗ сколько байт, но уж точно больше 4... Скажем для формата Dd-mm-yyyy Hh:mm:ss - это уже 19 байт. Есть разница? Кроме того, по строковому параметру поиск идёт медленнее, выход - проиндексировать его, но какой смысл индексировать колонку в которой содержатся данные без повторений? Лучше делай по уму... И не допускай таких упущений в серьёзных проектах.
 
Ответить с цитированием

  #5  
Старый 15.11.2007, 16:19
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Цитата:
Сообщение от groundhog  
.:enot:., лучше откажись от использования типа Varchar для хранения даты, это как минимум затратно - хранить Int в 4 байта или твою дату, в которой ХЗ сколько байт, но уж точно больше 4... Скажем для формата Dd-mm-yyyy Hh:mm:ss - это уже 19 байт. Есть разница? Кроме того, по строковому параметру поиск идёт медленнее, выход - проиндексировать его, но какой смысл индексировать колонку в которой содержатся данные без повторений? Лучше делай по уму... И не допускай таких упущений в серьёзных проектах.
Да, это я знаю. Кстати такая же проблема была с хранением IP в БД. При типе поля INT писал 0, поэтому пришлось использовать VARCHAR. Ну а до серьёзного проекта мне ещё далеко, я тока на стадии изучения php, поэтому щас пишу маленький хоум-паг движок, ну а для него я думаю не особо существенна скорость работы с мускулем в различиях между 4 и 19 байтами
Хотя я ещё со своей первой книжки по php знаю что текстовые поля занимают больше времени вывода чем числовые.
 
Ответить с цитированием

  #6  
Старый 15.11.2007, 16:03
XopoIII
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме:
651930

Репутация: 65
По умолчанию

я не правильно описал проблему, у меня не просто ссылка а кнопка, я попробовал в кнопке прописать target=_blank и вроде получается но только в опере, а ие открывает в этом же фрейме, а с датой спасибо большое всем помогло=)
 
Ответить с цитированием

  #7  
Старый 15.11.2007, 17:00
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Ip-как раз и надо хранить строкой... А в идеале (если не подразумевается работать с таблицей напрямую через Sql-запросы, иначе усложнит реализацию запросов), нужно разбивать Ip на части, каждую часть преобразовывать в Hex представление, и уже засовывать результат в Char(8) поле... Это будет наиболее оптимально. Например:

Ip-127.0.0.1

Ip[0] = 127 (7f)
Ip[1] = 0 (00)
Ip[2] = 0 (00)
Ip[3] = 1 (01)

и засовывать в базу, в поле Char(8) строку 7f000001.
 
Ответить с цитированием

  #8  
Старый 15.11.2007, 18:26
halkfild
Постоянный
Регистрация: 11.11.2005
Сообщений: 391
Провел на форуме:
7084941

Репутация: 2277
По умолчанию

используй
ip2long php
Цитата:
ip2long - конвертирует строку, содержащую адрес (IPv4) Internet Protocol, в подходящий адрес.
обратно long2ip

или средствами mysql
INET_ATON()
Цитата:
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
-> 2130706433, 2130706433
и обратную ей
INET_NTOA()
Цитата:
mysql> SELECT INET_NTOA(3520061480);
-> '209.207.224.40'
 
Ответить с цитированием

  #9  
Старый 15.11.2007, 18:56
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Inet_aton() и Inet_ntoa() я бы не советовал использовать, т.к. это усложнит перенос веб-приложения на другие СУБД, в которых такие фичи отсутствуют. Лучше сделать это преобразование в Php-коде чтобы СУБД работала уже с окончательной версией данных.
 
Ответить с цитированием

  #10  
Старый 16.11.2007, 18:44
darckmilord
Познающий
Регистрация: 08.02.2007
Сообщений: 41
Провел на форуме:
136843

Репутация: 13
По умолчанию

Всем привет, Ребята помогите пожалуйста... Начал работать с ПХП и решил написать голосование...
сделал вот таким образом...
PHP код:
<table class=blok><tr><td class=head><div class=white>
Голосование:
</div></td></tr><tr><td><div>
<?php
$data
='basa/vote.vhg'// Название файла базы банных
if($action=='done')
{
  
$file fopen($data"r+t");
  
$content=fread($filefilesize($data));
  
$content=explode('-'$content); 
  if(
$game==1$content[0]=$content[0]+1;
  if(
$game==2$content[1]=$content[1]+1;
  if(
$game==3$content[2]=$content[2]+1;
  if(
$price==1$content[3]=$content[3]+1;
  if(
$price==2$content[4]=$content[4]+1;
  if(
$price==3$content[5]=$content[5]+1;
  echo(
"
        <center>
        <font size=+2><div style=\"wi-dth: 200px;height: 24px;filter: shadow(color=#999999,direction=150);back-ground: #aaaaaa\">
        Спасибо, за голос!</div></font>
        <table><tr><td width=30%><font face=arial size=1 color=#ffc000>
        класс:<br>
        норма:<br>
        плохо:</td>
       <td width=7%><font face=arial size=1 color=#ffc000>
       
$content[0]<br>$content[1]<br>$content[2]</td>
       <td width=56%><font face=arial size=1 color=#ffc000>
        WEB кодинг:<br>
        Кодинг:<br>
        Реверсинг:</td>
       <td width=7%><font face=arial size=1 color=#ffc000>
       
$content[3]<br>$content[4]<br>$content[5]</td>
        </font></td></tr></table></center><hr><a href=javascript:history.back(2)><i>Вернуться назад</i></a>
       "
);
  
$content=implode("-"$content);
  
rewind($file);
  
fwrite($file$content);
  
fclose($file);
}
else
{
echo(
'
      <center>
      <font size=+2><div style="width: 200px;height: 24px;filter: shadow(color=#999999,direction=150);back-ground: #aaaaaa">
      ПРОГОЛОСУЙ!</div></font>
      <form action=index.php?action=done method=post>
      <table><tr><td>
      <font face=arial size=1 color=#ffc000>Как Вам портал?<br>  
      <input type="radio" name="game" value="1">на 5 баллов<br>
      <input type="radio" name="game" value="2" checked>на 3 балла<br>
      <input type="radio" name="game" value="3">на 1 балл<br><br>
      </td><td><tr><td>
      <font face=arial><font face=arial size=1 color=#ffc000>Ваше направление?<br>
      <input type="radio" name="price" value="1">WEB кодинг<br>
      <input type="radio" name="price" value="2">Кодинг<br>
      <input type="radio" name="price" value="3" checked>Реверсинг</font>
      </td></tr></table><br>
      <input class=but type=submit value=проголосовать>
      </form>
      </center><a href=javascript:history.back(1)><i>Вернуться назад</i></a>
     '
);
}
?>
</div></td></tr></table>
Скажите пожалуйста как сделать так чтобы проголосовав потом страница сразу отображала результаты а при попытке проголосовать по новой говорила что я уже голосовал.... пробовал с getcookie но повидимому руки кривые и знаний мало..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ