Jump to content
  • 0

не могу понять код


usb_serg
 Share

Question

Други,

в одном месте наткнулся на код, пытаюсь его понять и там есть такая строка

if (isset($_GET['action']) AND $_GET['action']=="logout")....бла-бла-бал

что вот это такое -

$_GET['action']

скрипт сам маленький и там НИ где нет форма с имеем "action"

помогите.

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0
Переменной action присваевается глобаьлное значение.

Прошу прощения за резкость, но это плная чушь.

В данном коде проверяется, пришла ли переменная "action" через адресную строку браузера (isset($_GET['action']))

и равна ли эта переменная значению logout ($_GET['action']=="logout").

В массив $_GET автоматически попадают переменные, которые приходят в скрипт из адресной строки браузера (это если совсем "на пальцах").

К примеру строка типа http://site.com/index.php?action=logout удовлетворяет вышеприведенному условию

Link to comment
Share on other sites

  • 0

Други

вот весь пример -

<?
if (isset($_POST['auth_name'])) {
$name=mysql_real_escape_string($_POST['auth_name']);
$pass=mysql_real_escape_string($_POST['auth_pass']);
$query = "SELECT * FROM users WHERE name='$name' AND pass='$pass'";
$res = mysql_query($query) or trigger_error(mysql_error().$query);
if ($row = mysql_fetch_assoc($res)) {
session_start();
$_SESSION['user_id'] = $row['id'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit;
}
if (isset($_GET['action']) AND $_GET['action']=="logout") {
session_start();
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST']."/");
exit;
}
if (isset($_REQUEST[session_name()])) session_start();
if (isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return;
else {
?>
<form method="POST">
<input type="text" name="auth_name"><br>
<input type="password" name="auth_pass"><br>
<input type="submit"><br>
</form>
<?
}
exit;
?>

я не могу понять где тут переменная про которую говорим...

Link to comment
Share on other sites

  • 0

Хорошо, печатаю медленно и с интонацией:

есть адрес этого топика, он такой: http://forum.htmlbook.ru/index.php?showtopic=10662&hl=

так вот в файле index.php автоматически будет создан массив $_GET (в принципе он всегда существует), в который будет внесен элемент с ключем showtopic, а значение этого элемента будет равным 10662.

Т.е. можно будет обратиться к элементу так:

$_GET['showtopic']

или

if ($_GET['showtopic'] == '10662')

Link to comment
Share on other sites

  • 0

отвечу медленно и по буквам :)

если я правильно понял - то просто пример был приведён не весь, т.к. нет чего то что отвечает за эту переменную.

Правильно ???

как работает $_GET я знаю...

Edited by usb_serg
Link to comment
Share on other sites

  • 0
отвечу медленно и по буквам :)

если я правильно понял - то просто пример был приведён не весь, т.к. нет чего то что отвечает за эту переменную.

Правильно ???

как работает $_GET я знаю...

Тогда может я чего-либо не понял?

Еще раз.

Твой файл, в которм стоит вышеприведенный код называется например megafile.php

Теперь предположим, мы набираем в браузере строку вида:

http://yoursite.com/megafile.php?action=logout&message=mega&error=bumbarambum

Тогда в файле megafile.php будет доступен массив $_GET с элементами

$_GET['action'] = 'logout'

$_GET['message'] = 'mega'

$_GET['error'] = 'bumbarambum'

вроде как даже мне понятно стало, но если что - спрашивай

Edited by waldicom
Link to comment
Share on other sites

  • 0

мы как я понял об одном и том же - но каждый по своему, поэтому и нет согласия у нас :)

попробую еще раз -

когда я встретил этот скриптик то не понял откуда там

$_GET['action']

посмотрел в книжках и все такое.....и мне подумалось что это какой то хитрый финт, а не просто передача переменной с именем 'action'.

ВВВооттттт.

по этому и спрасил - что может кто то знает что ЭТО за хитрость???

а оказалось что просто пример не весь....

Link to comment
Share on other sites

  • 0
Прошу прощения за резкость, но это плная чушь.

В данном коде проверяется, пришла ли переменная "action" через адресную строку браузера (isset($_GET['action']))

и равна ли эта переменная значению logout ($_GET['action']=="logout").

В массив $_GET автоматически попадают переменные, которые приходят в скрипт из адресной строки браузера (это если совсем "на пальцах").

К примеру строка типа http://site.com/index.php?action=logout удовлетворяет вышеприведенному условию

Да, да все так, просто не проснулся, попутал :)

Насколько я понимаю (в пхп еще не особо силен) но в этой строчке:

if (isset($_GET['action']) AND $_GET['action']=="logout")

Должна быть проверка на существование переменных auth_name и auth_pass что-то вроде этого:


if(isset($_POST['auth_name']) == $auth_name && $_POST['auth_pass'] == $auth_pass)

Вроде как-то так должно, или я ошибаюсь?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy