Gå til innhold

mysql opplastning av bilde/tekst -bilde?


Anbefalte innlegg

Her er da koden, den heter tekst og bilde fra formen jeg har. Men det jeg har lyst til å fikse er at hvis man kun velger å sende inn tekst, så kan det komme opp en beskjed om at man ikke har lagt ved ett bilde osv.. istedenfor at den gir en feilmelding. går ikke det ann da gutter? :D hilsen newbien i php :p

 

MYSQL_CONNECT ("******","****","****");

mysql_select_db("***");

 

$data = addslashes(fread(fopen($formdata, "rb"), filesize($formdata)));

 

$result=MYSQL_QUERY("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".

"VALUES ('$form_description','$data','$formdata_name','$formdata_size','$formdata_type')");

 

$id= mysql_insert_id();

print "<p>Tusen takk for ditt bidrag!"

Lenke til kommentar
Videoannonse
Annonse

Hvis det er å hindre at det postes uten at begge felt er 'fylt ut' kan du bruke Javascript, f.eks.

 

Hvis du ønsker å skrive en melding til brukeren etter at dataene er postet kan du sjekke om en av input-boksene er tomme.

 

Dette:

MYSQL_CONNECT ("******","****","****"); 
mysql_select_db("***");

burde du forøvrig legge i en egen fil (f.eks. db_connect.inc) og legge til include("db_connect.inc"); øverst i filen din.

Endret av kadutrur
Lenke til kommentar

okei, så det er ingen "lettere" måte å gjøre det på asså.. tenkte kanskje det gikk ann å føre på rett bak koden til "data" biten, at hvis den ikke skulle laste opp noe så ble det OR elns .. men okeida :p

 

hvorfor bør jeg legge det i egen fil ? sikkerhet mener du? :)

Lenke til kommentar
(..) føre på rett bak koden til "data" biten, at hvis den ikke skulle laste opp noe så ble det OR elns ..(..)

Dette skjønte jeg ikke så mye av - kan du forklare litt nærmere? Men du kan jo sette ulik kode i forhold til hvilke felt som er tomme eller ei - altså:

 

if (begge felt er fylt ut)

{

kode_1

}

else if (bare felt 1 fylt ut)

{

kode_2

}

else (bare felt 2 fylt ut)

{

kode_3

}

 

 

Blir i utgangspunktet ikke så mye sikrere ved å legge det i egen fil (da må du i tilfelle sette i .htaccess at det ikke er tillatt å vise filer med .inc-endelse).

 

Men hvis du en dag skal flytte filene dine til en annen server, da er det betraktelig enklere å kunne endre servernavn, bruker osv. i kun én fil, i stedet for å måtte endre alle filer som trenger databasetilkobling.

Lenke til kommentar
det er idioti å kalle fila si noe med .inc, da vil den være lesbar i klartekst for besøkende som går rett inn på den.

"Blir i utgangspunktet ikke så mye sikrere ved å legge det i egen fil (da må du i tilfelle sette i .htaccess at det ikke er tillatt å vise filer med .inc-endelse)."

Lenke til kommentar

torbjørn: ja jeg vet jeg burde ta meg en god gjennomgang i phptutorial, noe jeg skal gjøre. Men har ikke hatt tiden til å sette meg ned med det enda.

 

Kadutrur: ja det var noe som det du sier der jeg mener. Altså det står i koden:

 

$data = addslashes(fread(fopen($formdata, "rb"), filesize($formdata)));

 

Så hvis ikke denne ville bli brukt så ville den gi en melding om at det ikke var lastet opp noe bilde. Vet egentlig ikke noen bedre måte å forklare det på enda :blush: Men skjønte hva du mente med den koden du skrev der.

 

Og som sagt før så er jeg en newbie i php, men driver og leker meg litt med dette så jeg skjønner desverre ikke så mye enda. Men jeg lover dere jeg skal bli flinkere i dette :)

 

Når det gjelder det med connection til databasen. Den ligger jo i en php kode som sier, if submitted så skal den connecte. Er ikke det sikkert nok?

 

takk for all hjelp

Lenke til kommentar
det er idioti å kalle fila si noe med .inc, da vil den være lesbar i klartekst for besøkende som går rett inn på den.

"Blir i utgangspunktet ikke så mye sikrere ved å legge det i egen fil (da må du i tilfelle sette i .htaccess at det ikke er tillatt å vise filer med .inc-endelse)."

ke?

 

det vanlige er å kalle fila si .php

Lenke til kommentar

Hvis du har en.php-fil er det faktisk en mulighet for at man ser db-tilkoblingen hvis serveren skulle tryne eller av en eller annen grunn få trøbbel med å parse php-kode.

 

Hvis man bruker .inc-endelse unngår man dette, og for å skjule filen(e) med .inc-endelse legger man en .htaccess med dette innholdet i samme mappe:

<Files *.inc> 
Order deny,allow 
Deny from all 
</Files>

Lenke til kommentar

For det første skal det mye til for å se en db-tilkobling, i og med at den er bygd opp av elektroner :p

 

Uansett, litt mer serriøst. Hvordan er det mulig at kun PHP-parseren kræsjer og ikke hele serveren? Så vidt jeg vet består det hele av èn aplikasjon.

 

For å være på den sikre siden bruker jeg selv, av ren rutine, å putte alle mine klasser og config-filer utenfor root. Dette gjør at ingen har direkte tilgang til mine filer.

 

Hva om .htaccess kræsjer? Så vidt jeg kan skjønne burde det ikke utgjøre noen forskjell om man bruker php-endelse eller inc-endelse hvor man ber en htaccess fil stenge av for andre brukere. Sjansen for at det skjer en feil med denne .htaccess-filen (overskriving, endring i kofigen til servern som gjør at man ignorerer .htaccess-filer etc) er større enn at PHP-parseren plutselig finner ut at den skal slutte å fungere.

Lenke til kommentar
Hvis du har en.php-fil er det faktisk en mulighet for at man ser db-tilkoblingen hvis serveren skulle tryne eller av en eller annen grunn få trøbbel med å parse php-kode.

 

Hvis man bruker .inc-endelse unngår man dette, og for å skjule filen(e) med .inc-endelse legger man en .htaccess med dette innholdet i samme mappe:

<Files *.inc> 
Order deny,allow 
Deny from all 
</Files>

jeg skjønner ikke helt hvor du har dette fra.

 

hvis din server tryner har det ikke noe å si hva du kaller fila di, den vil vises likt uavhengig av hvilken ending den har. da kan du kalle den hva søren du vil.

 

hvis du derimot koder en eneste liten feil, eller hvis databaseserveren tar en støyt, så vil det komme opp:

 

error in includes/connection.inc, connection to blabla refused.

 

unge lovende web-surfer trenger da bare skrive inn includes/connection.inc og få opp din databasepassord i klartekst. er du i tillegg en av de mange som bruker freesql (eller annen remote mysqlserver) så er du prisgitt andres gode moral.

Lenke til kommentar
error in includes/connection.inc, connection to blabla refused.

 

unge lovende web-surfer trenger da bare skrive inn includes/connection.inc og få opp din databasepassord i klartekst. er du i tillegg en av de mange som bruker freesql (eller annen remote mysqlserver) så er du prisgitt andres gode moral.

Hvis man har brukt det jeg skrev tidligere i .htaccess, vil man ikke kunne se innholdet i .inc-filen selv om man prøver å aksessere denne direkte (hvis det var det du lurte på hvor jeg hadde det fra, så er det faktisk noe jeg har testet selv).

 

Avhengig av hva slags server man kjører, men jeg vil vel tro at det er fullt mulig at PHP kan 'kutte ut' uten at det er fordi hele serveren går ned - f.eks. på en Windows-server?

Endret av kadutrur
Lenke til kommentar

jeg ser fortsatt ikke poenget. kaller du fila di .php slipper du å tenkte på det .htaccess i det hele tatt. det er ikke noe å krangle om en gang. Jeg ser virkelig ikke hvorfor man skal trenge å sette seg inn i .htaccess syntaks når man istedet kan rename fila si til .php og den fortsatt vil gjøre samme nytte.

 

Ulike former for server kræsj som skulle involvere slutt på phpparsing, men fortsatt .htaccess funksjonalitet ser jeg ikke poenget i å vurdere.

Lenke til kommentar

Ville tro at Torbjør hadde bevist sine kunnskaper om webprogrammering for lenge siden og at det ikke er særlig mye poen å motsi han ved mindre han tar direkte feil.

 

Det er jo selvfølgelig et poeng at det er en mulighet å løse problemet i htaccess, men her er det to viktige poeng:

1. Dersom brukeren må bytte server, og bytter kanskje til en server som ikke støtter htsccess. Da vil det bli mye jobb å skrive om alle filene som trenger include filene.

2. Skal en bli en flink programmerer så er det lurt å følge standarder! Enten en senere vil slå seg sammen med flere utviklere eller en vil publisere et script så vil de fleste sette pris på at scriptet fungerer som de alle fleste andre script.

 

Så for å sitere Torbjør på et godt poeng:

Jeg ser virkelig ikke hvorfor man skal trenge å sette seg inn i .htaccess syntaks når man istedet kan rename fila si til .php og den fortsatt vil gjøre samme nytte.
Endret av ????????
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...