[php] Doorgeven variabelen (alternatieve manier)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Ik heb een admin panel waar mee ik van af de Frontpage van mijn site kan inloggen. Er worden twee variabelen naar de /admin/index.php gepost via de POST method.

Aangezien ik nu een inlogsysteem aan het maken ben wil ik gewoon via een link direct naar het admin systeem zonder dat ik nog een keer de $username en $password moet geven.

Nu dacht ik dat op te lossen door te zeggen

PHP:
1
2
3
<?
echo "<a href=\"admin/index.php?username=\".$username.\"&password=\".$password.\">Click here</a>\"
?>


Het werkt wel, maar je ziet de volgende URL in je adresbalk staan.

http://www.host.xom/admin...Schonhose.&password=dummy

Niet echt wenselijk dus. In mijn oneindige domheid dacht ik vervolgens slim te zijn. De variabelen die gepost worden worden opgeslagen in een $_POST. Dus ik dacht:

PHP:
1
2
3
4
5
<?
    $_POST['username']=$username_site;
    $_POST['password']=$password_site;
    echo "<a href=\"admin/index.php\" \">Click here</a>";
    ?>


Dit werkt ook niet, omdat ik vermoed dat de $_POST alleen voor die pagina geldt. Ik maak geen gebruik van frames en de admin pagina wordt volledig over de oude content geladen. Het is dus een compleet nieuwe pagina.

Enig idee hoe ik die variabelen daar krijg zonder dat de gebruiker ze ziet?

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 18-09 23:26

Tjark

DON'T PANIC

Lees jezelf eens in op het gebied van sessies

*insert signature here


Acties:
  • 0 Henk 'm!

Verwijderd

Je kan het wachtwoord ook geMD5t doorsturen :)

Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Verwijderd schreef op 16 januari 2004 @ 16:07:
Je kan het wachtwoord ook geMD5t doorsturen :)
Admin page is een bestaand scriptje welke geen MD5 gebruikt. Moet ik overal gaan hacken en alles gaan aanpassen....

Ik heb eigenlijk al genoeg te doen.....

sessions? Hmm wel wat overgehoord, maar er moeten toch andere oplossingen zijn om variabelen onzichtbaar door te geven?

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Gewoon een formje posten met hidden variabelen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
   doClick() {
     document.frmUsers.submit();
   }
</script>

<body>
...
<form name=frmUsers action="admin/index.php">
<input type="hidden" name="user" value="...">
<input type="hidden" name="password" value="...">
<a href="javascript:doClick()">Klik hier</a>
</form>
</body>

Dit is niet de beste code, maar wat ik zo snel even kon opschrijven. Je zult het zelf even moeten omzetten naar iets fatsoenlijks.

Dit heb ik min of meer gebaseerd op wat je al eerder schreef, misschien heb ik het niet goed beschreven. Blijft natuurlijk staan dat iemand die "View Source" doet alsnog gewoon die gegevens kan lezen.

Dat sessie object is voor user authenticatie waarschijnlijk de beste oplossing.

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

sessions? Hmm wel wat overgehoord, maar er moeten toch andere oplossingen zijn om variabelen onzichtbaar door te geven?
Het is toch echt de makkelijkste en beste oplossing.
PHP:
1
2
3
4
5
session_start();

// variabelen opgeven
$_SESSION['gebruikersnaam'] = $_POST['gebruikersnaam'];
$_SESSION['wachtwoord'] = $_POST['wachtwoord'];

PHP:
1
2
3
// variabelen opvragen
echo $_SESSION['gebruikersnaam'];
echo $_SESSION['wachtwoord'];

Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Hmm, ik ben er mee bezig en ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
<?
// begin document
session_start()

// bla bla

    $_SESSION['username'] = $username_site;
    $_SESSION['password']  = $password_site;
    echo '<a href="cutenews/index.php?' . SID . '">Test</a>';
    ?>


Geen soelaas.....

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Dude, lees je die variabelen wel weer uit de sessie in de admin module?

Stuur ook ff een code-snippet op van die cutenews/index.php.

[ Voor 3% gewijzigd door bigbeng op 16-01-2004 16:46 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Schonhose schreef op 16 januari 2004 @ 16:40:
Hmm, ik ben er mee bezig en ik heb nu dit:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
// begin document
session_start(): // <-- ; vergeten

// bla bla

    $_SESSION['username'] = $username_site;
    $_SESSION['password']  = $password_site;
    echo '<a href="cutenews/index.php?' . SID . '">Test</a>'; 
// het gebruik van SID is niet noodzakelijk als je use_trans_sid
// aan hebt staan in php.ini. Vanaf php 4.2.0 staat dit standaard aan.
    ?>


Geen soelaas.....
Wat werkt er dan niet?
Hoe staat je error_reporting trouwens, die ; fout veroorzaakt normaliter een parse error.

[ Voor 27% gewijzigd door dArtagnan op 16-01-2004 16:49 ]


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Koraalduivel schreef op 16 januari 2004 @ 16:47:
[...]

Wat werkt er dan niet?
Hoe staat je error_reporting trouwens, die ; fout veroorzaakt normaliter een parse error.
Goed, maar het was geen copy paste..... dat eerste stuk niet. Hij wil niet inloggen, dus de varaibelen worden niet meegegeven

[ Voor 20% gewijzigd door Schonhose op 16-01-2004 17:54 ]

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
O-)

[ Voor 106% gewijzigd door EnsconcE op 16-01-2004 17:07 ]


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Yeah, het is gelukt.

Na wat zoeken in de cutenews/index.php bleek dat de login manier met cookies aanstond. Kwestie van een aantal keren true en false heen zetten en toen kreeg ik al meer input.

Aangezien de input eigenlijk het ongecodeerde password was heb ik nog wat regels uitgezet welke het ongecodeerde password in een MD5 password omzette, aangezien ik al een MD5 password kon leveren.

Toen bleek dat de username en password werden geaccepteerd _/-\o_ maar dat het IP adres niet klopte.

Logisch van die gaf ik niet mee in de sessie, dus uitbreiden met $_SERVER['REMOTE_ADDR']

Vervolgens loopt ie als een trein. _/-\o_

Toch handig die sessies.

Moet ik hem bij het uitloggen nog destroyen? session_destroy geeft namelijk een foutmelding....

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

session_destroy is nog een oude functie.
Het volgende moet wel werken.
PHP:
1
unset($_SESSION['test']);

[ Voor 7% gewijzigd door dArtagnan op 16-01-2004 18:06 ]


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Mijn session heeft helemaal geen naam....

PHP:
1
2
3
4
5
//Experimental Session
session_start();
$_SESSION['username'] = $username_site;
$_SESSION['md5_password']  = $password_site;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];


Das de code die ik nu gebruik, hoe kan ik de sessie verwijderen (of welke aanpassingen moet ik maken om die code van jou te gebruiken?)

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
PHP:
1
2
3
4
session_start();
unset($_SESSION['username']);
unset($_SESSION['md5_password']);
unset($_SESSION['ip']);


http://nl.php.net/manual/en/function.unset.php

:)

[ Voor 53% gewijzigd door RAJH op 16-01-2004 18:18 ]


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Volgens mij hoort die

Session_start();

er dan niet meer in. :>

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Acties:
  • 0 Henk 'm!

  • Expander
  • Registratie: Februari 2001
  • Niet online
Schonhose schreef op 16 januari 2004 @ 18:49:
Volgens mij hoort die

Session_start();

er dan niet meer in. :>
Wel..

Anders kan je ook niets unsetten natuurlijk.

Expanding the inexpandable


Acties:
  • 0 Henk 'm!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Koraalduivel schreef op 16 januari 2004 @ 18:06:
session_destroy is nog een oude functie.
Sinds wanneer is session_destory een oude functie? Ik kijk net op php.net en daar staat hij nog gewoon als bestaande functie :?

There's no place like 127.0.0.1


Acties:
  • 0 Henk 'm!

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 17-09 20:01

Schonhose

Retro Icoon

Topicstarter
Expander schreef op 16 januari 2004 @ 19:20:
[...]

Wel..

Anders kan je ook niets unsetten natuurlijk.
Euh.... volgens het linkje hoeft het er niet bij. Ik zie het nergens in de code examples aldaar :?

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005

Pagina: 1