Übergabe einer Variable funktioniert nicht

Hallo,

das Problem ist folgedes:
Ich habe ein Formular, auf dem Eingaben gemacht werden können. Diese sollen nun auf der nächsten Seite ausgegeben werden. Dies funktioniert auch, doch nur bei einer einzigen übergebenen Variable scheint dies nicht zu funktionieren.
Hier ist der Quellcode:
http://tcjw.ohost.de/php.txt

Dort ist der Quellcode beider Seiten mit Rauten voneinander abgetrennt.
Die Variable die von Seite 1 nicht auf Seite 2 übergeben wird ist $_POST[‚output‘]. Alle anderen werden problemlos übergeben und angezeigt. Die Daten sind auf Seite 1 vorhanden.

Es mag sein, dass ich irgendwo einen (sehr) dummen Fehler gemacht habe, doch ich finde ihn trotz mehrfachem Durchsuchen nicht :frowning:.

Vielen Dank für eure Mühe im Voraus

Gruß
Thomas

Anmerkung

Hier ist der Quellcode:
http://tcjw.ohost.de/php.txt

„Extern Linken -Filetype“ erscheint da. War wohl nix…
Aber die Datei z.B. in .pl umbenennen kann helfen :wink:

mfg M.L.

Hier ist der Quellcode:
http://tcjw.ohost.de/php.txt

„Extern Linken -Filetype“ erscheint da. War wohl nix…
Aber die Datei z.B. in .pl umbenennen kann
helfen :wink:

Dank für den Hinweis!
Hatte den Link bei mir getestet - da gings ohne Probleme…
Der Quellcode ist nun hier am Ende angehängt.

Eine Sache die noch wichtig sein könnte:
Die Ausgabe von Seite 2 Lautet: Einfügen nicht erfolgreich
Darunter erscheint die Tabelle mit den übergebenen Daten, außer mit dem Inhalt von $_POST[‚output‘].

Hier nun der Quellcode:

<?PHP ### CONTENTADD ### 1 ###<br />
if(isset($\_POST['inc'],$\_POST['act'],$\_POST['output'],$\_POST['project'],$\_POST['rights'])){
 $output = '

Include:
‚.$_POST[‚inc‘].‘
Action:
‚.$_POST[‚act‘].‘
Output:
'.$_POST[‚output‘].'Project:
‚.$_POST[‚project‘].‘
Rights:
‚.$_POST[‚rights‘].‘

';
} else {
$output = ‚Keine / nicht ausreichend Daten vorhanden. Bitte Eingabe wiederholen.‘;
}
?>

###################################################################################

<?PHP ### CONTENTADD ### 2 ###
echo $\_POST['output']; if(isset($\_POST['inc'],$\_POST['act'],$\_POST['output'],$\_POST['project'],$\_POST['rights'])){ $content = new content; if($content-\>content\_add\_site($\_POST['inc'],$\_POST['act'],$\_POST['output'],$\_POST['project'],$\_POST['rights'])){ $output = 'Content erfolgreich hinzugefügt Include: '.$\_POST['inc'].' Action: '.$\_POST['act'].' Output: '.$\_POST['output'].' Project: '.$\_POST['project'].' Rights: '.$\_POST['rights'].' '; } else { $output = 'Einfügen nicht erfolgreich Include: '.$\_POST['inc'].' Action: '.$\_POST['act'].' Output: '.$\_POST['output'].' Project: '.$\_POST['project'].' Rights: '.$\_POST['rights'].' '; } } else { $output = 'Keine / nicht ausreichend Daten vorhanden.'; } ?\> Gruß und vielen Dank im Voraus Thomas

ich würde mal sagen das du register globals an hast.

nenn mal $output um und es sollte klappen.

Gruß
Phillip

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

ich würde mal sagen das du register globals an hast.

nenn mal $output um und es sollte klappen.

Bisher hat das mit $_POST[] eigentlich immer sehr gut geklappt…hat PHP Probleme mit dem Ausdruck ‚output‘ (z.B. reserviert) oder warum geht es dann nur bei dieser Variable nicht?

Gruß
Thomas

Gruß
Phillip

nein es gibt eine einstellung die nennt sich register globals,

über diese einstellung wird gesteuert ob eine globale var wie zum beispiel $_GET[‚var‘] auch mit dem aufruf $var ausgegeben werden soll.

$output selbst ist nicht reserviert.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

nein es gibt eine einstellung die nennt sich register globals,

über diese einstellung wird gesteuert ob eine globale var wie
zum beispiel $_GET[‚var‘] auch mit dem aufruf $var ausgegeben
werden soll.

Habe mal mit phpinfo() nachgesehen:

register\_globals Off Off

Gruß
Thomas

hmm dann wundert mich das $_POST[‚output‘] nicht erkannt wird.
zeig mal bitte das formular über das die eingabe erfolgt.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

hmm dann wundert mich das $_POST[‚output‘] nicht erkannt wird.
zeig mal bitte das formular über das die eingabe erfolgt.

Das ganze soll so funktionieren:
Auf Seite 1 [CONTENTADD 0] wird das Formular ausgefüllt.
(Falls man auf Seite 2 auf Korrigieren geklickt hat, werden die Eingaben wieder auf Seite 1 eingefügt).
Auf Seite 2 [CONTENTADD 1] wird das Eingegebene nochmal zur Kontrolle angezeigt.
Auf Seite 3 [CONTENTADD 2] werden die Daten in eine Datenbank geschrieben und nochmal in einer kleinen Tabelle angezeigt (Tabelle nur zu Debug-Zwecken).

Hier nun alle 3 Seiten (durch Rauten (#) getrennt):

<?PHP ### CONTENTADD ### 0 ###<br />
$output = '
Include:
Output:
';

if(isset($_POST['output'])){
$output .= $_POST['output'];
}

$output .= 'Project:



######################################################################

<?PHP ### CONTENTADD ### 1 ###

if(isset($_POST['inc'],$_POST['act'],$_POST['output'],$_POST['project'],$_POST['rights'])){
$output = '
Include:
'.$_POST['inc'].'
Action:
'.$_POST['act'].'
Output:
'.$_POST['output'].'Project:
'.$_POST['project'].'
Rights:
'.$_POST['rights'].'







';
} else {
$output = 'Keine / nicht ausreichend Daten vorhanden. Bitte Eingabe wiederholen.';
}
?>

######################################################################

<?PHP ### CONTENTADD ### 2 ###

echo $_POST['output'];

if(isset($_POST['inc'],$_POST['act'],$_POST['output'],$_POST['project'],$_POST['rights'])){

$content = new content;
if($content->content_add_site($_POST['inc'],$_POST['act'],$_POST['output'],$_POST['project'],$_POST['rights'])){
$output = 'Content erfolgreich hinzugefügt
Include:
'.$_POST['inc'].'
Action:
'.$_POST['act'].'
Output:
'.$_POST['output'].'
Project:
'.$_POST['project'].'
Rights:
'.$_POST['rights'].'
';
} else {
$output = 'Einfügen nicht erfolgreich
Include:
'.$_POST['inc'].'
Action:
'.$_POST['act'].'
Output:
'.$_POST['output'].'
Project:
'.$_POST['project'].'
Rights:
'.$_POST['rights'].'
';
}

} else {
$output = 'Keine / nicht ausreichend Daten vorhanden.';
}

?>


Vielen Dank für deine Mühe!!!

Gruß
Thomas

also bei mir klappt das mit dem abschicken.
mach mal im contend 3 am anfang nen print_r($_POST) und guck was dabei raus kommt.

Hallo,

ich glaube, dass ich den ersten Fehler gefunden habe.
Also:
Die Eingabe von Ouput sollte Quelltext sein (z.B.: <?PHP phpinfo(); ?>)
Damit habe ich das immer getestet. Anscheinend habe ich das nicht richtig umgewandelt bzw. escaped.
Somit wurde dann nichts angezeigt - denke ich jedenfalls (kannst es ja mal mit PHP-Code ausprobieren, ob das Feld dann bei dir dann auch leer bleibt.
Aber wenn ich den Quelltext nun escaped in der DB speichere und nachher den Inhalt aber aus der Datenbank importieren will, funktioniert der Quellcode vermutlich nicht mehr, oder?

Gruß
Thomas

Hallo,

ich glaube, dass ich den ersten Fehler gefunden habe.
Also:
Die Eingabe von Ouput sollte Quelltext sein (z.B.: <?PHP :stuck_out_tongue:hpinfo(); ?>)
Damit habe ich das immer getestet. Anscheinend habe ich das
nicht richtig umgewandelt bzw. escaped.
Somit wurde dann nichts angezeigt - denke ich jedenfalls
(kannst es ja mal mit PHP-Code ausprobieren, ob das Feld dann
bei dir dann auch leer bleibt.

Also mit normalem Text zum Beispiel funktioniert es wunderbar.
Also bleibt noch die Frage, wie ich nun Quelltext am besten in der DB speichere und nachher wieder „echt“ zurückbekomme…

Aber wenn ich den Quelltext nun escaped in der DB speichere
und nachher den Inhalt aber aus der Datenbank importieren
will, funktioniert der Quellcode vermutlich nicht mehr, oder?

Ich werde es mal mit den Funktionen htmlentities und html_entity_decode probieren (von der Beschreibung her, sollte es ja genau das bewirken, was ich brauche…)

Vielen Dank für deine Mühe!!!

Gruß
Thomas

P.S.: Bin für weitere Tipps dankbar!!!