PHP Code in Variable speichern und ausgeben

karstili

Cadet 1st Year
Registriert
Mai 2020
Beiträge
11
Hallo Leute,

eine Frage. Ich möchte einen PHP Code in einer Variablen speichern und diese dann ausgeben. Leider funktioniert es nicht so, wie ich will:

Mein Code:
function unterk(){

if($_POST["Kategorie"]=="1"){
$unter1='<select name="unterk"><option value="" <?php if(!isset($_POST["unterk"])||!is_string($_POST["unterk"])||trim($_POST["unterk"])==""){print("selected=\"selected\"");}?>>Kategorie</option>
<option value="1" <?php if(isset($_POST["unterk"])&&is_string($_POST["unterk"])&&$_POST["unterk"]=="1"){print("selected=\"selected\"");}?>>Unterw&auml;sche</option>
</select>';
}
echo $unter1;
}

an der Stelle im Dokument, wo die Funtion eingefügt ist, erscheint dann das:

<tr><th>Kategorie:</th><td>Herrenmode</td><th>Unterkategorie</th><td><br/>1<br/><select name="unterk"><option value="" <?php if(!isset($_POST["unterk"])||!is_string($_POST["unterk"])||trim($_POST["unterk"])==""){print("selected=\"selected\"");}?>>Kategorie</option>
<option value="1" <?php if(isset($_POST["unterk"])&&is_string($_POST["unterk"])&&$_POST["unterk"]=="1"){print("selected=\"selected\"");}?>>Unterw&auml;sche</option>
</select><td>Lieferant</td><td>Einkaufspreis<br/><input type=text" name="pek" row=2em" /> Euro</td><td>Anzahl</td></tr>

Ab dem 1. Option ist alles rot und im Quelltext vermisst er ein > Zeichen.
Im Textfeld des Auswahlmenüs steht vor dem Wort auch immer das Zeichen >.

Im abrufenden Dokument habe ich die Funktion so eingefügt:

<td><br/><?php print($_POST["Kategorie"]);?><br/><?php unterk();?></td>

Habt ihr ein Tipp, wie die funktion dann richtig dargestellt wird?
 
karstili schrieb:
$unter1='<select name="unterk"><option value="" <?php
du musst das was rechts beim <?php kommt vorher abfragen und in einem string speichern, den fügst du dann bei $unter1 ein mit '.$abfrageergebnis.'
du bist dort schon im <?php und machst ein neues <?php auf, das geht nicht
 
Danke.

Also kann ich eine php Formularüberprüfung nicht in einer variablen speichern? Denn ich wollte dieses Prüfungsfeld /select - Feld je nach übergebener Session unterschiedlich gestalten
 
Aua! Das sieht aber ziemlich wüst aus .. Ich würde die Formularüberprüfung vorher schon über Javascript erledigen.
 
  • Gefällt mir
Reaktionen: GroMag
Wüst darf es ja bei der Entwicklung sein. :)
Java kommt nicht in Frage, da dies durch abstellen des selbigen nicht mehr funktioniert.
 
Niemand schaltet heutzutage noch js per se ab, weil dann würden viele Seiten gar nicht mehr funktionieren ... Aber was Du da produzierst, ist der übelste Spaghetti-Code ..

Außerdem Javascript != Java ;)

P.S.: wenn es bei der Entwicklung schon so wüst aussieht, wird das im Live-Betrieb nicht anders aussehen
 
  • Gefällt mir
Reaktionen: GroMag
Selbst wenn das rein theoretisch funktionieren sollte musst du immer bedenken, der Benutzer will dir was Böses. Eine Serverseitige Prüfung ist wichtiger als eine Clientseitige.
 
  • Gefällt mir
Reaktionen: kim88
Testa2014 schrieb:
Selbst wenn das rein theoretisch funktionieren sollte musst du immer bedenken, der Benutzer will dir was Böses. Eine Serverseitige Prüfung ist wichtiger als eine Clientseitige.
Das ist mir schon klar, es geht mir darum, dass man für Sachen, die den DOM manipulieren, lieber clientseitig arbeiten sollte. Auch alleine schon wegen Performance und Haptik. Den Plausibilitätscheck sollte man dann zusätzlich serverseitig machen.
 
Zuletzt bearbeitet:
Trotzdem fehlen hier ja schon Grundlagen.
Allein, das was du hier scheinbar machen willst, ist sehr schlechter Stil.
Und aus Security-Sicht richtig grottig...
 
Zuletzt bearbeitet:
GroMag schrieb:
Trotzdem fehlen hier ja schon Grundlagen.
Allein, das was du hier scheinbar machen willst, ist sehr schlechter Stil.
Und aus Security-Sicht richtig grottig...

Also doch nur über den langen Weg. Hoffte es etwas abkürzen zu können.
 
Wie es aussieht, scheinst Du ja sowas wie einen Shop programmieren zu wollen ... Wenn ja, solltest Du jedenfalls eine fertige Lösung, wie Shopware, Presta oder WooCommerce ins Auge fassen.
 
DerGoblin2k schrieb:
Wie es aussieht, scheinst Du ja sowas wie einen Shop programmieren zu wollen ... Wenn ja, solltest Du jedenfalls eine fertige Lösung, wie Shopware, Presta oder WooCommerce ins Auge fassen.

Nein.

Aber wie ich sehe, hast du selbst keinen Schimmer um auf meine Frage zu antworten. Dann lass es doch bitte.
 
Doch habe ich, aber Du wehrst Dich ja mit Händen und Füßen gegen JS. Wenn Du etwas besser beschreiben würdest, was Du genau vor hast, könnte ich Dir bestimmt weiterhelfen
 
Steht doch da.

Session übergibt ne nummer, je nach nummer soll ein select Menü eingebaut werden. Dh. Durch variable gesetzt. Und darin die php selected Zeichnung.
Ergänzung ()

Achso, nachtrag: das sowas über js geht Weiss ich. War aber nicht meine Frage, sondern ne Lösung über php. Hier als kurzweg, meine damit dies in der Variablen zu speichern und an anderer stelle ausgeben. U. A. Um diese routine /Funktion auch in anderen Dokumenten zu nutzen. Langen Weg kenne ich auch.
 
Na dann musst Du Dich ja nur an die Antwort von Knito halten.

Knito schrieb:
du musst das was rechts beim <?php kommt vorher abfragen und in einem string speichern, den fügst du dann bei $unter1 ein mit '.$abfrageergebnis.'
du bist dort schon im <?php und machst ein neues <?php auf, das geht nicht

P.S. Ich hoffe, dass das nur ein Hobby-Projekt ist. Andernfalls wird Dir das Teil irgendwann um die Ohren fliegen.
 
Wie schon gesagt. Der lange Weg.
Ergänzung ()

Na ich bin mal neugierig. Wieso um die Ohren fliegen?
 
Zuletzt bearbeitet:
karstili schrieb:
Na ich bin mal neugierig. Wieso um die Ohren fliegen?
Weil im professionellen Umfeld Wartbarkeit, Sauberkeit und Sicherheit (edit: Testbarkeit hab ich noch vergessen) zählt, und keine Frickellösungen. Und dazu zählt sogar, hier Code in Code-Tags zu packen oder ordentliche Var/function-Bezeichnung. Wie gesagt: Grundlagen fehlen schon.

Und zum Thema: die ganze function kannst du dir sparen. (und wenn function, dann garantiert nicht mit echo sondern mit einem ordentlichen return value!)
PHP:
<?php
//file.php

/* alles vorher */
?>
<select name="unterk">
    <option value="1"
      <?php if(isset($_POST["unterk"])&&$_POST["unterk"]==="1"){ echo ' selected="selected"'); } ?>
    >Unterw&auml;sche</option>
</select>
<?php
/* alles danach */
Was aber ohne das drumherum zu kennen natürlich nur als Ansatz dient. Von Themen wie MVC ganz zu schweigen.
 
Zuletzt bearbeitet:
Ach wenn ich das Prof. Machen würde sähe es anders aus. Aber experimentieren will ich ja auch an der ein oder anderen Stelle.
 
Zurück
Oben