INSERT INTO met Javascript

Status
Niet open voor verdere reacties.

Strega

Gebruiker
Lid geworden
31 aug 2009
Berichten
8
Hallo,

Ik zou graag een script hebben dat wanneer er iemand een veld invult en dan op submit drukt dat zijn ingegeven woord(en) van dat veld rechtstreeks in een MySQL database word(en) geplaatst.
Ik weet dat dit mogelijk is want facebook maakt daar ook gebruik van bij bijvoorbeeld het "waar denk je aan" gedeelte.
Als je daar op Delen drukt wordt het ook al in een database geplaatst maar ga je toch niet naar een andere pagina.

Enig idee hoe je dit moet doen?

Groeten, Strega
 
het magische google-zoekwoord dat je zoekt is 'AJAX'; je roept dan een php script aan, bv. zo:
[JS]$filetocall = 'database.php?q=SELECT x FROM y WHERE z=z';

// je ajax script dat bestand$filetocall aanroept[/JS]


:thumb:
 
Dag Vegras :D

Bedankt voor je antwoordt :p
Dit is wat ik nu heb, het werkt als ik deze regel weglaat.
PHP:
if(!isset($_SESSION['logged_in']) || ($_SESSION['logged_level'] < 9)) die('U hebt geen toegang tot deze pagina.');

Maar als ik die weglaat in dat php script, dan kan zomaar iedereen iets toevoegen, en dat is ook niet echt de bedoeling.
Is dat op te lossen?

insertInstrument.php
PHP:
<?php
if(!isset($_SESSION['logged_in']) || ($_SESSION['logged_level'] < 9)) die('U hebt geen toegang tot deze pagina.');
include('../inc/db.php');

$qry	=	"INSERT INTO instrumenten (instrument) VALUES ('".$_GET["q"]."')";
$res	=	mysql_query($qry);
?>


Groeten, Strega
 
Laatst bewerkt:
[JS]function GetXmlHttpObject() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}else if (window.ActiveXObject) {
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}else{
return null;
}
}[/JS]een 'else' is hier logischer.


nu, als het goed is, moet dit werken. Zo niet, check eerst eens of je php pagina zowiezo wel wordt aangeroepen (is het mischien een query error?)
 
Alles werkt nu, maar ik moet een manier vinden om het php script te beveiligen zodat niemand zomaar een insert kan doen.
Enig idee hoe?

Groeten, Strega
 
Tsja, dat ligt eraan wie er wel en niet bij mag. Omdat JS-beveiliging gewoon te omzeilen valt, kan je alleen aan de server-kant (php dus) iets verzinnen.
 
Alles werkt nu, maar ik moet een manier vinden om het php script te beveiligen zodat niemand zomaar een insert kan doen.
Enig idee hoe?

Groeten, Strega

Een eerste is om -voor de veiligheid- de input aan de server side middels een prepared statement in te voeren. Het aanmaken van mySQL statements op de database server zijn waarschijnlijk geen optie, maar PHP ondersteunt het maken van prepared statements in bijvoorbeeld de PDO module.

Een AJAX request is niet anders dan een standaard HTTP Request en je kunt dus evengoed een authorisatie mechanisme maken met behulp van cookies of sessions.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan