Avatar billede mcfatty Nybegynder
10. august 2011 - 23:45 Der er 5 kommentarer

Indsætte database tabel med php, mysql og Jquery/Ajax?

Godaften,

Først og fremmeste ved jeg ikke om dette er det korrekte sted at ligge dette spørgsmål, hvis det ligger forkert, må en eller anden flytte det.

Nuvel mit spørgsmål lyder på hvordan det hele fungere med php, mysql og jquery/Ajax, når jeg f.eks. gerne vil indsætte tekst fra et input felt til database?

F.eks. så har jeg et kommentar felt, med et overskrift og et kommentar felt. Det indtaster man så en kommentar i, og trykker "Submit", derefter (som det er nu), sender den det videre til et script, som tilføjer kommentaren til databasen og derefter opdatere den hele siden, og viser ens kommentar.

Hvis jeg nu ønsker, via Jquery/Ajax, at den, uden at opdatere siden, tilføjer ens kommentar til databasen og derefter viser kommentaren, uden at skulle opdatere siden, hvordan gøres dette så?

En anden ting jeg kommer til at tænke på, og som jeg hele tiden har med i mente, er sikkerheden. Jeg har fundet en hel del artikler og guides ude på nettet, men jeg synes ikke umiddelbart at de lægger særligt meget vægt på ens sikkerhed. Jeg tænker på at man, når der bruges Ajax, jo synligt viser hvilken fil der bruges og sendes til. Kan man på nogen måde skjule dette, så det ikke bare kan gennemskues hvilken fil der bliver brugt?

Jeg tænker f.eks. med sådan et script her:

(pre)$.ajax({
type: "POST",
url: "ajax.php",
data: "fname="+ fname +"& lname="+ lname,
success: function(){
                            $('form#submit').hide(function(){$('div.success').fadeIn();});
}
(/pre)

Her er det jo nemt at gennemskue, at det er ajax.php der bruges, selvfølgelig går man ind og sikker filerne - men ville det gøre noget bedre, at jeg bruger søgevenlig urls via .htaccess?

Når vi i øverigt er ved sikkerheden, så skal scriptet jo også lave et tjek på om brugeren har udfyldt begge felter, før den går videre og tilføjer til databasen, så hvis nogen har et forslag på dette, må de gerne give svar!

Jeg håber mit spørgsmål gav mening, så jeg kan komme videre i mit projekt! Hvis der er spørgsmål, så spørg endelig, så skal jeg se om jeg kan fordybe eller skrive på en anden måde!

På forhånd tak!
Avatar billede mcfatty Nybegynder
10. august 2011 - 23:51 #1
Kunne lige se, at den ikke havde gjort det rigtig :):

$.ajax({
type: "POST",
url: "ajax.php",
data: "fname="+ fname +"& lname="+ lname,
success: function(){
  $('form#submit').hide(function(){$('div.success').fadeIn();});
}
Avatar billede jakobdo Ekspert
11. august 2011 - 08:22 #2
Ang. sikkerhed og sikre at filen som skal modtage data, ikke kan ses, det har intet med sikkerhed at gøre.
Hvis en browser ikke kan se hvor den skal sende sine data hen, tja, hvor skal den så sende dem hen?

Men med henhold til sikkerhed, så er det netop dig som skal indbygge sikkerhed.
Tjek du kun tillader de data du ønsker der skal komme ind.

Et tal skal f.eks. ikke indeholde bogstaver.
Bogstaver skal ikke indeholder tal osv...
Kig evt. lige på ctype.

Men det skal sagtens laves via ajax.
Og du er bestemt på rette vej.

Og du skal huske at indbygge sikkerhed i ajax.php
Og der kan du også smide noget validering på, om begge felter er udfyldt.
Dog kan du lave første validering direkte i javascript, men dette kan omgåes og derfor skal du have server-side validering også.
Avatar billede mcfatty Nybegynder
11. august 2011 - 10:39 #3
Det var jeg også kommet frem til, da jeg forsøgte mig frem. Jeg troede vel egentlig bare at man kunne "skjule" det en smule, så det ikke var nemt for brugeren, at se hvor dataerne blev sendt hen, men at browserne sagtens ville kunne finde ud af det.

Hvis jeg så gerne vil have den til at hente den kommentar, man lige har skrevet, direkte fra databasen, hvordan gøres dette så?
Avatar billede jakobdo Ekspert
11. august 2011 - 10:44 #4
Der er jo flere måder.
En måde kunne være følgende:

ajax kald som gemmer kommentar i db.
Går kaldet godt, så retur den netop indsatte kommentar og indsæt den via js.

Overvej at kig på getjson, så bliver det hele lidt nemmere.
Avatar billede olebole Juniormester
11. august 2011 - 15:35 #5
<ole>

Du kan sagtens "skjule det en smule", men de brugere, du kan gemme noget for, er ikke dem, du skal være bange for. De brugere, der vil være interesseret i at "lave pjatrøv" med dig og din server, kan du ikke skjule noget for.

Det vigtige er - helt som jakobdo skriver - at sikre, du kun tager imod det, du forventer at skulle modtage.

Du skal ikke forsøge at gætte dig frem til "farlige" tegn og udelukke dem. I stedet skal du definere præcist, hvad du vil modtage - og kassere alle forespørgsler, der indeholder andet. Ellers taber du kampen mod fantasifulde hackere, for du kan med overvejende sandsynlighed ikke forudse alt, hvad de kan finde på.

Kik også på mysqli, som er et langt sikrere API til at arbejde mod en MySQL database med. Et eksempel at komme igang med kunne være dette

/mvh
</bole>
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