| 

.NET C# Java Javascript Exception

2
Hallo Leute,
ich bin gerade dabei ein Projekt umzusetzen und würde ungern auf AJAX verzichten. Ich habe die funktionalität bereits bei anderen Projekten gesehen und bin begeistert! Villeicht kann mir jemand einen Tipp geben wie ich dies umsetzen kann.
1. Schritt Contentloading:
Schnippsel aus "functions.php"
//Seitenwechsel
if(isset($_GET['site'])) $site=$_GET['site'];
else $site= null;

Schnippsel aus "index.php"
<?php
include_once("functions.php");
?>
</head>
<body>
<?php
if(!isset($site)) $site="startseite";
$invalidchars = array('\','/','/\/',':','.');
$site= str_replace($invalidchars,' ',$site);
if(!file_exists($site.".php")) $site = "startseite";
include($site.".php");
?>

So sieht mein Link aus:
index.php?site=startseite


Hat jemand einen Plan, wie ich das mit AJAX asynchron laden könnte? Und wie könnte ich meine SQL Abfragen asynchron laden? Passiert das nicht wenn ich meinen Content asynchron lade?

Für jeden Tipp bin ich dankbar.

Grüße und danke

Spicejam
11.08.2011
spicejam 853 2 6
2 Antworten
1
Wie das mit AJAX funktioniert, kann ich Dir leider nicht beantworten, Dein Sicherheitskonzept funktioniert aber nicht. Dein Script würde glatt das hier zulassen:
index.php?site=%2Fetc%2Fpasswd%00
(Ich weiss, dürfte mittlerweile bei den wenigstens WebServern funktionieren, solle nur zum Nachdenken anregen.)
Anstelle einer Blacklist wäre eine Whitelist hier wesentlich besser.
11.08.2011
Jaksa 4,0k 1 8
Jaksa 4,0k 1 8
Hiho, da stimme ich dir soweit voll und ganz zu. Allerdings ist das nicht mein Konzept sondern etwas ähnliches aus einem anderen Projekt "FunProjekt". Aber super das du mitgedacht hast :-) Das mit der Whitelist ist eine gute Idee für jegliche Art von Seiten :)
spicejam 12.08.2011
1
Also was Deine SQL Sachen angeht, die werden ausgeführt, wenn Du die entsprechende PHP aufrufst, bzw. xAjax-Function - sofern Du es mit xAjax machst.

Wenn Du es mit jQuery machen willst, sähe das ungefähr so aus:
Minimalbeispiel:
<html>
<head>
<title>test</title>
<script ... für jQuery include ...></script>
<script type="text/javascript">
function lade_seite(input) {
$.get('index.php', {site:input}, function(data) {
$('#ausgabe').html(data);
});
}
</script>
</head>
<body>
<a href="javascript:void(0);" onclick="lade_seite('startseite');">startseite</a><br />
<div id="ausgabe"></div>
</body>
</html>


Bei xAjax wärs ein bißchen anders:
Minimalbeispiel:
<?php

include_once('functions.php');

dann das was in der index.php steht.
möglichst so das man es als function aufrufen kann.
oder als methode einer klasse oder so.

function lade_seite($input) {
$response = new xajaxResponse();
$result = die_function_die_zurückgibt_was_die_indexphp_sonst_ausgegeben_hätte($input);
$response->assign('ausgabe', 'innerHTML', $result);
return $response;
}

... xajax include ...

$xajax = new xajax();
$xajax->register(XAJAX_FUNCTION, 'lade_seite');
$xajax->processRequest();

?>
<html>
<head>
<title>test</title>
<?php $xajax->printJavascript(); ?>
</head>
<body>
<a href="javascript:void(0);" onclick="xajax_lade_seite('startseite');">startseite</a><br />
<div id="ausgabe"></div>
</body>
</html>


Disclaimer:
Ist jetzt aus dem Kopf gecodet, also keine Garantie, aber theoretisch läuft es so.
Ein bißchen wirst Du Dich mit Ajax schon selbst beschäftigen müssen, den Ansatz hast Du jetzt.
12.08.2011
lunatigs 1,3k 2 8
Ein Traum vielen Dank! Ich habs gestern parallel nach ca. 6 Stunden auf ähnliche Art und weise lösen können(jQuery). Ich gebe aufjedenfall zu, das dein Code viel sauberer und strukturierter ist als meiner, den ich da zusammen geschustert habe :) DANKE!
spicejam 12.08.2011

Stelle deine Javascript-Frage jetzt!