Gå til innhold

[LØST] Problem med post i php


Anbefalte innlegg

Holder på å lære meg php, og da må jeg selvfølgelig få dreis på POST; kan noen se hva som er galt her?:

 

<?php

if ($username != null) {
echo "Jaaaa";
}else{

?>

<html>
<head>
<title>Ungedesignere :: Login</title>
</head>
<body>
<form method="POST" action="admin.php"
<input type="textbox" value="" name="username"><br />
<input type="submit" value="Logg Inn">


</form>
</body>
</html>

<? } ?>

 

Takk på forhånd :)

Endret av ze5400
Lenke til kommentar
Videoannonse
Annonse

Når du sender skjemadata til php skal disse hentes ut via $_POST[navn] for å gjøre det korrekt.

 

Du kan noen steder(servere) hente det direkte via $navn, men er en dårlig måte, og en stor sikkerhetsrisiko. Derfor har flere servere slått det av.

 

For å hente ut i fra adressen bruker du i stede $_GET[navn].

Lenke til kommentar

Register globals er ingen direkte sikkerhetsrisiko, det er kun vis man som utvikler ikke er obs på det, men hele register globals greia er noe drit og den vil være helt fjernet i neste PHP-versjon.

Bruk $_POST, $_GET, $_REQUEST, $_COOKIE og $_SESSION

 

Personelig ville jeg ha skrevet koden over sånn:

$username = (isset($_POST['username']) && is_string($_POST['username'])) ? $_POST['username'] : false;
if($username)
 echo "Hei " . $username;

 

Særlig vis man skal benytte seg av variablen på flere steder i scriptet er dette praktisk. Da har man en "trygg" variabel man kan bruke til det meste.

Lenke til kommentar
Register globals er ingen direkte sikkerhetsrisiko, det er kun vis man som utvikler ikke er obs på det, men hele register globals greia er noe drit og den vil være helt fjernet i neste PHP-versjon.

Bruk $_POST, $_GET, $_REQUEST, $_COOKIE og $_SESSION

7175246[/snapback]

Register globals er noe ordentlig drit man aldri i verden skal bruke. Å påstå det ikke er en sikkerhetssrisiko så lenge utvikler er obs blir naivt. Jeg er selv svært obs på farene rundt det, men har alikevel opplevd at det er sneket seg inn en svært alvorlig feil i koden nettopp pga. register_globals. Problemet er at man ikke klarer å tenke på alle konsekvenser ved kodingen.

 

Personelig ville jeg ha skrevet koden over sånn:

$username = (isset($_POST['username']) && is_string($_POST['username'])) ? $_POST['username'] : false;
if($username)
 echo "Hei " . $username;

 

Særlig vis man skal benytte seg av variablen på flere steder i scriptet er dette praktisk. Da har man en "trygg" variabel man kan bruke til det meste.

7175246[/snapback]

Greit nok det, men hvorfor i alle dager bruker du is_string? Den vil jo alltid være det :shrug: Endret av Ernie
Lenke til kommentar

Det vil den ikke nei!!

Her ser man en av feilene utviklere gjør. sendes et felt med navn som field[] så vil PHP gjøre det om til en array!

 

f.eks

<input name="field[name]">

<input name="field[password]"

 

I PHP scriptet vil da $_POST['field'] være en assoc array som inneholder 'name' og 'password'

Lenke til kommentar
Det vil den ikke nei!!

Her ser man en av feilene utviklere gjør. sendes et felt med navn som field[] så vil PHP gjøre det om til en array!

 

f.eks

<input name="field[name]">

<input name="field[password]"

 

I PHP scriptet vil da $_POST['field'] være en assoc array som inneholder 'name' og 'password'

7177649[/snapback]

... og hvordan i alle dager skal det være mulig å utnytte det? Bruker man en array som en string vil det jo stå array der i stedet for noe fornuftig :hm:
Lenke til kommentar

ALDRI ta noe for god fisk når det gjelder sikkerhet! Det enkleste eksempelet er at PHP fort vil spytte ut en feilmelding vis man prøver å håndtere en array som en string (eller omvendt for den saks skyld).Og en feilmelding kan fort inneholde mye snacks for en hacker.

Så kan du tenke på alle de funksjonen som vil oppføre seg annerledens vis de får en array istedenfor en string, som fort får fatale følger.

 

Når man henter en variabel fra en bruker skal man ta ALLE forhåndsregler!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...