waarom werkt ajax niet
Op 1 of andere manier werkt de onderstaande ajax niet. heb het al eens een keer aan de hand gehad. Heeft iemand een idee wat er hier fout gaat?
onderstaande save-content.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
var code = "test";
var paginanaam = "pagina1";
$.ajax({
url: 'save-content.php',
type: 'post',
data: {code:code,paginanaam:paginanaam},
datatype: 'html',
success: function(rsp){
location.reload();
alert("ajax uitgevoerd;");
}
});
var code = "test";
var paginanaam = "pagina1";
$.ajax({
url: 'save-content.php',
type: 'post',
data: {code:code,paginanaam:paginanaam},
datatype: 'html',
success: function(rsp){
location.reload();
alert("ajax uitgevoerd;");
}
});
onderstaande save-content.php
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$paginanaam = trim( $_REQUEST['paginanaam'] );
$code = $conn->real_escape_string($_REQUEST['code'] );
?>
$paginanaam = trim( $_REQUEST['paginanaam'] );
$code = $conn->real_escape_string($_REQUEST['code'] );
?>
Gewijzigd op 24/04/2024 20:39:38 door - Ariën -
Waaruit blijkt dat het niet wordt ingeladen? Wat zegt de developer console van je browser?
hoi arien. goede vraag. in het php bestand wordt de inhoud namelijk naar een bestand geschreven. althans dat zou het moeten doen. Maar dat gebeurd niet. daarom ga ik er vanuit dat er iets is gaan in ajax. onderstaande de gehele php code. vreemde is dat alle script op een andere pagina het wel doen. geen probleem wat het probleem kan veroorzaken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
?php
$paginanaam = trim( $_REQUEST['paginanaam'] );
$code = $conn->real_escape_string($_REQUEST['code'] );
$myFile = "import-database.php"; // or .php
$fh = fopen($myFile, 'w'); // or die("error");
fwrite($fh, $code);
fclose($fh);
?>
$paginanaam = trim( $_REQUEST['paginanaam'] );
$code = $conn->real_escape_string($_REQUEST['code'] );
$myFile = "import-database.php"; // or .php
$fh = fopen($myFile, 'w'); // or die("error");
fwrite($fh, $code);
fclose($fh);
?>
Waarom gebruik je real_escape_string? Denk je dat de filehandler van PHP opeens zich identificeert als een MySQLi-adapter? :-P
En wat meldt je developer console in de Netwerk-tab over je request?
En wat meldt je developer console in de Netwerk-tab over je request?
Gewijzigd op 24/04/2024 20:50:43 door - Ariën -
nou dat was een tip. normaal wordt er gehele html code in de variable opgeslagen etc.
Toevoeging op 24/04/2024 20:57:31:
en zonder escape_string ging dat wel eens fout. vandaar.
Toevoeging op 24/04/2024 20:57:31:
en zonder escape_string ging dat wel eens fout. vandaar.
Lees eens goed wat mysqli_real_escape_string doet, en vel opnieuw een oordeel. ;-)
Waar kont $conn trouwens vandaan?
Je doet een post maar controleert niet of er gePOST wordt. Je controleerd ook niet of de paginanaam wel is gePOST
Je doet een post maar controleert niet of er gePOST wordt. Je controleerd ook niet of de paginanaam wel is gePOST
Code (php)
Gewijzigd op 25/04/2024 07:11:42 door Jan R
hoi arien.
elke pagina heeft een uniek nummer. deze is opgeslagen in de variable paginanaam. vandaar deze variable.
Maar even dat terzijde. bedankt voor je code. het werkt inderdaad nu. wat ik zo vreemd vind is dat dezelfde code wel werkt op een andere plek. Zal de code daar ook vervangen door die van jou. zoal ik kan lezen zorgt real escape string voor o.a. het weghalen van onnodige karakters in de content toch? ik sla namelijk html en pho code op in de variable. is trim dan de functie die ervoor zorgt dat de alles ook wordt meegenomen?
elke pagina heeft een uniek nummer. deze is opgeslagen in de variable paginanaam. vandaar deze variable.
Maar even dat terzijde. bedankt voor je code. het werkt inderdaad nu. wat ik zo vreemd vind is dat dezelfde code wel werkt op een andere plek. Zal de code daar ook vervangen door die van jou. zoal ik kan lezen zorgt real escape string voor o.a. het weghalen van onnodige karakters in de content toch? ik sla namelijk html en pho code op in de variable. is trim dan de functie die ervoor zorgt dat de alles ook wordt meegenomen?
Vanuit PHP.net over de mysqli_real_escape_string() functie.
Ik zie dat je niks in dit stukje code met MySQLi doet. Dus deze functie is onnodig.
Als je HTML onschadelijk wilt maken:
htmlentities of htmlspecialchars
Als je HTML wilt strippen:
strip_tags
Maar normaal doe je dat bij de uitvoer. Je wilt het niet graag gestript of vermangeld opslaan.
Als je overtollige spatie's aan het begin en/of eind van een string wilt verwijderen:
trim
Bekijk anders op php.net de String Functions.
Quote:
Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection.
Ik zie dat je niks in dit stukje code met MySQLi doet. Dus deze functie is onnodig.
Als je HTML onschadelijk wilt maken:
htmlentities of htmlspecialchars
Als je HTML wilt strippen:
strip_tags
Maar normaal doe je dat bij de uitvoer. Je wilt het niet graag gestript of vermangeld opslaan.
Als je overtollige spatie's aan het begin en/of eind van een string wilt verwijderen:
trim
Bekijk anders op php.net de String Functions.
Gewijzigd op 25/04/2024 12:40:42 door - Ariën -
hoi arien. bedankt voor de toelichting.
Kleine kanttekening nog ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
var code = 'test'
var paginanaam = 'pagina1'
$.ajax({
url: 'save-content.php',
type: 'post',
data: { code: code, paginanaam: paginanaam },
datatype: 'html',
success: function (rsp) {
location.reload() // door deze call wordt je pagina opnieuw geladen
alert('ajax uitgevoerd') // dus dit statement heeft geen zin ;-)
},
})
var paginanaam = 'pagina1'
$.ajax({
url: 'save-content.php',
type: 'post',
data: { code: code, paginanaam: paginanaam },
datatype: 'html',
success: function (rsp) {
location.reload() // door deze call wordt je pagina opnieuw geladen
alert('ajax uitgevoerd') // dus dit statement heeft geen zin ;-)
},
})
Scherp, Jan ;-)
jan bedsankt voor je bijdrage. Wat is er precies anders als ik vragen mag?
Wat extra commentaar.




