/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Rette i en databese 2(mysql) newbye
Fra : Jan Hansen


Dato : 13-11-03 14:52

Hejsa

Hvad er der galt med følgende kode??

<?php
require("aaben_luk.php");
$gren = $_POST['gren'];
$fnavn = $_POST['fnavn'];
$enavn = $_POST['enavn'];
$adr = $_POST['adr'];
$hus = $_POST['hus'];
$lby = $_POST['lby'];
$pnr = $_POST['pnr'];
$by = $_POST['by'];
$tnr = $_POST['tnr'];
$fnr = $_POST['fnr'];
$sort = $_POST['sort'];
$titel = $_POST['titel'];
$id = $_POST['T2'];
// her er der de korekte data i alle variable//
//echo "$id $sort $gren $titel $fnavn $enavn $adr $hus $lby $pnr $by $tnr";
//
// åbner og lukker korekt da functionen bruges på andre sider og virker//
aaben_database();
$sql = "
UPDATE adresse
SET sort = $sortering, gren = '$gren', titel = '$titel', fornavn =
'$fnavn', efternavn = '$enavn', adr = '$adr', husnr = '$hus', lokalby =
'$lby', postnr = $pnr, byen = '$by', telefon = $tnr, foeselsdag = $fnr
WHERE id = $id
";
mysql_query( $sql);
luk_data();
?>
//header("Location: ret1.php");//

På forhånd tak.

--
MVH Jan



 
 
Jan Hansen (13-11-2003)
Kommentar
Fra : Jan Hansen


Dato : 13-11-03 14:57

Hejsa

Følgende kode virker nå jeg skal ligge data ind.

$sql = 'INSERT INTO `adresse` ( `id`,`sortering` , `gren` , `titel` ,
`fornavn` ,`efternavn` , `adr` , `husnr` , `lokalby` , `postnr` , `byen` ,
`telefon` , `foeselsdag` ) ';
$sql .= "VALUES ('$id','$sort', '$gren', '$titel', '$fnavn', '$enavn',
'$adr', '$hus', '$lby', '$pnr', '$by', '$tnr', '$fnr' );";
$sql .= '';
mysql_query( $sql);

Ved ikke om det kan hjælpe!!
--
MVH Jan
"Jan Hansen" <jan.h@rnet.invalid> skrev i en meddelelse
news:bp023v$euq$1@news.net.uni-c.dk...
> Hejsa
>
> Hvad er der galt med følgende kode??
>
> <?php
> require("aaben_luk.php");
> $gren = $_POST['gren'];
> $fnavn = $_POST['fnavn'];
> $enavn = $_POST['enavn'];
> $adr = $_POST['adr'];
> $hus = $_POST['hus'];
> $lby = $_POST['lby'];
> $pnr = $_POST['pnr'];
> $by = $_POST['by'];
> $tnr = $_POST['tnr'];
> $fnr = $_POST['fnr'];
> $sort = $_POST['sort'];
> $titel = $_POST['titel'];
> $id = $_POST['T2'];
> // her er der de korekte data i alle variable//
> //echo "$id $sort $gren $titel $fnavn $enavn $adr $hus $lby $pnr $by
$tnr";
> //
> // åbner og lukker korekt da functionen bruges på andre sider og virker//
> aaben_database();
> $sql = "
> UPDATE adresse
> SET sort = $sortering, gren = '$gren', titel = '$titel', fornavn =
> '$fnavn', efternavn = '$enavn', adr = '$adr', husnr = '$hus', lokalby =
> '$lby', postnr = $pnr, byen = '$by', telefon = $tnr, foeselsdag = $fnr
> WHERE id = $id
> ";
> mysql_query( $sql);
> luk_data();
> ?>
> //header("Location: ret1.php");//
>
> På forhånd tak.
>
> --
> MVH Jan
>
>



Troels Arvin (13-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 13-11-03 14:58

On Thu, 13 Nov 2003 14:52:11 +0100, Jan Hansen wrote:

> Hvad er der galt med følgende kode??

Hvad får du af fejlmeddelelser? - Hvordan ved du, at det ikke virker?

--
Greetings from Troels Arvin, Copenhagen, Denmark


Jan Hansen (13-11-2003)
Kommentar
Fra : Jan Hansen


Dato : 13-11-03 15:02


"Troels Arvin" <troels@arvin.dk> skrev
> > Hvad er der galt med følgende kode??
>
> Hvad får du af fejlmeddelelser? - Hvordan ved du, at det ikke virker?

Jeg får igen fejlmeddeleser, men når jeg ser i databasen er der intet blevet
rettet.


--
MVH Jan



Troels Arvin (13-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 13-11-03 15:06

On Thu, 13 Nov 2003 15:02:18 +0100, Jan Hansen wrote:

>
> "Troels Arvin" <troels@arvin.dk> skrev
>> > Hvad er der galt med følgende kode??
>>
>> Hvad får du af fejlmeddelelser? - Hvordan ved du, at det ikke virker?
>
> Jeg får igen fejlmeddeleser, men når jeg ser i databasen er der intet blevet
> rettet.

Prøv midlertidigt at skrive

print htmlspecialchars($sql);

i stedet for

mysql_query( $sql);

- Og lad os da se, hvad det giver af output.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Jan Hansen (13-11-2003)
Kommentar
Fra : Jan Hansen


Dato : 13-11-03 15:13

"Troels Arvin" <troels@arvin.dk> skrev

> Prøv midlertidigt at skrive
>
> print htmlspecialchars($sql);
>
> i stedet for
>
> mysql_query( $sql);
>
> - Og lad os da se, hvad det giver af output.
Hejsa

Den kom med følgende meddelese

UPDATE adresse SET sort = , gren = 'Leder', titel = 'fdgfdf', fornavn =
'Nfds', efternavn = 'Kdsf', adr = 'hjdf', husnr = '4', lokalby = 'Spandet',
postnr = 6760, byen = 'Ribe', telefon = 74858787, foeselsdag = 451512 WHERE
id = 34

og hvad nu??

--
MVH Jan



Troels Arvin (13-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 13-11-03 15:23

On Thu, 13 Nov 2003 15:13:17 +0100, Jan Hansen wrote:

> UPDATE adresse SET sort = , gren = 'Leder', titel = 'fdgfdf', fornavn =
> 'Nfds', efternavn = 'Kdsf', adr = 'hjdf', husnr = '4', lokalby = 'Spandet',
> postnr = 6760, byen = 'Ribe', telefon = 74858787, foeselsdag = 451512 WHERE
> id = 34

Det går galt lynhurtigt efter "SET sort =". Følgende er ikke valid SQL:

UPDATE adresse SET sort = ,

Der mangler at blive sat en værdi for sort.

Ret fejlen og prøv derefter at omgøre den tidligere ændring. Skift
således

print htmlspecialchars($sql);

til

if (!mysql_query($sql)) {
die("opgav efter mysql-fejl: ".mysql_error());
}

--
Greetings from Troels Arvin, Copenhagen, Denmark


Jan Hansen (13-11-2003)
Kommentar
Fra : Jan Hansen


Dato : 13-11-03 15:25

Hejsa
Nu virker den, jeg havde lavet en fejl ved navngivningen af variablen sort,
da jeg kaldte den sortering virkede det.

Mange tak for hjælpen Troels.

--
MVH Jan
"Jan Hansen" <jan.h@rnet.invalid> skrev i en meddelelse
news:bp03bi$fru$1@news.net.uni-c.dk...
> "Troels Arvin" <troels@arvin.dk> skrev
>
> > Prøv midlertidigt at skrive
> >
> > print htmlspecialchars($sql);
> >
> > i stedet for
> >
> > mysql_query( $sql);
> >
> > - Og lad os da se, hvad det giver af output.
> Hejsa
>
> Den kom med følgende meddelese
>
> UPDATE adresse SET sort = , gren = 'Leder', titel = 'fdgfdf', fornavn =
> 'Nfds', efternavn = 'Kdsf', adr = 'hjdf', husnr = '4', lokalby =
'Spandet',
> postnr = 6760, byen = 'Ribe', telefon = 74858787, foeselsdag = 451512
WHERE
> id = 34
>
> og hvad nu??
>
> --
> MVH Jan
>
>



Troels Arvin (13-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 13-11-03 15:38

On Thu, 13 Nov 2003 14:52:11 +0100, Jan Hansen wrote:

> $gren = $_POST['gren'];
[...]
> $id = $_POST['T2'];

> $sql = "
> UPDATE adresse
> SET sort = $sortering, gren = '$gren', titel = '$titel', fornavn =
> '$fnavn', efternavn = '$enavn', adr = '$adr', husnr = '$hus', lokalby =
> '$lby', postnr = $pnr, byen = '$by', telefon = $tnr, foeselsdag = $fnr
> WHERE id = $id
> ";

Denne slags kode er meget farlig, fordi den åbner for såkaldt
SQL-injection: Du lader eksternt forsynede værdier ryge direkte i dit
SQL-udtryk.

Forestil dig fx. hvad det kunne få af konsekvenser, hvis en (mis-)bruger
får sneget følgende værdi ind i $id:
0 OR 0=0

Da 0 altid er lig 0, vil ændringen gælde for data i alle rækker i din
tabel.

En måde at gøre din kode mere sikker på:

$gren = addslashes($_POST['gren']);
$fnavn = addslashes($_POST['fnavn']);
$enavn = addslashes($_POST['enavn']);
[... osv ...]
$pnr = intval($_POST['pnr']);
[... osv ...]
$id = intval($_POST['T2']);

Med andre ord sørger jeg for at bringe de i SQL'en benyttede værdier på
en tilstand hvor de i hvertfald ikke kan gøre voldsom skade.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Jan Hansen (13-11-2003)
Kommentar
Fra : Jan Hansen


Dato : 13-11-03 17:13

Tak
havde læst om det, men viste ikke hvordan man gjorde.

--
MVH Jan



Lars Olesen (15-11-2003)
Kommentar
Fra : Lars Olesen


Dato : 15-11-03 09:56

Jan Hansen wrote:

> Hvad er der galt med følgende kode??

[SNIP en masse kode]

Ved ikke om du har fået løst problemet, men en anden ting, der er galt
er at først kører alle array-variablene ind i lokale variable for kun at
bruge dem en gang. Det er spild af gode serverkræfter. Skriv dem
direkte i SQL'en, så kan man også hurtigt overskue, hvor de forskellige
værdier kommer fra.

/lars


--
www.fodboldenslegestue.dk   www.larsolesen.dk
www.discimport.dk      www.vih.dk


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste