Input-value
Peter
- php
Hallo
Ich bitte um Hilfe.
Folgender Quellcode:
<?
$a ="hans jörg";
?>
<input name="name" type="text" <?php echo "value = $a";?>>
Ergibt:
Ein Eingabefeld mit dem Inhalt:
hans
Bei "normaler Ausgabe der Variablen $a mit " echo $a; " ist das Ergebnis:
hans jörg
..............so wie es sein soll
Aber mit "input" wird alles nach dem "Space" entfernt
Ich hoffe auf Hilfe und bedanke mich schon mal im Voraus
Peter aus Wien
Hallöchen,
<input name="name" type="text" <?php echo "value = $a";?>>
Bei "normaler Ausgabe der Variablen $a mit " echo $a; " ist das Ergebnis:
hans jörg
also steht im Quelltext
<input name="name" type="text" value = hans jörg>
oder irre ich mich da?
Sollte aber wohl heißen
<input name="name" type="text" value="hans jörg">
Also musst du die PHP-Ausgabe dorthin setzen, wo der Inhalt der Variablen stehen soll...
MfG
vaudi
<input name="name" type="text" <?php echo "value = $a";?>>
Anstelle von <?php echo "value = $a";?> kannst du auch <?="value='$a'"> schreiben. Oder das 'value=' und die anführungszeichen direkt in den HTML-Text setzen also:
<input type='text' value="<?=$a?>">
Hello,
<input name="name" type="text" <?php echo "value = $a";?>>
Anstelle von <?php echo "value = $a";?> kannst du auch <?="value='$a'"> schreiben. Oder das 'value=' und die anführungszeichen direkt in den HTML-Text setzen also:
<input type='text' value="<?=$a?>">
Sogenannte "Short Open Tags" sollte man tunlichst vermeiden.
Und außerdem sollte immer die kontextgerechte Codierung benutzt werden, also für HTML-Ausgabe die Funktion htmlspecialchars($wert,ENT_QUOTES), wenn an einen Browser ausgegeben werden soll.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Sogenannte "Short Open Tags" sollte man tunlichst vermeiden.
Warum soll man die vermeiden?
hi,
Sogenannte "Short Open Tags" sollte man tunlichst vermeiden.
Warum soll man die vermeiden?
Weil man nicht davon ausgehen kann, dass diese überall verfügbar sind.
mfg
Lieber Typhox,
Sogenannte "Short Open Tags" sollte man tunlichst vermeiden.
Warum soll man die vermeiden?
weil es mit <?xml verwechselt werden kann. Da steht auch <? am Anfang. Und hier scheitert dann der PHP-Parser, siehst Du das ein?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
weil es mit <?xml verwechselt werden kann. Da steht auch <? am Anfang. Und hier scheitert dann der PHP-Parser, siehst Du das ein?
Ja, sehe ich ein, wusste ich aber auch schon vorher.
Nur denke ich, dass bei xml immer '<?xml' steht und die anderen Möglichkeiten, die <? haben kann doch im Allgemeinen eher selten auftreten.
Werden eigentlich auch <? von php geparst, wenn sie nicht dafür gedacht worden sind, weil sie von etwas anderem geparst werden sollen? Soweit ich weiß muss das doch dann in der .htaccess-Datei angegeben werden (Wobei natürlich
Ich bin jedenfalls der Meinung, wenn es die Möglichkeit gibt, dann kann man sie auch nutzen.
Hallöchen,
Nur denke ich, dass bei xml immer '<?xml' steht und die anderen Möglichkeiten, die <? haben kann doch im Allgemeinen eher selten auftreten.
Und warum sollte dann bei php NICHT immer '<?php' stehen?
Da nach meinen Erfahrungen ein Computer grundsätzlich das tut, was man ihm sagt, sollte man genau dies so genau wie möglich tun.
MfG
vaudi
PS: Das größte Computerproblem sitzt davor...
Hi,
Werden eigentlich auch <? von php geparst, wenn sie nicht dafür gedacht worden sind,
um herauszufinden, wofür sie gedacht sind, muss sie der PHP-Interpreter parsen. Und dann ist es bereits zu spät.
Ich bin jedenfalls der Meinung, wenn es die Möglichkeit gibt, dann kann man sie auch nutzen.
Mit dieser Meinung wirst Du sehr, sehr oft an sehr, sehr vielen Stellen sehr, sehr große Probleme bekommen.
Cheatah
echo $begrüßung;
Nur denke ich, dass bei xml immer '<?xml' steht und die anderen Möglichkeiten, die <? haben kann doch im Allgemeinen eher selten auftreten.
Es ist egal, was nach dem <? für Zeichen kommen, wenn das <? als gültige PHP-Anfangssequenz konfiguert ist.
Werden eigentlich auch <? von php geparst, wenn sie nicht dafür gedacht worden sind, weil sie von etwas anderem geparst werden sollen?
Ein Computer ist ein Berechner, kein Intentionenerrater. Wenn da ein <? kommt, und short_open_tag aktiviert ist, dann ist das ein Anfang für PHP-Code. Eine Analyse, ob tatsächlich PHP-Code oder was anderes kommt, mit anschließendem Ignorieren, findet nicht statt. Wie sollte PHP auch das Ende des Fremdblocks finden können, wenn es keine Ahnung von dessen Syntax hat? Es ist ja keineswegs sicher, dass das nächste erreichbare ?> dessen Ende markiert, ab dem dann PHP beim nächsten <? mit dem Ratespielchen von vorn beginnen darf.
Soweit ich weiß muss das doch dann in der .htaccess-Datei angegeben werden
Zu jeder Konfigurationsdirektive gibt das Handbuch in der Spalte Changeable an, an welchen Stellen sie beeinflusst werden kann, wobei eine Erklärung der Werte am Ende der Tabelle zu finden ist.
Ich bin jedenfalls der Meinung, wenn es die Möglichkeit gibt, dann kann man sie auch nutzen.
Ja, das kannst du selbstverständlich so tun, das kann dir keiner nehmen. Es wäre nur sicher auch in deinem Interesse, wenn du dir über die Folgen der "kleinen Faulheit" ausreichend Gedanken machst.
echo "$verabschiedung $name";
Hello,
Folgender Quellcode:
<?
$a ="hans jörg";
?>
<input name="name" type="text" <?php echo "value = $a";?>>Ergibt:
Ein Eingabefeld mit dem Inhalt:
hans
Hast Du denn schon einmal versucht, den String direkt im HTML-Code zu codieren?
Dann müsste es Dir sofort klar werden, woran es liegt.
<input name="name" type="text" value = hans jörg>
Wie müsste man das nun behandeln, damit es keinen Ärger gibt?
<input name="name" type="text" value="hans jörg">
so wäre es doch schon besser, oder?
Und in PHP sähe das dann so aus:
$out = "<input name="name" type="text" value="$a">";
oder besser noch:
$out = "<input name="name" type="text" value="" . htmlspecialchars($a,ENT_QUOTES) . "">";
da man ja nicht immer wissen kann, was in $a so drinsteht. Es könnte da ja jemand
$a = 'hans "der coole" jörg';
hineingeschreiben haben, dann hast Du das Problem mit dem Parmeteranfang und -ende gelich wieder. Die Häkchen müssen also kontextgerecht codiert werden.
Und schau Dir mal im Archiv die Threads zum Thema "Affenformular" und magic Quotes an. Denn das nächste Problem, dass Du bekommen wirst, wird vermutlich der Backslash sein, wenn Du Werte aus dem Formular im Script wieder ins Formular einsetzen willst, und HTML-Sonderzeichen darin enthalten sind.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
echo $begrüßung;
Und in PHP sähe das dann so aus:
$out = "<input name="name" type="text" value="$a">";
oder besser noch:
$out = "<input name="name" type="text" value="" . htmlspecialchars($a,ENT_QUOTES) . "">";
Wennd er OP schon den größten Teil des HTML-Codes außerhalb eines PHP-Blocks lagert, …
<input name="name" type="text" <?php echo "value = $a";?>>
… dann würde ich den nicht ohne Notwendigkeit ins PHP hineinholen wollen, mit den Folgen, dass man nun auch noch alle " beachten und behandeln muss. Es tät ja reichen, das feststehende value=" und das abschließende " nach außen zu holen und sich im PHP-Block auf die Ausgabe des Wertes zu konzentrieren:
<input name="name" type="text" value="<?php echo htmlspecialchars($a) ?>">
Und schau Dir mal im Archiv die Threads zum Thema "Affenformular" und magic Quotes an. Denn das nächste Problem, dass Du bekommen wirst, wird vermutlich der Backslash sein, wenn Du Werte aus dem Formular im Script wieder ins Formular einsetzen willst, und HTML-Sonderzeichen darin enthalten sind.
Ähm, nein. Beziehungsweise: Das ist missverständlich formuliert. Die HTML-eigenen Zeichen haben beim Einbringen in den HTML-Kontext eine Sonderbeachtung nötig. Wenn Daten aus einem Request im PHP-Script landen, dann ist das einerseits kein HTML-Kontext, andererseits, wenn Magic Quotes aktiv sind, sind davon andere Zeichen betroffen, von denen " und ' nur zufälligerweise auch im HTML-Kontext Sonderzeichen sind. Einen direkten Zusammenhang zwischen den HTML-Sonderzeichen und den von den Magic Quotes betroffenen gibt es nicht.
echo "$verabschiedung $name";