PHP: wert einer leeren variable - syntax?

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_wert_einer_leeren_variable_syntax_151776/page_1 - zur Vollversion wechseln!


syphiliz schrieb am 28.10.2005 um 23:13

ich möchte beim aufrufen der datei "index.php" gerne die variable $cont übergeben. diese bestimmt dann den inhalt der angezeigt wird. wird kein wert für $cont übergeben, so möchte ich, dass $cont="home"...jetzt meine frage:

wie sieht $cont aus, wenn nix drinnen ist. zur erklärung:


index.php?cont=news -> $cont= news

index.php -> $cont= "nix"

meine index.php sollte dann etwa so aussehen:

<?php
if ($cont=?) {
$cont="home";
}

include ("$cont.php");
?>

was muss statt dem ? hin, damit, wenn index.php ohne parameter aufgerufen wird, $cont gleich home ist?

tia und sry für die blöde newbie frage
syph


mat schrieb am 28.10.2005 um 23:14

Code: PHP
if (!isset($cont))
   $cont = "home";
für deine frage gibts btw mehrere lösungen.. auch empty() wäre hier möglich.


syphiliz schrieb am 28.10.2005 um 23:17

thx!


moidaschl schrieb am 29.10.2005 um 02:25

alternativ kannst du natürlich auch emtpy() verwenden, hat hald ein bissl andere eigenschaften

"" -> leer
1 -> nicht leer
0 -> nicht leer

bei isset wäre 0 auch nicht gesetzt


mat schrieb am 29.10.2005 um 08:59

nein.. bei NULL wäre isset() false.. find ich zwar nicht praktikabel, muss man aber hinnehmen :(


watchout schrieb am 06.11.2005 um 09:10

inwiefern ist das nicht praktikabel? Was möchtest du sonst mit isset() erreichen?


semteX schrieb am 06.11.2005 um 10:17

Zitat von syphiliz
ich möchte beim aufrufen der datei "index.php" gerne die variable $cont übergeben. diese bestimmt dann den inhalt der angezeigt wird. wird kein wert für $cont übergeben, so möchte ich, dass $cont="home"...jetzt meine frage:

wie sieht $cont aus, wenn nix drinnen ist. zur erklärung:


index.php?cont=news -> $cont= news

index.php -> $cont= "nix"

meine index.php sollte dann etwa so aussehen:

<?php
if ($cont=?) {
$cont="home";
}

include ("$cont.php");
?>

was muss statt dem ? hin, damit, wenn index.php ohne parameter aufgerufen wird, $cont gleich home ist?

tia und sry für die blöde newbie frage
syph
ich möchte dich darauf hinweisen, dass du bei SO ner (nicht) überprüfung die tür ganz ganz weit auf machst...

oder was hindert mich das zu tun?:

http://www.blahr.at/index.php?cont=...h4x0r/h4xscript


that schrieb am 06.11.2005 um 11:16

PHP Include erlaubt HTTP? :eek:


jives schrieb am 06.11.2005 um 12:07

Sure. http://at.php.net/manual/en/function.include.php


syphiliz schrieb am 06.11.2005 um 12:37

Zitat von semteX
ich möchte dich darauf hinweisen, dass du bei SO ner (nicht) überprüfung die tür ganz ganz weit auf machst...

oder was hindert mich das zu tun?:

http://www.blahr.at/index.php?cont=...h4x0r/h4xscript

thx, gut zu wissen.

Code:
include ("./$cont.php");

löst aber das problem, oder?


semteX schrieb am 06.11.2005 um 12:41

jo.. wesentlich besser. Noch gscheiter wär du würdest den ganzen Pfad angeben (schau dir mal die $_SERVER variablen an, da sollt was für dich dabei sein).. und anschließend noch ne überprüfung machn ob eh keine .. , . , /, .. vorkommen (verhindert, dass er lustig alles includet was bei dir irgendwo am webserver liegt...

Edit: beste idee: 1 post unter mir (nicht drauf gedacht)

Wennst natürlich ganz sicher gehen willst dann musst dein $cont durch nen check (mit regexp) schicken, ob der string keine /, kein www, kein ., kein .. etc enthält.... aber bei den regular expressions bin ich auf jedenfall der falsche Ansprechpartner :)



@that: php ist da wenig anspruchsvoll... das includet alles was irgendwie lesbar ist...


kleinerChemiker schrieb am 06.11.2005 um 12:43

damit kann er noch immer alles im dir bzw. in den subdirs includen. am besten ein array machen, indem die möglichen werte drinnen sind und dann überprüfen, ob es im array ist. oder gleich dann nur den jeweiligen index des arrays verwenden (?cont=3)

hth

MIK


that schrieb am 06.11.2005 um 12:45

Zitat von syphiliz
thx, gut zu wissen.

Code:
include ("./$cont.php");

löst aber das problem, oder?

Vorsicht ist geboten auch bei Vorkommen von "..", oder $cont == "index" :)


syphiliz schrieb am 06.11.2005 um 12:49

thx @ all

wie wahrscheinlich aus der art der fragestellung ersichtlich wird, tümpel ich mit meinem php skills noch sehr am anfang rum. deshalb hab ich momentan noch mehr probleme mit dem synthax als mit der denke :)

sollte ich mal eine site öffentlich zugägnlich machen sind absolute pfadangaben wahscheinlich für den anfang die einfachste alternative...

edit:

Zitat
$cont == "index"

bevor ichs jetzt ausprobier :) :
geh ich richtig in der annahme, dass ich damit den server in eine fatale endlosschleife schieß?


semteX schrieb am 06.11.2005 um 12:52

Zitat von syphiliz
thx @ all

wie wahrscheinlich aus der art der fragestellung ersichtlich wird, tümpel ich mit meinem php skills noch sehr am anfang rum. deshalb hab ich momentan noch mehr probleme mit dem synthax als mit der denke :)

sollte ich mal eine site öffentlich zugägnlich machen sind absolute pfadangaben wahscheinlich für den anfang die einfachste alternative...
jo... variablen in "include" pfadangaben etc sind oft ein ziemliches risiko... darum entweder vermeiden oder wirklich ordentlich und komplett durchchecken. (da gabs ja vor ned allzu langer zeit nen wurm der fehlende valid - checks bei includes ausgenützt hat und php server geowned hat..)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026