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

Форум PHP

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

 

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

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

тема: Обмен переменными между функциями
 
 автор: frisst   (20.12.2010 в 13:55)   письмо автору
 
 

Добрый день, уважаемые знатоки!
У меня такой вопрос!
Есть 2 функции, одна выполняет авторизацию пользователя, а вторая должна выводить сообщение, авторизован пользователь или нет... переменная с сообщение объявляется в первой функции... вопрос - как мне "перекинуть" переменную из одной функции в другую??? вот сами функции:


function userLogin($login, $passw, $buttLogin) {
    $login = mysql_escape_string($login);
    $passw = mysql_escape_string($passw);
    $users = mysql_query("SELECT * FROM tegen_users WHERE login='".$login."'");
    $user = mysql_fetch_assoc($users);
        if(mysql_num_rows($users) > 0) {
            if($user["passw"] == $passw) {
                $_SESSION["login"] = $user["login"];
                $_SESSION["passw"] = $user["passw"];
                $_SESSION["access"] = $user["access"];
            } else {$reLogin = "No Password or Login!";}
        } else {$reLogin = "No Password or Login!";}
}

function errorLogin() {

}

А так функции вызываю на странице:
 <?php if($_POST["buttLogin"]) {userLogin($_POST["login"], $_POST["passw"], $_POST["buttLogin"]);} ?>
<!-- другой код -->
<b><i><?php echo errorLogin(); ?></i></b> 



Сперва я хотел в первой функции возвращать переменную с сообщением и выводить на экран, но эта функция должна находится в самом начале странички, а выводить сообщение ниже...

Я слышал что-то про типы переменных в функциях, но пока ещё не освоил до конца функции...

Помогите кто чемможет...

  Ответить  
 
 автор: Trianon   (20.12.2010 в 14:31)   письмо автору
 
   для: frisst   (20.12.2010 в 13:55)
 

Переменные Вам перекидывать не нужно. Нужно всего лишь значение переменной.
Обычно функция возвращает какое-нибудь значение.
Можете этим воспользоваться.

  Ответить  
 
 автор: frisst   (20.12.2010 в 14:52)   письмо автору
 
   для: Trianon   (20.12.2010 в 14:31)
 

я сперва делал так:

function userLogin($login, $passw, $buttLogin) {
    $login = mysql_escape_string($login);
    $passw = mysql_escape_string($passw);
    $users = mysql_query("SELECT * FROM tegen_users WHERE login='".$login."'");
    $user = mysql_fetch_assoc($users);
        if(mysql_num_rows($users) > 0) {
            if($user["passw"] == $passw) {
                $_SESSION["login"] = $user["login"];
                $_SESSION["passw"] = $user["passw"];
                $_SESSION["access"] = $user["access"];
            } else {$reLogin = "No Password or Login!";}
        } else {$reLogin = "No Password or Login!";}
    return $reLogin;
}


а выводил на странице так:

<?php if($_POST["buttLogin"]) {userLogin($_POST["login"], $_POST["passw"], $_POST["buttLogin"]);} ?>
<!--код код код  -->
<?php echo $reLogin?>


Но ничего не выводилось)))) если выводилось, то в том случае, когда было так:
<?php if($_POST["buttLogin"]) {echo userLogin($_POST["login"], $_POST["passw"], $_POST["buttLogin"]);} ?>

Но выводит сообщение в начале странички как не странно))) мне необходимо отдельно выводить сообщение в нужном, мне, месте...) спасибо за советы. буду думать...

  Ответить  
 
 автор: Лена   (20.12.2010 в 14:58)   письмо автору
 
   для: frisst   (20.12.2010 в 14:52)
 

функция только возвращает значение, она его не выводит на экран.
Надо сначала результат выполнения функции записать в переменную, а после эту переменную вывести в нужном месте.

  Ответить  
 
 автор: frisst   (20.12.2010 в 15:10)   письмо автору
 
   для: Лена   (20.12.2010 в 14:58)
 

А тогда вы можете подсказать - может ли функция вернуть 2 и более значений, которые мы потом присвоим различным переменным? или я пишу бред?)

  Ответить  
 
 автор: Лена   (20.12.2010 в 15:18)   письмо автору
 
   для: frisst   (20.12.2010 в 15:10)
 

Функция может вернуть массив. Присваиваете его элементам значения:
$error['login'] = ...
$error['pass'] =...
в конце функции возвращаете весь массив - return $error;

Там, где надо, вы присваиваете значения элементов этого массива отдельным переменным.

  Ответить  
 
 автор: Trianon   (20.12.2010 в 16:58)   письмо автору
 
   для: Лена   (20.12.2010 в 15:18)
 

Лен, да не нужен ему массив.
Человек значение из функции вернуть не может. Только и всего.

  Ответить  
 
 автор: Trianon   (20.12.2010 в 16:57)   письмо автору
 
   для: frisst   (20.12.2010 в 14:52)
 

при вызове функции, возвращенное ей значение следует присвоить переменной.

$var = fun(.....);

и только потом использовать.

echo $var;

  Ответить  
 
 автор: Косорылый   (20.12.2010 в 14:39)   письмо автору
 
   для: frisst   (20.12.2010 в 13:55)
 

return

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

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