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

Форум PHP

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

 

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

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

тема: Объясните пожалуйста (прокомментируйте код).
 
 автор: PSB   (04.04.2009 в 12:23)   письмо автору
 
 

Приветствую. Спецы, скачал скрипт разбираюсь что и как, не могу понять, что делает одна из функций. Объясните пожалуйста, что делает:

function makeSafe($theValue) {
    global $cartMain,$langArray;
    for ($f = 0; $f < count($langArray); $f++) {
        if ($cartMain["languageID"] == $langArray[$f]["languageID"] && $langArray[$f]["doubleByte"] == "Y") {
            return htmlentities($theValue);
            break;
        }
    }
    return htmlentities(str_replace(array(";","<?","?>"),"",$theValue));    
}
function getFORM($vName) {
    $val = (@$_GET[$vName] != "") ? @$_GET[$vName] : @$_POST[$vName];
    return $val;
}


Если можно напишите комментарии к строчкам.

  Ответить  
 
 автор: Valick   (04.04.2009 в 13:13)   письмо автору
 
   для: PSB   (04.04.2009 в 12:23)
 


function makeSafe($theValue) { / объявление функции makeSafe которая принимает переменную $theValue
    global $cartMain,$langArray; / объявление глобальных массивов 
    for ($f = 0; $f < count($langArray); $f++) { / цикл с количеством итераций равным "длинне" массива $langArray
        if ($cartMain["languageID"] == $langArray[$f]["languageID"] && $langArray[$f]["doubleByte"] == "Y") { 
            return htmlentities($theValue); / если $cartMain["languageID"] равно $langArray[$f]["languageID"]
                    / и $langArray[$f]["doubleByte"] равно "Y" то возвращаем htmlentities($theValue)
            break; / и прекращаем итерации
        } 
    } 
    return htmlentities(str_replace(array(";","<?","?>"),"",$theValue));  / возвращаем если совпадений в массивах нет   

function getFORM($vName) { 
    $val = (@$_GET[$vName] != "") ? @$_GET[$vName] : @$_POST[$vName]; / присваиваем $val значение $_GET[$vName] если оно не пустое, 
                                    / если пустое то присваиваем $_POST[$vName]
    return $val; 


[поправлено модератором]

  Ответить  
 
 автор: PSB   (04.04.2009 в 17:38)   письмо автору
 
   для: Valick   (04.04.2009 в 13:13)
 

Спасибо, стало немного понятнее, но вот немогу понять зачем через эту функцию прогоняеются в скрипте пароль и имя при авторизации.

if (isset($_POST['username']) && isset($_POST['password']))
{
    $userid = makeSafe($_POST['username']);
    $pass = makeSafe($_POST['password']);
    $pass = sha1($pass);
    if (strlen($userid)>0 && strlen($pass)>0)
    {
      $query = "SELECT username FROM i_users WHERE username='".mysql_real_escape_string($userid)."' AND passwd='".mysql_real_escape_string($pass)."'";
      $result = mysql_query($query) or die("Query $query Failed".mysql_error());
      if (mysql_num_rows($result)>0)
      {
        $_SESSION['valid_user'] = $userid;
      }
    }
}
?>

  Ответить  
 
 автор: Trianon   (04.04.2009 в 17:44)   письмо автору
 
   для: PSB   (04.04.2009 в 17:38)
 

Вам уже ответили.
Это не тот источник, в котором в котором можно найти логику.

  Ответить  
 
 автор: PSB   (04.04.2009 в 20:55)   письмо автору
 
   для: Trianon   (04.04.2009 в 17:44)
 

да мне хоть примерно, может можно заменить чем, ну что вам жалко что ли :-))))понятно, что проходит авторизация но почему просто не получить имя и пароль и сравнить с базой.

  Ответить  
 
 автор: Trianon   (04.04.2009 в 22:29)   письмо автору
 
   для: PSB   (04.04.2009 в 20:55)
 

Что жалко-то?
Я не автор этого кода. Я лишь вижу, что написан в этом фрагменте форменный кошмар.
Что и как написано в других частях я догадываться не берусь, поэтому что чем можно заменить, авторитетно посоветовать не могу.

Считаете, что можно просто - попробуйте.

  Ответить  
 
 автор: indexer   (04.04.2009 в 23:22)   письмо автору
 
   для: Trianon   (04.04.2009 в 22:29)
 

+5.... :)

  Ответить  
 
 автор: PSB   (05.04.2009 в 01:09)   письмо автору
 
   для: indexer   (04.04.2009 в 23:22)
 

Ладно, не буду мучать, спасибо.

  Ответить  
 
 автор: mihdan   (06.04.2009 в 18:22)   письмо автору
 
   для: Trianon   (04.04.2009 в 17:44)
 

Trianon, я уже вам предлагал написать материал в раздел "Статьи РНР", о том, как правильно обрабатывать данные, полученные от юзера (GET, POST.....), как и класть в базу(файл), как потом отображать на экране. В какой последовательности юзать htmlspecialchars(), strip_tags(), mysql_real_escape_string(). Было бы неплохо это осуществить, чтобы можно было в случае подобных вопросов дать ссылку на авторитетный ответ в виде вашей статьи. Что скажете по этому поводу?

  Ответить  
 
 автор: Trianon   (06.04.2009 в 18:36)   письмо автору
 
   для: mihdan   (06.04.2009 в 18:22)
 

Что если у Вас есть желание такую статью написать, Вы можете его осуществить.

  Ответить  
 
 автор: vtos   (07.04.2009 в 10:21)   письмо автору
 
   для: mihdan   (06.04.2009 в 18:22)
 

Добрый день!
А если в нескольких словах - то, действительно, как это грамотно делается и в какой последовательности? То есть применение функций trim(), и т.д. и т.п. ?

  Ответить  
 
 автор: mihdan   (06.04.2009 в 18:19)   письмо автору
 
   для: PSB   (04.04.2009 в 12:23)
 

о_О

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

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