• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

form action als Variable übergeben

Irgendwie kann ich nicht genau nachvollziehen was du machen möchtest.

Aber <?php =$datei;?> Sieht schon mal sehr komisch aus.
Meinst du hier vielleicht <?php echo $datei; ?>

Oder möchtest du den Aktuellen Dateinamen in einem Hidden-Field übergeben?
Irgendwas in die Richtung:
<input type="hidden" value="<?php echo basename($_SERVER['PHP_SELF']); ?>">
 
Zuletzt bearbeitet:
Irgendwie kann ich nicht genau nachvollziehen was du machen möchtest.

Aber <?php =$datei;?> Sieht schon mal sehr komisch aus.
Meinst du hier vielleicht <?php echo $datei; ?>

Oder möchtest du den Aktuellen Dateinamen in einem Hidden-Field übergeben?
Irgendwas in die Richtung:
<input type="hidden" value="<?php echo basename($_SERVER['PHP_SELF']); ?>">

Das müßte doch dasselbe sein, oder ?
PHP:
<?php =$datei;?> 
<?php echo $datei; ?>
 
Ich wollte den Dateinamen als Variable übergeben, weil es unterschiedliche Möglichkeiten gibt
Ich hab auch ein gutes Tutorial gefunden, wo das so gemacht wird
(z.B. Guter Code - Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform )


Aber wenn ich dann den Code in den W3C-Validator eingeb , dann zeigt er mir hier Fehler an. The W3C Markup Validation Service


PHP:
 <form action="<?php =$datei;?>"  method="post" >
...
....
</form>

Hallo.

Lies dir das Tutorial bitte noch einmal langsam und in aller Ruhe durch, ich glaube du hast nicht ganz verstanden worum es da eigentlich geht.

Gruss
Elroy
 
Tut mir leid, wenn du mir erkärst was du mit diesem Code erreichen willst könnte ich dir vielleicht helfen.

Falls du dich darauf beziehst:
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>">

Das ist ein PHP Befehl um die aktuelle Seite erneut aufzurufen damit werden keine Variablen übergeben.

Gruss
Elroy
 
Das Formular soll je nachdem , ob der User angemeldet ist oder nicht auf eine andere Seite weiterleiten

Das oben war nur ein Beispiel, wie man den Dateinamen übergibt
Mein Code funktioniert auch einwandfrei, nur im Validator zeigt er einen Fehler, daher hab ich nachgefragt.
PHP:
<?php if ($_SESSION["user_angemeldet"]==false) 
{ 
$datei="anmeldung.php";} 
else  
{ $datei="startseite.php";} ?> 
<form action="<?php =$datei;?>"  method="post" >
.........
......
 
Welche Fehlermeldung erhälst du denn vom Validator?

PHP:
$_SERVER["PHP_SELF"]
sollte aus Sicherheitsgründen nicht verwendet werden. => Google, Forensuche, XSS

PHP:
<?php =$datei;?>
habe ich so noch nicht gesehen. Mir ist
PHP:
<?= $datei; ?>
geläufig. Doch diese Kurzschreibweise für
PHP:
<?php echo $date; ?>
sollte man ebenfalls nicht verwenden, da Short-Tags über eine Servereinstellung ausgeknipst werden können und die Ausgabe dann nicht mehr funktionieren würde.

Du könntest dein Formular auch immer auf die gleiche Seite weiterleiten und je nachdem, ob der User eingeloggt ist oder nicht, werden andere Befehle ausgeführt. Eine Weiterleitung kannst du nach dem Ausführen der Befehle dann immer noch per
PHP:
header("Location: http://www.domain.de/seite.php");
exit;
realisieren.
 
Zuerst hab ich es so geschrieben

PHP:
<? =$datei; ?>

Wenn ich es in den Validator eingeb, dann erscheinen die Meldung und Fehler

XML Parsing Error: Couldn't find end of Start Tag form line 142
XML Parsing Error: xmlParsePI : no target name
XML Parsing Error: Unescaped '<' not allowed in attributes values
XML Parsing Error: attributes construct error
 
Und wo ist jetzt das Problem? Ändere den Code in
PHP:
<?php echo $datei; ?>
wie es sich gehört! ;)
Egal , wie ich es schreib , es kommen immer diese Fehlermeldungen

PHP:
<?php echo $datei; ?>  
<? =$datei; ?> 
<?php =$datei; ?>

Code:
XML Parsing Error: Couldn't find end of Start Tag form line 142 
XML Parsing Error: xmlParsePI : no target name 
XML Parsing Error: Unescaped '<' not allowed in attributes values 
XML Parsing Error: attributes construct error
 
Der Fehler liegt eindeutig an der Variablen, wenn ich ein Dateinamen reinschreib , ist kein Fehler
PHP:
<form action="<? =$datei;?>"  method="post" >  <!--FEHLER  -->
 
                   </form>
 
<form action="dateiname.php"  method="post" >  <!--KEIN FEHLER  -->
 
                   </form>
 
Wird die Datei überhaupt geparst? Wie sieht der Quelltext aus, steht im action="" - Attribut der erwartete Dateiname? Hast du einen Link zur Seite?
 
Nocheinmal zum mitschreiben

PHP:
<?php =$datei;?>
So darf das nicht geschrieben werden!

PHP:
<?php echo $datei ; ?>
würde die Variable $datei ausgeben, mit dem was du schreibst, wolltest du sicherlich :
PHP:
<?= $datei ; ?>
Diese funktion ist die kurzschreibweiße von
PHP:
<?php echo $datei ; ?>
Jedoch in den neueren PHP versionen nicht verfügbar ( oder nur ausgeschaltet kp ).

Also Fakt:
PHP:
<?php =$datei;?> // FALSCH!!
<?php echo $datei ; ?> // Richtig | Gibt die Variable $datei aus

*edit*

Zeig mal die Betroffenen stellen. Bzw. zeig mal womit du die Variable füllst. An der Variable selbst, kann es schlecht liegen, da die dein Code nur geparsed überprüfen können.
 
Zuletzt bearbeitet:
Der Validator sieht nicht den PHP Code, sondern den der auch im Browser ankommt, wenn jemand hier wirklich helfen soll, dann müssen wir auch genau diesen Code sehen!!!
Und nicht welchen Murks du in deinem PHP Code machst.
 
Zurück
Oben