ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

15.11.2007, 10:42
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
<a href="http://ya.ru" target="_blank">YA</a>
|
|
|

15.11.2007, 15:44
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Разумеется, лучше использовать поле типа INT и засовывать туда timestamp, ну или если дефолтное значение - INT blablabla NOT NULL DEFAULT CURRENT_TIMESTAMP.
|
|
|

15.11.2007, 15:46
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
По-моему лучше бы все таки поставить не Varchar а Int, как написал je0n, поскольку так удобнее всего работать с датой имхо...
Для меня наоборот, с INTом были проблемы (возможно из-за точек между числами), поэтому и пользуюсь для даты типом VARCHAR, имхо удобнее для меня так
|
|
|

15.11.2007, 15:59
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
.:enot:., лучше откажись от использования типа Varchar для хранения даты, это как минимум затратно - хранить Int в 4 байта или твою дату, в которой ХЗ сколько байт, но уж точно больше 4... Скажем для формата Dd-mm-yyyy Hh:mm:ss - это уже 19 байт. Есть разница? Кроме того, по строковому параметру поиск идёт медленнее, выход - проиндексировать его, но какой смысл индексировать колонку в которой содержатся данные без повторений? Лучше делай по уму... И не допускай таких упущений в серьёзных проектах.
|
|
|

15.11.2007, 16:19
|
|
Постоянный
Регистрация: 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 знаю что текстовые поля занимают больше времени вывода чем числовые.
|
|
|

15.11.2007, 16:03
|
|
Постоянный
Регистрация: 29.10.2007
Сообщений: 381
Провел на форуме: 651930
Репутация:
65
|
|
я не правильно описал проблему, у меня не просто ссылка а кнопка, я попробовал в кнопке прописать target=_blank и вроде получается но только в опере, а ие открывает в этом же фрейме, а с датой спасибо большое всем помогло=)
|
|
|

15.11.2007, 17:00
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
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.
|
|
|

15.11.2007, 18:26
|
|
Постоянный
Регистрация: 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'
|
|
|

15.11.2007, 18:56
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Inet_aton() и Inet_ntoa() я бы не советовал использовать, т.к. это усложнит перенос веб-приложения на другие СУБД, в которых такие фичи отсутствуют. Лучше сделать это преобразование в Php-коде чтобы СУБД работала уже с окончательной версией данных.
|
|
|

16.11.2007, 18:44
|
|
Познающий
Регистрация: 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($file, filesize($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 но повидимому руки кривые и знаний мало..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|