Avatar billede nikolajdu Nybegynder
10. marts 2004 - 00:49 Der er 20 kommentarer og
1 løsning

PHP i database?

Ok kort og godt kan det lade sig gøre at smide noget ind og få det afviklet.

if(isset($_POST["form"])){
print "dut";
}

Sikkert ikke men hvordan får jeg så lavet mit system på en måde hvor det er nemt at editere i funktionerne....

/Nikolaj
Avatar billede erikjacobsen Ekspert
10. marts 2004 - 00:55 #1
$a = 'if(isset($_POST["form"])){ print "dut"; }';
eval($a);

vil gøre det. Men brug det med omtanke.
Avatar billede nikolajdu Nybegynder
10. marts 2004 - 00:57 #2
Jeg var lige ved at skrive at folk ikke skulle kommentere på sikkerhedsissuet - Prøver det lige af :)
Avatar billede nikolajdu Nybegynder
10. marts 2004 - 01:00 #3
Det virker umiddelbart ikke måske er det opsætningen i php/mysql?
Avatar billede erikjacobsen Ekspert
10. marts 2004 - 01:02 #4
Det var egentlig ikke sikkerhed, jeg havde i tankerne, men kun et spørgsmål om
struktur og opbygning af dit system. Lægger du for mange mærkelige PHP-ting ud¨
i et felt i en tabel, mister du styringen ;)

Så skal siges at jeg har brugt det til at styre en række parametre, hvor kun
få typisk skulle bruges. I stedet for 15 felter, `titel`, `ascdesc`, ... har
jeg så eet tekstelt i tabellen, hvor der kunne stå

  $ascdesc='desc';

hvis det nu var den eneste parameter, der skulle ændres. Der er bestemt også
ulemper med at gøre det på den måde!
Avatar billede erikjacobsen Ekspert
10. marts 2004 - 01:06 #5
Nix - hvis det ikke virker, er det dig, og ikke vores elskede php/mysql, der laver knuder.
;)
Avatar billede nikolajdu Nybegynder
10. marts 2004 - 01:28 #6
Kan ikke rigtigt få det til at virke. Hvordan poster jeg det ind i databasen?

Lige nu har jeg prøvet at smide det ind

1. som du postede.
2. Med <?php ?>

Har prøvet at køre eval både inden i og efter database kaldet er kørt.
Avatar billede Slettet bruger
10. marts 2004 - 02:02 #7
Hvis det har været en tur i en database kan det være, at du skal bruge stripslashes før eval.
Avatar billede nikolajdu Nybegynder
10. marts 2004 - 04:12 #8
Jeg har bare postet det ind som der var så det ligger ikke med slashes... lige nu
Avatar billede erikjacobsen Ekspert
10. marts 2004 - 08:40 #9
Uden <?php ?>

Hvad gør du? Må vi se koden?
Avatar billede nikolajdu Nybegynder
10. marts 2004 - 15:09 #10
$b = 'hej fra min database';
eval($b);

og hives ud med :

$test = $row["site_function"];
Avatar billede Slettet bruger
10. marts 2004 - 15:23 #11
eval forventer at modtage php-kode, hvilket 'hej fra min database' ikke netop kan kaldes. Fidusen er, at eval (i modsætning til include) starter i php-mode.

Prøv med:

eval('?>' . $b . '<?php');
eller
eval('?'.'>' . $b . '<'.'?php');

Nummer 2 er mest for hvis php brokker sig over nummer 1.

Så kræver det bare, at du har <?php ?> uden om eventuel php-kode i din database.
Avatar billede nikolajdu Nybegynder
10. marts 2004 - 15:30 #12
det giver fejl hvis jeg skriver <?php i databasen og ingen af ovenstående virker sårn het efter hensigten i bedste tilfælde får jeg udskrevet hele funktionen.
Avatar billede Slettet bruger
10. marts 2004 - 15:34 #13
Prøv at vise os den reelle kode, du benytter - ikke bare et eksempel.
Avatar billede erikjacobsen Ekspert
10. marts 2004 - 17:00 #14
$b = 'print "hej fra min database";';
eval($b);
Avatar billede nikolajdu Nybegynder
23. marts 2004 - 01:28 #15
Dem der har lyst kan smide et svar - Det er sikkert mig der gjorde noget forkert og nu har jeg sgutte tid til at kigge på det.
Avatar billede Slettet bruger
23. marts 2004 - 01:38 #16
Vi fik det jo ikke løst, så du beholder bare dine point. Hvis da ikke Erik vil overraske mig ved at tage imod dem.
Avatar billede nikolajdu Nybegynder
23. marts 2004 - 01:40 #17
Det vil jeg betvivle i allerhøjeste grad - godt nok kan Erik af og til overraske - Men det bliver næppe her :))
Avatar billede nikolajdu Nybegynder
23. marts 2004 - 01:40 #18
Tak for kigget ihvertilfald :))
Avatar billede nikolajdu Nybegynder
04. maj 2004 - 04:43 #19
Er der ikke nogle der vil have point her så jeg kan få lukket - Godt nok fik jeg det ikke til at virke, men så da for forsøget på at forklare tingenes tilstand :))
Avatar billede Slettet bruger
04. maj 2004 - 17:51 #20
Ikke hvis du ikke vil vise den reelle kode.

Men prøv dette:

<?php

$streng='Her er lidt tekst. <?php print_r($SERVER); ?>';

eval('?>' . $streng . '<?php');

?>
Avatar billede nikolajdu Nybegynder
04. maj 2004 - 23:13 #21
Jeg prøver det af i morgen. Jeg prøvede en del muligheder af men har muligvis bare slet ikke forstået hvordan endnu.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester