Avatar billede Morten Nybegynder
25. februar 2005 - 00:07 Der er 12 kommentarer og
1 løsning

Variabel variabler i $_post

Hej

Jeg har følgende:

for ($i = 1; $i <= $j; $i++)
{

$sql = "INSERT INTO pup_reg (
            litter_nbr,
            pup_nbr,
            name_of_pup,
            color,
            owner,
            address,
            zip,
            city,
            country)
        VALUES ("
            $_POST["litter_nbr".$i].",".
            $_POST["pup_nbr".$i].",".
            $_POST["name_of_pup".$i].",".
            $_POST["color".$i].",".
            $_POST["owner".$i].",".
            $_POST["address".$i].",".
            $_POST["zip".$i].",".
            $_POST["city".$i].",".
            $_POST["country".$i]."";
$result_pup = @mysql_query($sql) or die(mysql_error());
}

mit problem er syntaksen på $_Post variablen - hvordan skal det skrives for at den løber det hele igennem???
Ovenstående er blot mit sidste forsøg - synes jeg har prøvet alverdens varianter...
Avatar billede olebole Juniormester
25. februar 2005 - 00:17 #1
<ole>
.
Det er yderst uklogt ukritisk at fylde bruger input ind i en DB. Du er nødt til at vide, hvad dine variabler hedder - og at gennemchecke dem grundigt, inden du hælder dem i DB'en. Ellers inviterer du til, at brugere laver ged i den for dig.

Hvad dit spm. angår, så løber du ikke noget igennem, med mindre du sætter $j til en værdi ... og den kender kun du  :)

/mvh
</bole>
Avatar billede Morten Nybegynder
25. februar 2005 - 00:19 #2
hov hov ;O)

Jeg styrer selv på forgående side, variablerne - jeg ved blot aldrig hvor mange der kan være fra 1 til 20...

2 $j er tildelt en værdi før det du ser..

Det er slet ikke noget af det du nævner som er problemet - mit eneste LILLE problem er at få den til at æde $_Post som sammensat variable af tekst plus $i

;O)
Avatar billede detox Nybegynder
25. februar 2005 - 00:21 #3
for ($i = 1; $i <= $j; $i++)
{

$sql = "INSERT INTO pup_reg (
            litter_nbr,
            pup_nbr,
            name_of_pup,
            color,
            owner,
            address,
            zip,
            city,
            country)
        VALUES (
            '".$_POST['litter_nbr'.$i]."',
            '".$_POST['pup_nbr'.$i]."',
            '".$_POST['name_of_pup'.$i]."',
            '".$_POST['color'.$i]."',
            '".$_POST['owner'.$i]."',
            '".$_POST['address'.$i]."',
            '".$_POST['zip'.$i]."',
            '".$_POST['city'.$i]."',
            '".$_POST['country'.$i]."')";
$result_pup = @mysql_query($sql) or die(mysql_error());
}

?>
Avatar billede Morten Nybegynder
25. februar 2005 - 00:24 #4
JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA....

Tusind tusind tak - du har lige reddet min nattesøvn... hahahahahaha

Smider du et svar - den havde jeg nok aldrig gættet.. manglede ' om ". men egentlig er det vel logisk - bagefter hhahahahah ;O)
Avatar billede detox Nybegynder
25. februar 2005 - 00:24 #5
Eller:

$sql = "INSERT INTO pup_reg (
            litter_nbr,
            pup_nbr,
            name_of_pup,
            color,
            owner,
            address,
            zip,
            city,
            country)
        VALUES (
            '".$_POST["litter_nbr$i"]."',
            '".$_POST["pup_nbr$i"]."',
            '".$_POST["name_of_pup$i"]."',
            '".$_POST["color$i"]."',
            '".$_POST["owner$i"]."',
            '".$_POST["address$i"]."',
            '".$_POST["zip$i"]."',
            '".$_POST["city$i"]."',
            '".$_POST["country$i"]."')";
Avatar billede detox Nybegynder
25. februar 2005 - 00:26 #6
Jep, velbekommen ;O)
Avatar billede detox Nybegynder
25. februar 2005 - 00:27 #7
Men vær alligevel opmærksom på ole's advarsel; alle og enhver kan lave en form der poster variabler!
Avatar billede Morten Nybegynder
25. februar 2005 - 00:32 #8
men hvad er jeres forslag så - folk skal reg. nogle hvalpe
På side 1 indtaster de oplysninger om far, mor og antallet af hvalpe
På side 2 danner jeg så et antal linier til hvalpe reg som er afhænigt af antallet af hvalpe angivet på første side...

Kan man så ikke det???
Avatar billede Morten Nybegynder
25. februar 2005 - 00:35 #9
Forøvrigt tror jeg i har misforstået - det er jo ikke brugerens data jeg bruger til mine variabler... min <form> ser nogenlunde så'n her ud:

    <input     name=\"name_of_pup".$j."\"

Altså ved jeg altid at mit felt hedder name_of_pup + et tal mellem 1 og 20

Jeg forstår ikke helt hvad i mener - men vil da gerne vide hvis jeg har en stor brist!!!!
Avatar billede detox Nybegynder
25. februar 2005 - 00:38 #10
Du skal hvert fald sikre dig at du har magic_quotes_gpc slået til, ellers skal du tilføje addslashes til dine $_POST variabler.
Avatar billede Morten Nybegynder
25. februar 2005 - 00:42 #11
kan du ikke forklare det lidt nærmere...? :O)
Avatar billede Morten Nybegynder
25. februar 2005 - 00:53 #12
Forøvrigt har man ikke tilgang til siderne medmindre man er logget ind i systemet -

Jeg vil meget gerne vide hvad du helt præcis mener med adslashes ... gerne eksempel.

jeg gætter på at magic_quotes_gpc er noget som skal slås til på serveren - så der skal jeg jo høre udbyderen.

Nå men godnat og tak for hjælpen.
Avatar billede detox Nybegynder
25. februar 2005 - 00:53 #13
magic_quotes_gpc sørger for at escape ' og " som kan lave rod i din query. Du kan læse om det her:
http://dk2.php.net/manual/en/security.magicquotes.php

og her:
http://dk2.php.net/manual/en/function.mysql-real-escape-string.php
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