Gå til innhold

en annen måte å skrive dette på?


Anbefalte innlegg

Videoannonse
Annonse

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 av hockey500
Lenke til kommentar

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 av -morten
Lenke til kommentar
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

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

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 av bK_Coder
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...