input type=image .. kein value

Nabi

Erfahrenes Mitglied
hallo
ich möchte ein value übermitteln mit <input type='image Tag so :
Code:
<input type='image' name='smy12' value='smily' src='default/cheesy.gif' border='0' >

und mit php
PHP:
$smy12=$_REQUEST['smily']; echo 'smy12= '.$smy12; // Kein Value

PHP:
if (ISSET($_REQUEST['smily'])){ echo 'Hallo'; 
} else { echo 'Not Hallo'; }; // der Variable ist auch unerkannt

geht nicht ,kein Value und der variable ist auch unerkannt bleibt , was ist die Lösung ?
Danke in voraus
 
Moin,

ich würde an Deiner Stelle auf $_REQUEST verzichten und statt dessen $_POST oder $_GET verwenden.

Was Du nun tun kannst wäre mal in der Zieldatei ein var_dump($_POST); einzubinden, um zu schauen, welche Werte wirklich an das zu verarbeitende Script übertragen werden.

Denk daran, dass übertragene Werte nicht einfach übernommen werden dürfen.

Ein $name = strip_tags(trim($_POST['wert'] ));

wäre als Sicherheitsmaßnahme sinnvoll.
 
ich würde an Deiner Stelle auf $_REQUEST verzichten und statt dessen $_POST oder $_GET verwenden
$_REQUEST funktioniert mit beiden Post und Get Methoden

um zu schauen, welche Werte wirklich an das zu verarbeitende Script übertragen werden.
alle im Formular ausser <input type=image value
es hat zu tun mit IE , mit Mozilla ist alles in ordnung

Die Lösung habe ich hier gefunden :
http://www.codingforums.com/archive/index.php/t-79035.html
 
Hiho,

auch wenn es sich schon erledigt haben sollte:
PHP:
$smy12=$_REQUEST['smily']; echo 'smy12= '.$smy12; // Kein Value

kann garnicht funktionieren, weil dein input-Tag den Namen smy12 hat und den Wert smily. Mit $_REQUEST['smily'] müsste es den Namen smily haben. ;) Deswegen bekommst du auch keinen Wert übermittelt.

Lg
 
Zuletzt bearbeitet:
kann garnicht funktionieren, weil dein input-Tag den Namen smy12 hat und den Wert smily. Mit $_REQUEST['smily'] müsste es den Namen smily haben. Deswegen bekommst du auch keinen Wert übermittelt.
Das war nur ein tippfehler , natürlich habe ich gemeint die richtige variable , also $smy12=$_REQUEST['smy12']; , aber es geht nicht ohne hilfe von Javascript , die im link geschriebene lösung habe ich probiert , und alles ist ok

ich schreibe hier die Lösung , wie ich den Code geändert habe (achtung: Variablen geändert)
HTML:
<FORM NAME="test" action='shout.php'>
<input type="hidden" name="smyl1" value="" />
<INPUT name='smy12' type='image'  value='[cheese]' src='default/cheesy.gif' onclick="this.form.smyl1.value = this.value">
</form>

shout.php:
PHP:
$smy12=$_REQUEST['smyl1'];  // Liefert [cheese]
 
$_REQUEST funktioniert mit beiden Post und Get Methoden

Hier geht es wohl eher um den Sicherheitsaspekt. Ein Programmierer sollte wissen woher seine Daten kommen und sollte deshalb auch auf ein Minimum beschränken.

Noch dazu beinhaltet $_REQUEST die Daten von Cookies und bei gleichen Schlüsselnamen werden diese überschrieben, da standardmäßig erst $_GET, dann $_POST und dann $_COOKIE in das Array eingepflegt werden.
 
Zurück