• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Apache kennt kein if($i=='2'){.....???

MACRASSI

Gelbe Schleswiger Reinette
Registriert
21.11.04
Beiträge
1.754
Hallo!
Ich wollte gerade eben ein Script auf meinem lokalen Webserver ausführen, da merke ich das der Apache (version 2.0.54) meine Funktion/Ifclausel:
PHP:
<?php
echo"Hallo!<br>";

if($page=='install2'){ echo"Das is die Seite 2"; }
?>
nicht ausführen kann.
Er zeigt mir zwar das Hallo!<br> an aber nicht: "Das is die Seite 2".
Und ich habe das Script unter
http://localhost/~Rasmus/install.php?page=install2
aufgerufen.

Kann der Apache das nicht? :-/
Kennt der keine "if" Schleifen?
Weil mein Webserver den ich gehostet hat kann es...
Gruß Rasmus
 
Mach doch mal ein echo auf $page....
 
Hab ich aber er zeigt es mir nicht an...

EDIT: Ich glaub er kommt mit den ?page=2 in der Adresszeile nicht klar...

Gruß Rasmus
 
Ich muss vorausschicken, dass ich k.A. von php hab - ich kann also nur rumstochern.

Wenn er Dir die Variable nicht ausgibt, kennt er sie wahrscheinlich nicht.

Versuch doch mal sowas wie "Vorne " + $page + " Hinten" auszugeben - wenn dabei nur 'Vorne Hinten' rauskommt, kannst Du Dir sicher sein....

Gruß,

.commander
 
MACRASSI schrieb:
Hallo!
Kennt der keine "if" Schleifen?
Hallo!

sorry, aber die rede ist hier von Bedingungen (!= Schleifen). :angry:

du übergibst die Variable als GET-var. Aus Sicherheitsgründen ist der Wert der Variablen so abzurufen:
Code:
$_GET['page']
Post variablen dann so:
Code:
$_POST['key']

oder: du deaktivierst dieses feature und änderst REGISTER_GLOBALS in der php.ini.

c7
 
Ok ich glaube das ich das änder...
Danke für die Hilfe.
Sorry für das **Schleife... ;-)
Gruß Rasmus
PS. Wo finde ich nochmal die php.ini?
 
Zuletzt bearbeitet:
MACRASSI schrieb:
Sorry für das **Schleife... ;-)
8-)

ändern würde ich das nicht. Begründung: Sicherheitsproblem.
zb.:
Code:
if( logged_in ) {
  session_start();
  /**
   * do something
   */
  header( 'Location: adminpanel.php' );
}

es würde in diesem Fall genügen einfach die Variable www.yourdomain.com?logged_in=true zu übergeben... in diesem Fall eine Session starten usw...

Würdest du nur registrierte Variablen erlauben gibt es keine Möglichkeit die Schleife durch URL_Manipulation zu betreten, da man Werte von GET-Variablen nur über das GET-Array, bzw POST-Variablen über das POST-Array (beides über das $_REQUEST-Array) abfragen kann.

c7.
 
Das klingt logisch, aber ich denke nicht das es jetzt so schlimm ist das wenn ich das script nur lokal ausführen möchte oder?
Gruß Rasmus
 
Die register Globals zu aktivieren ist aber kein unwesentliches Sicherheitsrisiko. Sobald du das Script auf einem anderen Server laufen lassen wills wirst du wieder vor dem gleichen Problem stehen da die register Globals in der Regel seit PHP 4.x standardmäßig deaktiviert sind. Also lieber schön die $_GET[] und $_POST[] Arrays nutzen um die Variablen abzufragen.
 
Ich habe mich jetzt entschieden nur noch so zu programmieren weil es einfach viel sicherer ist.
Vielen dank für die Hilfe Rasmus