Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
<input type="image" [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
<input type="image"


 
re_lex
21-02-2004, 15:43 
 
hallo
auf der webseite www.dnarts.ch/test habe ich eine shoutbox in die site eingefügt. sie funktioniert mit einer mysql datenbank soweit einwandfrei.
da diese, meiner ansicht nach unschönen, standard buttons mein layout versauen möchte ich gerne für den submit button ein eigenes bild verwenden. also der "normale" button <input type="submit"> und auch <button type="submit"><img src="post.gif"></button> (so ist es zur zeit auf der site) kommen für mich nicht in frage.
gesagt, getan... <input type="image" src="post.gif">
die ernüchterung folgte dann, als die shoutbox bzw. dieser button dann mit dieser lösung nicht funktionierte.
ich habe dann in verchiedenen php foren recherchiert und festgestellt, dass ich bei weitem nicht der einzige bin, der ein problem mit dem eigenen bild für den submit button hat. leider konnte ich auch keine für mich brauchbare lösung finden, zumal ich ein absoluter anfänger in sachen php bin. mit informationen wie: "beim klickenauf den button wird die position(x,y) des cursors auf dem bild mitgegeben" etc. kann ich leider nix anfangen.
ich schätze mal, dass dies ein grundsätzliches problem und verzichte auf pasten des codes. solltet ihr trotzdem den code brauchen bitte posten.

vielen dank schon mal für allfällige hilfe

 
derHund
21-02-2004, 15:59 
 
die ernüchterung folgte dann, als die shoutbox bzw. dieser button dann mit dieser lösung nicht funktionierte.
nicht funktionierte? was geht nicht?

hatte noch nie probleme mit
<input type="image" src="button.gif" />

 
re_lex
21-02-2004, 16:35 
 
das posten funktioniert nicht. die daten werden auch nicht in die mysql datenbank geschrieben und somit erscheint der text auch nicht in der shoutbox. siehe www.dnarts.ch/test2
ist genau das selbe wie www.dnarts.ch/test, nur dass ich eben <input type="image"> verwendet habe und somit beim klicken auf "posten" nix passiert.

 
derHund
21-02-2004, 16:43 
 
das posten funktioniert nicht. die daten werden auch nicht in die mysql datenbank geschrieben

sag doch, daß du anfänger bist ;)

wird das formular abgeschickt?
was kommt dort an, wo du das formular verarbeitest?
mal

print_r($_POST);

versucht?

 
DanielD
21-02-2004, 16:48 
 
hm warums nicht geht kann ich nicht sagen aber ersetz doch einfach mal
<input type="image" src="images/btn-posten.gif" name="sbox_submit" value="&nbsp;POST&nbsp;">
durch
<a href="javascript:this.form.submit()"><img src="images/btn-posten.gif" name="sbox_submit" width=58 height=17 border=0 alt="posten"></a>
erfüllt ja den gleichen Zweck wenns funktioniert.

btw: bei image inputs muss kein value mitgegeben werden.

mfG

 
derHund
21-02-2004, 17:08 
 
erfüllt ja den gleichen Zweck wenns funktioniert.

ja, das type="image" funktioniert aber genauso, ohne js sogar.

 
re_lex
21-02-2004, 17:55 
 
danke für eure hilfe soweit. zumindest weiss ich jetzt mehr als vorher. danke "derHund" für den print_r($_POST); - tip. ich hab diese ausgabe bei beiden beispielen eingebaut und online gestellt. bitte anschauen unter:
www.dnarts.ch/test
www.dnarts.ch/test2 (mit <input type="image")
die ausgabe fällt tatsächlich unterschiedlich aus. bei type submit werden "nur" die formular daten übergeben
Array ( [sbox_name] => alex [sbox_bla] => testcomment [sbox_submit] => )
bei type image wird zusätlich die position des klicks auf den button mitgegeben und die ausgabe sieht so aus:
Array ( [sbox_name] => alex [sbox_bla] => testcomment [sbox_submit_x] => 1 [sbox_submit_y] => 16 )
diese zusätzlichen angaben im array führen irgendwie dazu, dass die daten nicht in die mysql datenbank geschrieben werden. keine ahnung wie ich das lösen könnte. bitte um hilfe.

 
derHund
21-02-2004, 18:03 
 
hmm,

zeigt doch mal den code, der das submit verarbeitet, dort prüfst du doch sicher die gegebenheiten, und die ham sich nun mal geändert ...

du könntest:
- nen hidden field setzen, das die aktion speichert, ...

oder:
- dort wo du sbox_submit prüfst, auf sbox_submit_x etc umsteigen ...

ohne code kann ich dir nix sagen ...

 
mukraker
21-02-2004, 18:04 
 
das problem bei solchen grafischen button ist. das die keine "value" übergeben

bei type="button" value="submit" name="submit"

machen viele

if(isset($_POST['submit']) {
//insert into DB ...
}


das funzt bei grafischen buttons nicht, da müsstet ihr dann mit hidden feldern arbeiten.

 
re_lex
21-02-2004, 19:43 
 
n hidden filed das die aktion speichert? wie geht das konkret? um mich in aus meinem obersten posting zu zitieren:"ich bin ein absoluter php anfänger"... und bin für jede hilfe dankbar.
hier noch der code für die verarbeitung des "submit":

### Formular auswerten
if ($_POST["sbox_submit"])
{
$sbox_name = trim($_POST["sbox_name"]);
$sbox_bla = trim($_POST["sbox_bla"]);

if (!$sbox_name or !$sbox_bla or $sbox_name == 'Name' or $sbox_bla == 'Text')
$sbox_output = "Name u. Text eingeben";
else
{
if ($sbox_lock == 0)
{
$sbox_check = 0;
### Eintrag zu lang
if (strlen($sbox_bla) > $sbox_maxlength or strlen($sbox_bla) > 230)
{
$sbox_output = "Eintrag zu lang";
$sbox_check = 1;
}

### einzelnes Wort zu lang?
$sbox_inhalt=explode(" ", $sbox_bla);
foreach ($sbox_inhalt as $sbox_temp)
{
if (strlen($sbox_temp)>$sbox_wordmaxlength)
{
$sbox_output = "einzelnes Wort zulang";
$sbox_check = 1;
}
}

### neuen Eintrag in die Datenbank schreiben
if ($sbox_check == 0)
{
$sbox_name = htmlentities(strip_tags($sbox_name));
$sbox_bla = htmlentities(strip_tags($sbox_bla));
mysql_query("INSERT INTO xp_sbox (ip, date, name, bla)
VALUES ('$sbox_ip', '$sbox_date', '$sbox_name', '$sbox_bla')");
}
}
### Spamschutz aktiv
else
{
$sbox_output = "sorry, spamschutz akitv";
}
### Name und Text zurücksetzen
if ($sbox_check == 0)
{
$sbox_name="Name";
$sbox_bla="Text";
}
}
$sbox_name = stripslashes(strip_tags(str_replace("\"", "'", $sbox_name)));
$sbox_bla = stripslashes(strip_tags(str_replace("\"", "'", $sbox_bla)));
}
else
{
$sbox_name="Name";
$sbox_bla="Text";
}

 
derHund
21-02-2004, 20:46 
 
hmm,

schreib mal in dein formular, gleich am anfang

<input type="hidden" name="sbox_submit" value="3" />

 
re_lex
21-02-2004, 21:11 
 
hey Hund
es funktionriert!! du bist genial. ein fettes dankeschön von mir. hast was gut bei mir ;)

 
derHund
21-02-2004, 21:19 
 
ok :)

hauptsache, du weißt auch, warum es jetzt geht ....

 
re_lex
21-02-2004, 21:59 
 
ehrlich gesagt ist es mir nicht ganz klar warum es funktioniert. aber ich hab auch schon nicht kapiert warum es NICHT funktionierte.
die unterschiede, die ich feststellen konnte sind, dass die vairabeln welche die x und y position übergeben nicht mehr [sbox_submit_y] sondern nur noch [y] heissen. und dass eine zusätliche variable [sbox_submit] (eben das hidden field) übergeben wird.
naja, vielleicht verseh ichs ja mal, wenn ich mehr ahnung von der ganzen forumlar und variabeln übergabe geschichte hab.

 
wahsaga
22-02-2004, 16:53 
 
mal http://dclp-faq.de/q/q-formular-image.html lesen, hätte auch helfen können.

 
romu2000
09-03-2006, 22:16 
 
da ich auch gerade vor dem problem stehe(sitze .-)) würde mich der link sehr interessieren den du über mir gepostet hat.

ist der link kaputt, oder bin ich zu doof um auf der seite zu navigieren !?

viele grüße

ronny

 
wahsaga
09-03-2006, 22:26 
 
Nee, die Domain hat sich geändert (die alte hat denen irgendwie so'n Dialer-Heini weggeschnappt (http://www.it-schule.de/nachricht_zeigen.php?id=149&start=31&bereich_id=2)):

http://www.php-faq.de/q/q-formular-image.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:36 Uhr.