groenlid Skrevet 23. juni 2006 Del Skrevet 23. juni 2006 mysql_query("UPDATE $tabell_brukere SET bilde = '$_FILES[bilde][name]' WHERE navn='$_COOKIE[bruker]'"); I mysql-en blir resultatet array[name]. Finnes det en annen måte å sette opp/skrive dette på. Lenke til kommentar
hockey500 Skrevet 23. juni 2006 Del Skrevet 23. juni 2006 (endret) den koden er helt riktig, men jeg liker å separere spørringen fra mysql_query() slik: $sql = "UPDATE $tabell_brukere SET bilde = '$_FILES[bilde][name]' WHERE navn='$_COOKIE[bruker]'"; og ikke bruke variabler inni hermetegn. avslutt slik: "' . $_FILES[bilde][name] . '" er du sikker på at variablene dine har de verdiene du forventer? EDIT: fullstendig kode for det du prøver på slik jeg ville gjort det: $sql = sprintf("UPDATE `%s` SET bilde = '%s' WHERE navn='%s'", mysql_real_escape_string($tabell_brukere), mysql_real_escape_string($_FILES[bilde][name]), mysql_real_escape_string($_COOKIE[bruker])); mysql_query($sql) or die(mysql_error()); 2 ting å tenke over: 1: SQL injection 2: returnere eventuell feil i spørring med mysql_error() Endret 23. juni 2006 av hockey500 Lenke til kommentar
-morten Skrevet 23. juni 2006 Del Skrevet 23. juni 2006 (endret) Får du ikke en feilmelding på den der altså? Trodde man måtte bruke krøllparanteser slik: $foo = "blahblah {$array['name']} lalal"; Men som nevnt over, du bør escape dataene før du setter dem inn. Enten med sprintf, eller bare $filename = mysql_real_escape_string($_FILES[bilde][name]); og så $sql = "UPDATE $tabell_brukere SET bilde = '$filename'"; Edit: for akkurat $_COOKIE så er den escapet automatisk som default (en av PHPs mest iriterende egenskaper...), men ja.. Endret 23. juni 2006 av -morten Lenke til kommentar
groenlid Skrevet 23. juni 2006 Forfatter Del Skrevet 23. juni 2006 (endret) Nå fungerer det vettu. Var på grunn av sprintf kommandoen tror jeg.. kjekke greier tnx hockey500, kommer sikkert tilbake for mer hjelp Endret 23. juni 2006 av groenlid Lenke til kommentar
groenlid Skrevet 23. juni 2006 Forfatter Del Skrevet 23. juni 2006 Får du ikke en feilmelding på den der altså? Trodde man måtte bruke krøllparanteser slik: $foo = "blahblah {$array['name']} lalal"; Men som nevnt over, du bør escape dataene før du setter dem inn. Enten med sprintf, eller bare $filename = mysql_real_escape_string($_FILES[bilde][name]); og så $sql = "UPDATE $tabell_brukere SET bilde = '$filename'"; 6371465[/snapback] Virket det du også sa morten Lenke til kommentar
hockey500 Skrevet 23. juni 2006 Del Skrevet 23. juni 2006 -morten: det er ikke nødvendig å bruke {} når du bruker variabler inni hermetegn, men det er såvidt jeg har forstått en god vane en bør legge seg til. Lenke til kommentar
-morten Skrevet 24. juni 2006 Del Skrevet 24. juni 2006 Tror aldri jeg har fått det til uten..? $array['foo'] = 'blah'; $foo = "blah $array['foo'] blah"; echo $foo; gir Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 2 Lenke til kommentar
hockey500 Skrevet 24. juni 2006 Del Skrevet 24. juni 2006 ja, kan godt hende det er sånn med arrays, så det kan ha vært det som var feilen i scriptet hans.. men med vanlige variabler funker det fint: $var = "123"; echo "\$var er $var"; // $var er 123 Lenke til kommentar
-morten Skrevet 24. juni 2006 Del Skrevet 24. juni 2006 Jaja, med vanlige variabler går det selvsagt fint. Lenke til kommentar
bjokys Skrevet 24. juni 2006 Del Skrevet 24. juni 2006 (endret) Men uansett er $var = '123'; echo $var.' er var'; ørlite grann mer effektivt (i teorien iallefall), ettersom tolkeren ikke leter etter variabler i teksten når du bruker ' i stedet for " Endret 24. juni 2006 av bK_Coder Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå