Antworten auf deine Fragen:
Neues Thema erstellen

PHP Problem Variable setzen

Jazo

Nicht mehr ganz neu hier

Ich möchte meine Variable $type über den Url setzen können! Nur ich will das wenn $type nicht gesetzt wurde bzw leer ist, das $type = htm gesetzt wird...

Was ich bis jetz hab:

PHP:
$type = $_GET[type];
if (!empty($type)) $type == "htm" ;
echo $type;

Ich hoffe ihr versteht mein Prob und könnt mir helfen :D

Danke schon einmal im Vorraus
LG
Jazo
 

exo

Aktives Mitglied

AW: PHP Problem Variable setzen

versuchs mal anstatt mit empty folgendermaßen:
PHP:
isset($_GET['type']) ? $type = $_GET['type'] : $type = "htm";

das ist übrigens die kurzversion für eine einfache if-schleife,
ausgeschrieben wäre es so:

PHP:
if(isset($_GET['type']){
  $type = $_GET['type'];
}else{
  $type = "htm";
}
 

Jazo

Nicht mehr ganz neu hier

AW: PHP Problem Variable setzen

Ok danke für die Antwort aber i-wie will das doch nicht so :(

Habs jetz so geamcht:

PHP:
if (isset($_GET['type'])) $type = $_GET['type'];
else $type = "htm";

I-wo is immer noch der Wurm drin :(
 

saila

Moderatorle

AW: PHP Problem Variable setzen

Bei diesem Ansatz fehlt zwar bei $_GET[type] jeweils 'type'
PHP:
$type = $_GET[type];
if (!empty($type)) $type == "htm" ;
echo $type;
führt aber dazu, dass empty also keinen Wert hat. Danach weist du der Variablen per == den Wert zu.
Dieses vorgehen ist aber neutralisierend. Sprich durch die Operatoren wird die Zuweisung aufgehoben.

Korrekt wäre:
PHP:
/* prüfe ob $_GET['type'] vorhanden */
$type = isset($_GET['type']);
/* ist $type belegt - wenn nein, dann weise htm zu */
if(empty($type)) { 
    $type = "htm"; 
}
echo $type;
 

Jazo

Nicht mehr ganz neu hier

AW: PHP Problem Variable setzen

So habs jetz selber gaschafft :D Zwar nen bischen Umständlich aber jetz kann ich meine Homepage und die Einzelnen Seiten nur über den URL Navigieren!

Alles mit den Variablen $folder, $site und $type...

Hier mal meine ganzes Script:

PHP:
<?php 
 
        $site = $_GET[site];
        $folder = $_GET[folder];
        $type = $_GET[type];
 
        if (isset($folder)) $folder2 = $folder."/";
 
        if (isset($type)) $type2 = ".".$type ;
        elseif (!isset($type)) $type2 = ".htm";
 
        if (!file_exists ("pages/".$folder2.$site.$type2)) include ("error-report/error.htm") ;
          elseif (isset($site)) include ("pages/".$folder2.$site.$type2);
          elseif (!isset ($site)) include ("pages/home.htm") ;
         else include ("pages/home.htm") ; 
 
        echo "pages/".$folder2.$site.$type2 ;
 
 ?>
 

r3nt5ch3r

~ Allround pG ~

AW: PHP Problem Variable setzen

Schonmal überlegt dass man mit den 3 Variablen alles Includen kann was auf deinem Webspace liegt?! xD

-> Lösung: mit Regex prüfen ob diese 3 Variablen nur aus a-z0-9 bestehen!!!
 
Zuletzt bearbeitet:

Jazo

Nicht mehr ganz neu hier

AW: PHP Problem Variable setzen

Hää wie soll man denn alle Dateien mit den Variablen auf meiner Seite includen ??
 

saila

Moderatorle

AW: PHP Problem Variable setzen

Irgendetwas ist wohl immer trendy. Aktuell wohl regex, weil nun einige immer mehr verstehen, was oder wie das eigentl. funktioniert :)
 

r3nt5ch3r

~ Allround pG ~

AW: PHP Problem Variable setzen

Bringt aber herzlich wenig. Selbst die Dateiendung inc, php usw. wären gültig, da als 'type' per Get übermittelt, es ei denn die liegen in nem anderen Verzeichnis, oder?
Ich ging mal davon aus, dass in dem Ordner "pages" nur Dateien liegen, die auch includet werden dürfen. (z.B.: ".." sollte verboten werden, damit man nicht auf ne höheren Ordner zugreifen kann)

Hää wie soll man denn alle Dateien mit den Variablen auf meiner Seite includen ??
zB: Aufruf "?folder=../../irgendeinOrdner&site=.../irgendneDatei&type=irgendneEndung"

Irgendetwas ist wohl immer trendy. Aktuell wohl regex, weil nun einige immer mehr verstehen, was oder wie das eigentl. funktioniert :)
Hmm ich wüsste nicht wie man das ansonst prüfen sollte^^
 

Jazo

Nicht mehr ganz neu hier

AW: PHP Problem Variable setzen

Ok und wie geht das genau ?? das ich ".." in der variable sperre?? Gibts da ne erklährung zu??
 

r3nt5ch3r

~ Allround pG ~

AW: PHP Problem Variable setzen

> Lösung: mit Regex prüfen ob diese 3 Variablen nur aus a-z0-9 bestehen!!!
das mit dem ".." war nur ein Beispiel (das hoffentlich deinen Sinn für die Sicherheit geschärft hat^^)

PHP:
if (!preg_match('/^[a-z0-9_]+$/i', $site)) {
  //böse
}
natürlich für alle 3 Variablen machen^^
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: PHP Problem Variable setzen

Ist es nicht etwas überzogen, einem "Anfänger" direkt regex unterjubeln zu wollen - zumal es nocht nicht einmal erforderlich wäre/ist?!
 

r3nt5ch3r

~ Allround pG ~

AW: PHP Problem Variable setzen

Ist es nicht etwas überzogen, einem "Anfänger" direkt regex unterjubeln zu wollen - zumal es nocht nicht einmal erforderlich wäre/ist?!
Hast du eine andere/bessere Lösung? Wieso ist es nicht erforderlich?!
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW: PHP Problem Variable setzen

Hast du eine andere/bessere Lösung?

Vorschlag: Sich auf eine Dateiendung beschränken, Ordner und Dateinamen durchnummerieren, entsprechende Parameter/Variablen auf Gültigkeit (in dem Fall; ist Zahl) prüfen, ggf. alle Dateien/Ordner in ein Verzeichnis rein welches im Script auch fest vorgegeben ist.
 

r3nt5ch3r

~ Allround pG ~

AW: PHP Problem Variable setzen

Sich auf eine Dateiendung beschränken
Stimmt, eigentlich macht nur .PHP Sinn. (aber in der Version von sind auch .HTM Dateien)

Ordner und Dateinamen durchnummerieren
Nicht wirklich schön und dynamisch (beim Anlegen einer Datei muss zusätzlich eine Nummer generiert werden?!) Was passiert beim Löschen dieser Seite? Muss man sie dann wieder per Hand entfernen?!

entsprechende Parameter/Variablen auf Gültigkeit (in dem Fall; ist Zahl) prüfen
ob nun "ist Zahl" oder ist "a-z0-9_" ist nun fast egal...

ggf. alle Dateien/Ordner in ein Verzeichnis rein welches im Script auch fest vorgegeben ist

Gibt Sinn, aber nicht wenn man meint, dass Seiten in Unterordnern "gegliedert" werden müssen^^
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW: PHP Problem Variable setzen

Stimmt, eigentlich macht nur .PHP Sinn. (aber in der Version von sind auch .HTM Dateien)
Habe ich mitbekommen, meinte eigentlich, dass man sich da auch schon vorher Gedanken machen sollte.

Nicht wirklich schön und dynamisch (beim Anlegen einer Datei muss zusätzlich eine Nummer generiert werden?!) Was passiert beim Löschen dieser Seite? Muss man sie dann wieder per Hand entfernen?!
Aha... man kann also nicht nachschauen welche die zuletzt angelegte Datei mit der höchsten Nummer ist und eins dazu zählen?
OK, ergänzend sollte man vielleicht noch Prüfen ob die Datei auch existiert (Was aber eigentlich in allen bisherigen Vorschlägen Sinn macht). Per Hand entfernen, braucht man bei dieser Variante ebenso wenig wie bei der ursprünglichen.
ob nun "ist Zahl" oder ist "a-z0-9_" ist nun fast egal...
Womit man wieder beim Regex wäre :rolleyes:
Verzeichnis der Seiten ist doch "pages"?
Jaha, ich kann lesen; der Vollständigkeit wegen.
 

saila

Moderatorle

AW: PHP Problem Variable setzen

Hast du eine andere/bessere Lösung? Wieso ist es nicht erforderlich?!

Wieso sollte man ständig irgendwelche besseren Vorschläge unterbreiten, wenn doch die Lösung (für den Fragesteller) vorhanden ist.

In diesem Forum habe ich eines gelernt: Lasse den Leuten deren Codingstil und versuche nicht ständig diesen zu verbessern oder irgendetwas unterzujubeln, was evtl. den Fragesteller überfordert - oder ihn gar nicht interessiert.

Eine Ausnahme gibt es allerdings - wenn der Code des Fragestellers schon ansich grenzwertig ist - dann kann man berechtigt mekern :)

In diesem Sinne auch kein besserer oder anderer oder gar komplexerer Vorschlag.
 

Jazo

Nicht mehr ganz neu hier

AW: PHP Problem Variable setzen

In diesem Forum habe ich eines gelernt: Lasse den Leuten deren Codingstil und versuche nicht ständig diesen zu verbessern oder irgendetwas unterzujubeln, was evtl. den Fragesteller überfordert - oder ihn gar nicht interessiert.

Richtig so und deswegen lassen wir den ganzen Quatsch auch und machen es so wie ich es jetzt habe denn "Es funktioniert ja!!"

Nochmal vielen Dank an alle die sich hier über mein Problem gedanken gemacht haben :D
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.465
Mitglieder
67.558
Neuestes Mitglied
StarsMan
Oben