Wert eines Textfeldes im Link übergeben

Hallo !

á la diesem Beispiel:

Sprich man gibt was in einem textfeld ein und das e…

ich kenne zwar php kaum (sondern python), aber so kann das glaube ich nicht funktionieren.
das problem ist, dass in dem moment, wo die html-seite im browser gerendert wird, die variable „benutzername“ noch leer ist. um die variable zu initialisieren, musst du einen zwischenschritt einbauen.

du lässt den benutzer ein formular ausfüllen (mit dem form-tag und einem input-feld) welches dann z.B. die eingegebene variable an sich selbst schickt. die kann dann ausgelesen und in einen link eingefügt werden.

z.B.:

Bitte geben Sie Ihren Benutzernamen an:

die variable benutzername wird übergeben. ruft sich diese seite z.B. selbst auf (oder auf einer anderen seite) kannst du die variablen mit $_POST oder $_GET wieder auslesen und in einen a-tag einbauen. Z.B. so ungefähr:

<?php if (isset($_POST['benutzername'])) {
echo "["; exit; } ?\>(aber keine garantie, da...](beispiel.php?benutzername=%22.%24_POST%5B'benutzername'%5D%22)

hier mein code der nicht tut :frowning:

echo „“;
echo „OK“;

if (isset($_GET[‚textfeld‘]))
{
$be=$_GET[„textfeld“];
}

hier mein code der nicht tut :frowning:

da fehlt auch noch was damit das funktionieren kann…

damit eröffnest Du ein Formular:

dann Dein Input-Feld.

echo „“;

dann aber kein normaler Text, sondern ein submit button:

anschliessend das Formular beenden mit

und dann sollte das da funktionieren:

if (isset($_GET[‚textfeld‘]))
{
$be=$_GET[„textfeld“];
}

normal wäre aber eher method=„post“ zu verwenden und das if auf $_POST umzuschreiben…

teilweise richtig
Wenn man unbedingt einen „normalen“ (=Text-) Link erzeugen muss, dann stimmt es vom prinzip her zumindest fast.

$PHP_SELF ohne das basename()

das :string im name raus

und bei der Linkausgabe fehlt ein . nach $_POST[‚benutzername‘] und vor dem "

das exit; müsste wenn dann exit(); heissen, aber dann kann man eben auch nix weiterverarbeiten falls nötig

aber für einen php-„unwissenden“ wars erstaunlich richtig ^^