Alternative zu $_GET

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Alternative zu $_GET

Beitrag von Martin Truckenbrodt »

Hallo,
ich bin gerade dabei meinen PHPMN phpBB Connector MOD zertifizieren zu lassen.

Als einer von zwei Punkten wurde bemängelt, dass ich $_GET (zu häufig) verwende.
Beispiel phpmn.php:

Code: Alles auswählen

...
$id = quote_smart($_GET['id']);
$topical = quote_smart($_GET['topical']);
$do = quote_smart($_GET['do']);
$edit = quote_smart($_GET['edit']);
...
und phpmn.tpl:

Code: Alles auswählen

...
	<form method="get" action="phpmn.php">
	<tr>
		<td class="row3" colspan="2" align="center">
			<b>{L_PHPMN_HTML}:</b>&nbsp;<input type="radio" name="do" value="html">&nbsp; - &nbsp;
			<b>{L_PHPMN_PLAIN}:</b>&nbsp;<input type="radio" name="do" value="plain">&nbsp; - &nbsp;
			<b>{L_PHPMN_UNSUBSCRIBE}:</b>&nbsp;<input type="radio" name="do" value="unsubscribe">
		</td>
	</tr>
	<tr>
		<td class="row3" colspan="2" align="center">
			<input type="submit" accesskey="s" name="post" class="mainoption" value="{L_PHPMN_SEND}">&nbsp;&nbsp;
			<input type="reset" accesskey="r" class="mainoption" value="{L_PHPMN_RESET}">
		</td>
	</tr>
		<input type="hidden" name="edit" value="do">
		<input type="hidden" name="id" value="{action.ID}">
		<input type="hidden" name="topical" value="{action.TOPICAL}">
	</form>
...
Wie mache ich das anders bzw. besser bzw. konform?

Danke und Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Wo's geht, solltest du auf $_POST ausweichen...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
hostpalace

Beitrag von hostpalace »

Mann könnte das $_GET oder $_POST auch weglassen (z.B. nur $id), ob's funktioniert, ist serverabhängig.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5387
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

hostpalace hat geschrieben:Mann könnte das $_GET oder $_POST auch weglassen (z.B. nur $id), ob's funktioniert, ist serverabhängig.
Das wäre die unsicherste und schlechteste Methode.
Besser in den PHP Einstellungen register_globals = off schalten und sauber programmieren. Dann gibts auch kein Gejammer, wenn das Forum gehacht wurde ;)
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
muß ich bei meinen obigen Codeschnipseln nur $_GET gegen $_POST austauschen und die method="post" setzen?

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Martin Truckenbrodt hat geschrieben:Hallo,
muß ich bei meinen obigen Codeschnipseln nur $_GET gegen $_POST austauschen und die method="post" setzen?

Gruß Martin
Im Grunde genommen, ja
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

hostpalace hat geschrieben:Mann könnte das $_GET oder $_POST auch weglassen (z.B. nur $id), ob's funktioniert, ist serverabhängig.
Und selbst in der tollen php.ini ist ein Comment erhalten, dass register_globals off bleiben soll damit es auch der letzte Anfänger sich nicht potenziellen Gefahren aussetzt......

Generell werden meine Formulare mittels method post versendet es sei denn, dass es aus besonderen Soll-Zustand Anforderungen dies unmittelbar erforderlich ist......
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo Blutgerinsel und alle anderen,
hat sich erledigt: http://www.phpbb.de/viewtopic.php?t=98047

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Als Faustregel kann man sagen, alle Formulare die etwas "machen" (Kommentar verfassen, Newsletter anmelden, Benutzer registrieren, an Umfrage teilnehmen, ...) sollten per POST realisiert werden, weil es i.d.R. keinen Sinn macht (und bei Passwörtern o.ä. sogar vermieden werden soll), daß daraus entstandene URLs in Logs, Suchmaschinen, Foren etc. auftauchen. Formulare, die etwas "anzeigen" (Suchmaschine, Jumpbox bei phpBB, Bugtracker Funktion "Zeige Bug Nr. X", ...) sollten per GET realisiert werden, damit man die URLs einfacher weitergeben kann.

Was natürlich auch wichtig ist, ist Formulare als Formulare zu implementieren und Links als Links. Vermeiden sollte man also z.B. "Dropdownmenüs" mit <select>, weil Suchmaschinen keine Formulare abschicken (um nicht ungewollt Aktionen wie das Abstimmen in Umfragen auszulösen) und somit auch die über solche Menüs erreichbare Seiten nicht finden (bei Javascript erst recht nicht). Aus dem gleichen Grund sollte man auch keine Aktionen wie das Eintragen/Löschen von Daten oder verschicken von Kontakt-Emails über einfache <a href> Links zugänglich machen - nicht daß einen Suchmaschinen durch das bloße aufrufen dieser Seiten zumüllen :roll: .
KB:knigge
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo Pyramide,
Deine Worte machen mich als PHP Programmier Anfänger natürlich nachdenklich.

Könntest Du Dir das Skript unter http://www.martin-truckenbrodt.com/cgi/phpBB2/phpmn.php mal anschauen und ein bißchen rumklicken.

Als nicht eingeloggter (bzw. nicht registrierter) Besucher kann man IMO keine Daten verändern.
Oder siehst Du hier konkreten Handlungsbedarf, den ich als Neuling nicht erkenne?

Bin froh über jede konstruktive Kritik!

Nachtrag:
Ich habe gerade das neue Release online gestellt. Link siehe Signatur.

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Antworten

Zurück zu „Coding & Technik“