Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MD5, MySQL
 
 автор: AxelX   (21.12.2008 в 12:12)   письмо автору
 
 

Есть ссылка такого вида index.php?link=c4ca4238a0b923820dcc509a6f75849b
c4ca4238a0b923820dcc509a6f75849b - это id зашифрованное в md5.
id имеет ввид 1,2,3,4,5...
Теперь надо чтобы при запросы данной ссылке, шёл запрос в базу данных и по зашифрованному мною id(c4ca4238a0b923820dcc509a6f75849b) нашёл в базе данных поле id(1)(там он незашифрованный).
Можно это сделать посредством пхп?

  Ответить  
 
 автор: AxelX   (21.12.2008 в 12:13)   письмо автору
 
   для: AxelX   (21.12.2008 в 12:12)
 

Тему случайно, не так назвал :)

  Ответить  
 
 автор: а-я   (21.12.2008 в 12:18)   письмо автору
 
   для: AxelX   (21.12.2008 в 12:12)
 

и не в том разделе!)
попробуй так:

<?
 $_GET
['link'] = addslashes($_GET['link']);
 
$_MS mysql_query('SELECT *  FROM `tbl` WHERE MD5(`id`) = "'.$_GET['link'].'" LIMIT 1');
?>

  Ответить  
 
 автор: AxelX   (21.12.2008 в 13:35)   письмо автору
 
   для: а-я   (21.12.2008 в 12:18)
 

Не выходит применить этот способ для сортировки.

Сортировку сделал очень просто, поэтому обязательно нужно хешировать в md5.
Сортировка выглядет следующим образом:
Есть ссылки:
index.php?sort=id
index.php?sort=id desc

По GET методу получаю переменную $sort и подставляю в запрос к базе данных.
$result = mysql_query('SELECT * FROM `base` ORDER BY $sort');

Всё работает.
Но такой способ небезопасный. Поэтому нужно хешировать в md5.
$result = mysql_query('SELECT * FROM `base` ORDER BY MD5("'.$sort.'")');

Так сортировка не работает. Ошибок никаких нету, просто несортируются.

  Ответить  
 
 автор: Trianon   (21.12.2008 в 13:49)   письмо автору
 
   для: AxelX   (21.12.2008 в 13:35)
 

Чтобы сортировать по id, в запросе должно быть написано ORDER BY id .
Сделали очень просто?
Теперь сделайте правильно.

  Ответить  
 
 автор: AxelX   (21.12.2008 в 14:05)   письмо автору
 
   для: Trianon   (21.12.2008 в 13:49)
 

Вниматеельнее прочитайте моё предыдущее сообщение.
id у меня подсталяется из ссылки например такого вида index.php?sort=id desc

  Ответить  
 
 автор: Trianon   (21.12.2008 в 14:17)   письмо автору
 
   для: AxelX   (21.12.2008 в 14:05)
 

Я очень внимательно прочел все Ваши предыдущие сообщения.
>id у меня подсталяется из ссылки например такого вида index.php?sort=id desc
И что?
Кто то мешает подставлять его не из ссылки?

  Ответить  
 
 автор: AxelX   (21.12.2008 в 14:55)   письмо автору
 
   для: Trianon   (21.12.2008 в 14:17)
 

Дело в том, что мне нужно сортировать не только по id. А ещё по нескольким полям из базы данных. И делать это надо прямо на сайте.

  Ответить  
 
 автор: BinLaden   (21.12.2008 в 14:58)   письмо автору
 
   для: AxelX   (21.12.2008 в 14:55)
 

А что в этом случае меняется? Что Вам мешает сформировать запрос с сортировкой по нескольким полям?

  Ответить  
 
 автор: AxelX   (21.12.2008 в 15:08)   письмо автору
 
   для: BinLaden   (21.12.2008 в 14:58)
 

Когда делал, мне показалось самым лёгким, удобным делать так как, сделал я.
Можете поподробнее написать, как сделали бы Вы?

  Ответить  
 
 автор: BinLaden   (21.12.2008 в 15:17)   письмо автору
 
   для: AxelX   (21.12.2008 в 15:08)
 

Я бы проверял поле (id, ...) и тип сортировки (ASC, DESC) по списку разрешенных значений:

<?php
$field 
= isset( $_GET['field'] ) ? (string) $_GET['field'] : 'id';
$sort = isset( $_GET['sort'] ) ? (string) $_GET['sort'] : 'asc';

if( !
in_array($field, array('id''username', ...)) )
{
    
$field 'id';
}

if( !
in_array($sort, array('asc''desc')) )
{
    
$sort 'asc';
}

$query "SELECT ... ORDER BY {$field} {$sort};";
?>

  Ответить  
 
 автор: AxelX   (21.12.2008 в 15:27)   письмо автору
 
   для: BinLaden   (21.12.2008 в 15:17)
 

Спасибо за разъяснения.
Сейчас ухожу, вечером попробую разобраться.
Сейчас просмотрел код, неочень понял. Пхп знаю ненастолько хорошо :)

  Ответить  
 
 автор: BinLaden   (21.12.2008 в 12:19)   письмо автору
 
   для: AxelX   (21.12.2008 в 12:12)
 

MD5 ничего и никогда не шифрует. А хеширует. Это 2 разные вещи.
Зачем Вы вообще "шифруете" id?

  Ответить  
 
 автор: AxelX   (21.12.2008 в 12:34)   письмо автору
 
   для: BinLaden   (21.12.2008 в 12:19)
 

Всем спасибо за ответы!
Всё работает.
id шифровал для пробы. А понадобиться это для админки.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования