Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 887
Valgfri brukertittel
Kekurikekaka's Avatar
Jeg kjører e107 på siden min sammen med webproxy i http://domene.net/proxy

Målet mitt var at bare brukere som er logget inn skal kunne bruke denne proxyen.

Noen som vet hvordan jeg skal få til det ?

Jeg bruker denne proxyen: http://www.freakforum.nu/forum/showp...29&postcount=8

Og her er index.php filen:

Kode

<?php

require 'PHProxy.class.php';

$config = array
(
    'url_var_name'             => 'q',
    'flags_var_name'           => 'hl',
    'get_form_name'            => '__script_get_form',
    'proxy_url_form_name'      => 'poxy_url_form',
    'proxy_settings_form_name' => 'poxy_settings_form',
    'max_file_size'            => -1
);

$flags = 'prev';

if (isset($_GET[$config['flags_var_name']]))
{
    $flags = $_GET[$config['flags_var_name']];
}

$PHProxy = & new PHProxy($config, $flags);

if (isset($_GET[$PHProxy->config['get_form_name']]))
{
    $url = decode_url($_GET[$PHProxy->config['get_form_name']]);
    $qstr = preg_match('#\?#', $url) ? (strpos($url, '?') === strlen($url) ? '' : '&') : '?';
    $arr = explode('&', $_SERVER['QUERY_STRING']);
    if (preg_match('#^'.$PHProxy->config['get_form_name'].'#', $arr[0]))
    {
        array_shift($arr);
    }
    $url .= $qstr . implode('&', $arr);
    $PHProxy->start_transfer(encode_url($url));
    echo $PHProxy->return_response();
    exit();
}

if (isset($_GET[$PHProxy->config['url_var_name']]))
{
    $PHProxy->start_transfer($_GET[$PHProxy->config['url_var_name']]);
    echo $PHProxy->return_response();
    exit();
}

if (isset($_GET['action'], $_GET['delete']) && $_GET['action'] == 'cookies')
{
    $PHProxy->delete_cookies($_GET['delete']);
    header("Location: $PHProxy->script_url?action=cookies");
    exit();
}

if (isset($_POST['username'], $_POST['password'], $_POST['server'], $_POST['realm'], $_POST['auth_url']))
{
    $PHProxy->request_method = 'GET';
    $PHProxy->url_segments['host'] = decode_url($_POST['server']);
    $PHProxy->set_authorization($_POST['username'], $_POST['password']);
    $PHProxy->start_transfer($_POST['auth_url']);
    echo $PHProxy->return_response();
    exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
  <title>Web Proxy</title>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <link rel="stylesheet" type="text/css" href="style.css" media="all" />
  <script src="javascript.js" type="text/javascript"></script>
</head>
<body>
<div id="container">
  <div id="menu">
    <a href="<?php echo $_SERVER['PHP_SELF'] ?>">URL Form</a> | 
    <a href="?action=cookies">Administrer Cookies</a>
  </div>
  <div class="title">Web Proxy</div>
  <noscript><div class="error"><big>Du har deaktivert støtte for javascript. Du må ha det aktivert for å bruke Web Proxy</big></div></noscript>
<?php

if (isset($_GET['error']))
{
    echo '<div class="error"><b>Feil:</b> ' . htmlspecialchars($_GET['error']) . '</div>';
    if (isset($_GET['retry']))
    {
        echo '<div class="error"><a href="'. $PHProxy->proxify_url(decode_url($_GET['retry'])) .'">Prøv på nytt</a></div>';
    } 
}

if (isset($_GET['action']))
{
    if ($_GET['action'] == 'cookies')
    {
        $cookies = $PHProxy->get_cookies('COOKIE', false);

        if (!empty($cookies))
        {
            echo '<table style="width: 100%">';
            echo '<tr><td class="option" colspan="5"><a href="?action=cookies&delete=all">Slett alle Cookies</a></td></tr>';
            echo '<tr><td class="head">Navn</td><td class="head">Domene</td><td class="head">Plassering</td><td class="head">Verdi</td><td class="head">Handling</td></tr>';

            for ($i = 0; $i < count($cookies); $i++)
            {
                $j = $i&1 ? ' class="shade"' : '';
                echo "<tr><td$j>{$cookies[$i][0]}</td><td$j>{$cookies[$i][1]}</td><td$j>{$cookies[$i][2]}</td>"
                   . "<td$j>" . wordwrap($cookies[$i][3], 15, ' ') ."</td><td$j><a href=". '"?action=cookies&delete='. md5(implode('', $cookies[$i])) . '">slett</a></td></tr>';
            }

            echo '</table>';
        }
        else
        {
            echo '<div class="error">Ingen cookies tilgjengelig.</div>';
        }
    }
    else if ($_GET['action'] == 'auth' && isset($_GET['server'], $_GET['realm'], $_GET['auth_url']))
    {
        echo '<form method="post" action="' . $_SERVER['PHP_SELF'] . '">';
        echo '<input type="hidden" name="server" value="'. $_GET['server'] .'" />';
        echo '<input type="hidden" name="realm" value="'. $_GET['realm'] .'" />';
        echo '<input type="hidden" name="auth_url" value="'. $_GET['auth_url'] .'" />';
        echo '<table style="width: 100%">';
        echo '<tr><td colspan="2" class="option">Tast inn navn og passord for <b>' . decode_url($_GET['realm']) . '</b> at <i>' . decode_url($_GET['server']) . '</i></td></tr>';
        echo '<tr><td width="30%" class="option">Brukernavn</td><td class="option"><input type="text" name="username" value="" /></td></tr>';
        echo '<tr><td width="30%" class="option">Passord</td><td class="option"><input type="password" name="password" value="" /></td></tr>';
        echo '<tr><td colspan="2" style="text-align: center"><input type="submit" value="OK" /></td></tr>';
        echo '</table>';
        echo '</form>';
    }
} 
else
{
  ?>
  <form name="<?php echo $PHProxy->config['proxy_url_form_name'] ?>" method="get" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  <input type="hidden" name="<?php echo $PHProxy->config['url_var_name'] ?>" value="" id="url_input" />
  <input type="hidden" name="<?php echo $PHProxy->config['flags_var_name'] ?>" value="" />
  </form>
  <form name="<?php echo $PHProxy->config['proxy_settings_form_name'] ?>" method="get" action="" onsubmit="return submit_form();">
  <table style="width: 100%">
  <tr><td class="option" style="width: 20%">Adresse</td><td class="option" style="width: 80%">&nbsp;<input type="text" name="url" size="70" value="" /></td></tr>
  <?php echo $PHProxy->options_list(true, true) ?>
  <tr><td class="option" style="width: 20%">Nytt vindu</td><td class="option" style="width: 80%"><input type="checkbox" name="new_window" />Åpner adressen i et nytt vindu </td></tr>
  </table>
  <div style="text-align: center"><input type="submit" name="browse" value="Gå!" onclick="return submit_form();" /></div>
  <div style="text-align: center">Web Proxy <?php echo $PHProxy->version ?> &copy; 2005 <a href="http://www.whitefyre.com/">whiteFyre</a>
  <div style="text-align: center">Oversatt til norsk av <b>gedebukk</b></div>
</div>
  </form>
  <?php
}

echo '</div></body></html>';
?>
målet var liksom at bare brukere som er logget inn, kan entre denne siden.
Hvis de ikke er logget inn, så blir de henvist til domene.net/signup.php

Si ifra hvis dere trenger noe mer info som kan hjelpe!
Sist endret av Kekurikekaka; 14. september 2007 kl. 18:26.
Trigonoceps occipita
vidarlo's Avatar
Donor

Kode

if (!$_SESSION['loggedin']) {
header("Location: http://example.com/signup");
die("Logg inn!");
}
Er essensielt sett å finne ut kva cookie eller sessionvariabel e107 bruker, og modifisere koden over tilsvarande.
Valgfri brukertittel
Kekurikekaka's Avatar
Trådstarter

Kode

if (!$_COOKIE['detkuleste']) {
header("Location: http://example.com/signup");
die("Logg inn!");
}
Jeg bruker ikke session. Bruker bare cookie.

Cookien heter detkuleste.

Så da skal jeg legge dette inn i index.php filen?

EDIT: Jeg testet dette nå, det funke strålende! Tusen takk, Vidarlo


Men nå gjenstår problemet med at når man går inn på http://www.domene.net/pr0xy, så blir man videresendt til http://domene.net/pr0xy
Dette kan bli ganske problematisk hvis folk ligger inn på siden med www foran i URL. Hvordan kan jeg endre dette, så proxyen holder seg til www hvis folk skriver det, og ikke www hvis folk ikke skriver det ?


EDIT2: jeg vil ha www foran. Så jeg vil gjerne at proxyen skal funke ved å skrive www.proxyadresse.......
Løsningen min blir da at når noen går inn på http://domene.net, så blir de videresent til www.domene.net.

Det er forsovet greit. Men da gjenstår det bare å få proxyadressen til å ha www foran seg, og ikke fjerne dette.
Sist endret av Kekurikekaka; 14. september 2007 kl. 18:42.