Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Открытие окна на авторизацию? (https://javascript.ru/forum/events/61522-otkrytie-okna-na-avtorizaciyu.html)

olegalimov 22.02.2016 08:57

Открытие окна на авторизацию?
 
Доброе все суток.
Добрые люди помогите пожалуйста.
Как сделать чтоб ссылка открывалась в этом же окне или в новом окне браузера?
выложу два кода html и php, где моя ошибка?
index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="ispmgr.php" method="get">
<table width="400px">
<tr>
<td>Панель управления</td>
</tr>
<tr>
<td ><input name="login" type="text" placeholder="Username" /></td>
</tr>
<tr>
<td><input name="pass" type="password" placeholder="Password" /></td>
</tr>
<tr>
<td><input class="button" type="submit" value="Вход"/></td>
</tr>
</table>
</form>
</body>
</html>

ispmgr.php
<?php
$login=@$_GET['login'];
$pass=@$_GET['pass'];
if (!empty($login)) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://webvm.ru:1500/ispmgr?out=xml&func=auth&username='.$login.'&password='.$pass);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
$res = curl_exec($curl);
if(!$res) {
echo '<script language="javascript"> window.location="https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'";</script>';
}
else {
$doc = new SimpleXMLElement($res);
foreach ($doc->auth as $id) {
echo '<script language="javascript"> window.location="https://webvm.ru:1500/ispmgr?auth='.$id['id'].'";</script>';
}
foreach ($doc->error as $type) {
echo '<script language="javascript"> window.location="https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'";</script>';
}
}
curl_close($curl);
}
?>

помогите разобраться что не так? почему не работает.

destus 22.02.2016 09:36

olegalimov,
а через header('Location') ?

olegalimov 22.02.2016 15:35

Цитата:

Сообщение от destus (Сообщение 408799)
olegalimov,
а через header('Location') ?

Поясните пожалуйста!

olegalimov 22.02.2016 15:41

в коде нет ошибок. проблема с отображением.

destus 22.02.2016 16:15

Цитата:

Сообщение от olegalimov (Сообщение 408822)
Поясните пожалуйста!

Ну просто редиректить юзера после авторизации, посредством отправки заголовка. Т.е. не писать echo "script" и тд, а засунуть ссылку в Location. http://php.net/manual/ru/function.header.php.

olegalimov 22.02.2016 18:57

написал вот так, не работает
$res = curl_exec($curl);
if(!$res) {
	header("Location: https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'"); /* Перенаправление броузера */
//echo '<script language="javascript"> window.location="https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'";</script>';
}
else {
$doc = new SimpleXMLElement($res);
foreach ($doc->auth as $id) {
		header("Location: https://webvm.ru:1500/ispmgr?auth='.$id['id'].'"); /* Перенаправление броузера */
//echo '<script language="javascript"> window.location="https://webvm.ru:1500/ispmgr?auth='.$id['id'].'";</script>';
}
foreach ($doc->error as $type) {
			header("Location: https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'"); /* Перенаправление броузера */
//echo '<script language="javascript"> window.location="https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'";</script>';
}
}
curl_close($curl);
}
?>

destus 22.02.2016 19:08

olegalimov,
Проблема с кавычками. Не так
header("Location: https://webvm.ru:1500/ispmgr?&func=auth&username='.$login.'&password='.$pass.'");
а так
header("Location: https://webvm.ru:1500/ispmgr?&func=auth&username=".$login."&password=".$pass);
и непонятно, почему после ispmgr? идет сразу знак амперсанда. Если ispmgr имя скрипта, то логичнее будет так
header("Location: https://webvm.ru:1500/ispmgr?func=auth&username=".$login."&password=".$pass);


Ну и остальные ссылки поправить.

olegalimov 23.02.2016 09:44

исправил, не работает! пишет, ошибка сервера 500!
<?php
$login=@$_GET['login'];
$pass=@$_GET['pass'];
if (!empty($login)) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://my.webvm.ru/ispmgr?out=xml&func=auth&username='.$login.'&password='.$pass);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
$res = curl_exec($curl);
if(!$res) {
    header("Location: https://my.webvm.ru/ispmgr?func=auth&username=".$login.'&password='.$pass); /* Перенаправление броузера */
}
else {
$doc = new SimpleXMLElement($res);
foreach ($doc->auth as $id) {
        header("Location: https://my.webvm.ru/ispmgr?auth=".$id['id']); /* Перенаправление броузера */
}
foreach ($doc->error as $type) {
            header("Location: https://my.webvm.ru/ispmgr?func=auth&username=".$login.'&password='.$pass); /* Перенаправление броузера */
}
}
curl_close($curl);
}
?>

destus 23.02.2016 11:47

olegalimov,
добавить расширение скрипта
header("Location: [url]https://my.webvm.ru/ispmgr.php?[/url]...)

добавить
exit()
после header. Ну или спрашивать на специализированных форумах php


Часовой пояс GMT +3, время: 17:09.