PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IE + Javascript-Reload Funktion


RMC
2004-08-31, 23:33:14
Ich hab folgendes Problem:

Nachdem der Benutzer einen Datensatz aus einer Ergebnis-Liste ausgewählt hat (die Datensätze wurden zuvor mit einer MySQL Query herausgelesen - ist sowas ähnliches wie eine Suchfunktion), soll er diese bearbeiten können.

Nachdem die Änderung erfolgt ist (update table usw.) möchte ich den Benutzer wieder auf die Liste mit den Datensätzen zurückleiten.

dazu mache ich zweimal history.back(); .. so und jetzt steht er vor der alten Liste, die bringt aber nicht viel, wenn er den Datensatz aktualisiert hat, er soll ja den schon geänderten vorfinden. Also hab ich noch ein location.reload(); drangehängt, damit die Abfrage nochmal durchgeführt wird.

Im IE kommt dazu die Warnmeldung, dass man nochmals die Information sendet blabla..leider ist das sehr unschön, da man dazu auf "Wiederholen" klicken muss.

Gibt es einen Weg wie ich das umgehen kann, sodass nicht auf "Wiederholen" gedrückt werden muss und die Anfrage trotzdem gesendet wird?

Ich weiß auch, dass es noch nen anderen, schöneren Weg gibt (ihn direkt auf das PHP-Skript weiterleiten welches die Abfrage durchführt) aber dazu bräucht ich wieder alle Parameter die bei der Suche eingegeben wurden und das ist seeehr zach. :( Ich wollte das eigentlich so einfach wie möglich machen.

Gibts da was?

Nase
2004-09-01, 00:28:37
Du kannst auch history.back(-2) machen, dann brauchst du das nicht zweimal aufrufen ;).
Aber am schönsten ist es wirklich, auf das PHP-Script weiterzuleiten. Ich weiss nun zwar nicht, wie komplex deine Eingabe ist, aber du könntest doch die Daten an die URL hängen. Per $_SERVER[QUERY_STRING] bekommst du auch direkt den gesamten Query_String, also alles was hinter index.php? steht.

Wanginator
2004-09-01, 15:23:10
denke auch das es das beste ist, wenn du es direkt wieder an dein PHP-script weiterleitest. Alternativ könnte man auch mit SESSIONS arbeiten um die vielen variablen nicht hinter der url mitzuschleppen.

RMC
2004-09-01, 15:45:27
hm also ich hätte ne recht einfache Möglichkeit gefunden, nachher die Einträge wieder anzuzeigen: ich geb einfach den Query-String mit, mit welchen ich bei der Suche vorher zusammengestoppelt habe - so kriegt der User nachher wieder seine Ergebnisse...

aber das ist doch relativ unsicher oder? ;(

Sphinx
2004-09-01, 19:11:07
Ich hab folgendes Problem:
Nachdem die Änderung erfolgt ist (update table usw.) möchte ich den Benutzer wieder auf die Liste mit den Datensätzen zurückleiten.



Also wenn ich dich Richtig verstanden habe...

Admin.Page -> Change sendet alles zum PHP Script -> Du willst jetzt wieder zum Admin.Page

PHP Script welches alles abarbeitet als bsp. und dich an Admin.Page Seite zuückleitet...

echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">';
echo '<head>';

// Dein PHP BEFEHLE die alles Abarbeiten...



// ENDE PHP SCRIPTS...


echo '<meta http-equiv="refresh" content="0 URL=http://';
echo $_SERVER["HTTP_HOST"];
echo '/php/index.php4?checked=';
echo $userstring;
echo '" />';

echo '<title>Das Nightlife Magazin für den Norden</title>';

echo '</head>';
echo '<body>';
echo '<p> </p>';
echo '</body>';
echo '</html>';



Als Beispiel für eine komfortable html weiterleitung...

oder per Java


<script type="text/javascript">
location.replace('/php/index.php4?siteid=loginerror&id=1')
</script>

RMC
2004-09-01, 21:23:00
@Sphinx

das Problem ist:

Ich hab eine Admin-Page, richtig! Der User stellt in der Suchfunktion gewisse Parameter ein (gibt in Textfields was ein usw., Drop-Down Menüs etc), dann wird eine SQL-Query erstellt, abhängig von den Eingaben (zb: wenn der User nach Datum sucht wird das in der Query berücksichtigt usw.).

So...dann erhält er eine Liste mit Ergebnissen, jedes Ergebnis kann er Bearbeiten oder Löschen...angenommen er löscht es (der Link verweist aufs admin-skript.php?loeschen=1) und es wird der Eintrag entfernt. Danach soll er wieder zur Liste zurück geleitet werden, natürlich die NEUE List OHNE dem bereits gelöschten Eintrag.

Ergo muss ich die Query erneut ausführen. Also ruf ich am besten das Skript mit admin-skript.php?suche=1&query=select * from blabla.... auf.

Nur, ist das sinnvoll, wenn ich die Query übergeb? Ich hab da einige Sicherheitsbedenken! Wollte nur wissen ob das vernünftig ist?

Sphinx
2004-09-02, 05:54:23
@Sphinx
Ergo muss ich die Query erneut ausführen. Also ruf ich am besten das Skript mit admin-skript.php?suche=1&query=select * from blabla.... auf.

Nur, ist das sinnvoll, wenn ich die Query übergeb? Ich hab da einige Sicherheitsbedenken! Wollte nur wissen ob das vernünftig ist?

Sicherheitsbedenken : Ja immer denn DU entscheidest wer es nutzen darf...

Lösung für meine Admin Scripts : Gültiges Cookies (Eingelogter Admin) welches beim richtigen Login erstellt wird -> Darf dann diese Scripts ausführen...

-----

Edit : Versteh ich es richtig das du das SQL Query (Also: SELECT * FROM xyz WHERE) per URL weiterleitest/weiterleiten möchtest ?...

Das währe nicht sinnvoll...

Da arbeite ich die Scripte mit Bsp.: &option=edit&id=3 und setze in die vorgefertigte mySQL Anweisung die benötigten Angaben per $_GET ein - hier lese WHERE id=3 aus und edit übernehme die Sachen in Die Eingabemaske zum Editieren...

Bsp. für such Anfragen würde ich mir per if-anweisungen innerhalb des Scriptes zusammenschustern und nicht per URL übermitteln (die komplette SQL Anweisung)...

RMC
2004-09-02, 12:29:12
Versteh ich es richtig das du das SQL Query (Also: SELECT * FROM xyz WHERE) per URL weiterleitest/weiterleiten möchtest ?...


Vorgesehen war es so.

Das währe nicht sinnvoll...

ja, die zweite Möglichkeit wäre, die ganzen Attribute aus der Suchmaske zu übergeben (&arg1=x&arg2=y...) und dann die Suchfunktion erneut ausführen, denn der Ablauf ist ja derselbe.

Ich könnte den Adminbereich noch extra mit Sessions sichern, aber der Bereich ist eh schon mit einem Passwort versehen, also ich hoffe dass das reicht.

Sphinx
2004-09-02, 13:26:20
Vorgesehen war es so.
Ich könnte den Adminbereich noch extra mit Sessions sichern, aber der Bereich ist eh schon mit einem Passwort versehen, also ich hoffe dass das reicht.

Wenn diese Bereiche mit einer .htaccess geschützt sinds - sollte es reichen.

Aber diese generierten SQL-Anweisungen würde ich auf ein minimum reduzieren welche über die Url vermittelbar währen. Da man sonstige Befehle ausführen lassen könnte...

RMC
2004-09-02, 22:36:56
Wenn diese Bereiche mit einer .htaccess geschützt sinds - sollte es reichen.

Aber diese generierten SQL-Anweisungen würde ich auf ein minimum reduzieren welche über die Url vermittelbar währen. Da man sonstige Befehle ausführen lassen könnte...

gut...ich werd die Attributswerte einzelnd übergeben, ist etwas mehr Aufwand aber dafür ist es dann "sicherer" und auf jeden Fall "schöner".