dedlfix: formular-daten mit $_SESSION übertragen

Beitrag lesen

echo $begrüßung;

nach abschicken dieses formulars erscheint nun auch keine fehlermeldung mehr.
wenn ich nun aber den hyperlink in formular-werte.php betätige, erscheint die fehlermeldung:
"Notice: Undefined index: input_php in formular-werte.php"
dies geschieht gerade in der zeile, in der "$input_php = $_POST['input_php'];" steht

Ein Link veranlasst einen Browser dazu, einen GET-Request abzusetzen. Dabei gibt es selbstverständlich keine POST-Werte und damit auch keine Einträge im $_POST-Array.

Es ist übrigens überhaupt nicht hilfreich, wenn du die Werte aus $_GET oder $_POST 1:1 in andere Variablen umkopierst. Du erhöhst die Komplexität durch weitere Variablen und verschleierst damit nur, dass man ihr die Herkunft ansieht.

und anschließend "$_SESSION["input_php"] = $input_php;". es gibt anscheinend also ein problem mit der weitergabe des formular-text-inputs per "$_POST['input_php']". wie kann  das sein?

Was für eine Weitergabe? Wenn du einen Wert in eine Session schreibst, dann muss du ihn auch dort wieder rausholen (sprich: lesend auf $_SESSION['...'] zugreifen), wenn du damit weiterarbeiten willst.

aussehen der formular-werte.php:
<html>
       <head></head>
<body>
<?php
session_start();

Du hast hier schon wieder HTML-Code vor dem session_start stehen.

  	$session = $\_SESSION["variable"];  
  echo "<h4>session-variablen-wert:</h4> $session ";  

Greif direkt auf $_SESSION["variable"] zu. Eine zusätzliche Variable ist überflüssig, wenn der Wert nur gelesen wird und keine Änderung, die nicht in der Session festgehalten wird, gemacht werden soll.

  	$sid2 = session\_id();  

<br><a href="formular-werte.php?<?php echo 'PHPSESSID=';echo $sid2; ?>" target="blank">test</a>

PHP kümmert sich im Allgemeinen selbst um das Weiterreichen der Session-ID. Wenn berechtigte Gründe vorliegen, davon auszugehen, dass Cookies dektiviert sind, dann kann man session.use_trans_sid einschalten und muss sich nicht weiter um die SID sorgen.

echo "$verabschiedung $name";