Formular + index.php?action=home = Problem?

Status
Nicht offen für weitere Antworten.

DaRula

Erfahrenes Mitglied
moin,
ich habe folgendes Problem:
Ich habe eine index.php in der die Navigation included wird (navi.php) und dort wo ich normalerweise den text habe steht folgendes
PHP:
if($action == ""){
$anzeige = "home.php";
include("$anzeige");
}
else{
$lesen = $HTTP_GET_VARS["action"];
$anzeige = $lesen.".php";
include("$anzeige");
}
Alles ist in einzelnen tabellen. Die Links in der navi sehen dann logischerweise so aus
PHP:
<A href="<?home.php?>?action=home">Link</A>
Aber wenn ich dann auf ein formular verlinke, welches in der selben datei bearbeitet wird bekomme ich eine fehlermeldung, da das script das abschicken auf das ?action=blabla zurückführt.
Wie kann ich das ändern, sodass das problem nicht mehr auftritt?
 
wenn ich die links durch ein <? echo $PHP-SELF; ?> ersetze bekomme ich nur links wie 0?action=home oder meinst du den chat?
 
$PHP_SELF nicht $PHP-SELF

$PHP_SELF steht für die aktuelle datei, also kannst du auch einfach bsp. formular.php hernehmen.
 
dein erster code ist aber etwas wirr...
besser sollte er so heißen...

PHP:
if(is_empty($HTTP_GET_VARS["action"])){
$anzeige = "home.php";
}
else{
$anzeige = $HTTP_GET_VARS["action"].".php";
}
include($anzeige);

ansonsten benutzt du macnchmal die bessere neuere variante der http-variablen, aber die if-abfrage geht von der alten direkten methode aus.
besser wäre es natürlich noch mit dem $_GET anstatt $HTTP_GET_VARS...
 
eigentlich ist das $_GET nicht sooooo notwendig oder, weil die angaben aus der url werden doch sowieso als variablen an php übergeben oder irre ich mich da. oder gibt es mit $_GET irgendwelche geschwindigkeitssteigerung seitens der bearbeitung.

PS: Sorry wegen dem $PHP-SELF muss natürlich wirklich $PHP_SELF heißen, tut mir leid
 
Bitte ..

gewöhnt euch an die Hashes zu verwenden ..

$HTTP_SERVER_VARS[PHP_SELF]
oder
$_SERVER[PHP_SELF]

bzw. wie schon richtig beschrieben :

$HTTP_GET_VARS
oder
$_GET_VARS

und bevor die Frage kommt "WOZU ?" sage ich noch schnell was dazu.

Die neuen Hashes sorgen für bedeutend mehr Übersicht.

Du kannst jetzt in einem Script bedeutend mehr

Strukturierung reinbringen. Es ist zwar ein
wenig mehr Schreibarbeit, aber es lohnt sich
wirklich.

Und nochmal : In der neuen Distribution funktioniert
die Übergabe von Post oder Getvariablen in eine neue
im Script verfügbare Variable nicht mehr.

Also kein $action .. sondern $HTTP_GET_VARS[action]
 
ok, es sind 40°C und ich bin etwas neben der rolle, aber etwas ist mir noch unverständlich:

wenn ich jetzt ne URL habe: index.php?variable1=wert1

dann kann ich die variable $variable1 nicht sofort nutzen sondern müsste sie erst so $variable1 = $_GET_VARS["variable1"]; definieren.

da muss ich allerdings sagen, dass verwirrt mich noch mehr als ohne diesen mist.

und inwiefern kann man die scripte dann besser strukturieren?? indem ich noch zig zeilen reinbringe nur um die vars der url zu erhalten bestimmt nicht. so jedenfalls meiner meinung nach.

und zu der neuen distribution, ich habe 4.2.1 und es klappt immernoch wunderbar die variablen aus der url so auszulesen wie sie dastehen, sprich ?action=wert -> $action = "wert";

wenn dem nämlich nicht so wäre würden meine ganzen scripte nicht mehr funktionieren
 
oder so??

Wie wär's so:

PHP:
<?php
if(isset($action))
{
include('bla.ht');
//oder andere Anweisungen
}
else
{
include('home.php');
//oder andere Anweisungen
}

Also:
if(isset($variable)) prüft ob eine Variable überhaupt gesetz ist, wenn ja, dann : Anweisungen

else: Ansonsten binde standard-seite ein, oder mach sonst etwas!!!

ODer hab ich nicht genau gelesen, was dein problem ist??
 
Status
Nicht offen für weitere Antworten.
Zurück