Comasu (http://www.comasu.de/wbb2/index.php)
- Laberecke (http://www.comasu.de/wbb2/board.php?boardid=3)
-- Technik (http://www.comasu.de/wbb2/board.php?boardid=60)
--- PHP: keyinput für switchfunktion (http://www.comasu.de/wbb2/thread.php?threadid=207)


Geschrieben von Ark am 06.04.2007 um 10:57:

  PHP: keyinput für switchfunktion

hallo

hab mal ne kleine frage, die mir schon einige zeit auf der zunge brennt^^

für meine portalinfo bei gr-banner.de wollt ich sowas wie ne schlüsseleingabe für einige teile der portalinfo erstellen.
also man postet einfach über ein input type="textfield" einen schlüssel der den switch zu einem anderen portalinhalt ermöglich

ok - wenn ich das ganze erklärte mal so angucke, würd ich damit vielleicht auch nicht klarkommen, deswegen nochmal mit code^^

jetzige aktivierung der switchfunktion (portalinfos) über einen link-aktion im normalcode und in der php

Quellcode

1:
2:
3:
4:
5:
6:
<a href="portal.php?portalinfo=1"><img src="images/portal_info_icon.gif" height="10" width="55" border="0"></a>

oder

<a href="portal.php?portalinfo=2"><img src="images/portal_info_icon.gif" height="10" width="55" border="0"></a>

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
switch($portalinfo) {
 
  case "1":
  $infotext "text1";
  break;

  case "2":
  $infotext "text2";
  break;
  

  default:
  $infotext "ausgangstext";
}


das ganze soll bestehen bleiben und durch einen input-type="text"-posting-möglichkeit ergänzt werden

man postet über das textfeld nur den wert nach dem = von portainfo=3 oder portainfo=4
---> das heißt 3 oder 4 sind die werte das man in textfield postet

grundlegend versteh ich die struktur, aber nur bei phpBB (deswegen textfield - bei wbb nur type="text"), da wir sowas ähnliches bei yami im adr-adventure-addon haben

hab schonmal was vorbereitet
http://www.comasu.de/tboard4/portal.php
unter "wer ist online"

weiß aber nich die $post-einbindung in die switchfuntion bzw. ob der code im portal.tpl einigermaßen richtig ist
___________________________________

so hab alles mehrmals wiederholt und hoffe mein problem ist greifbar geworden.
weiß nicht ob du zeit hast mog
wenns bei dir ehern trübe aussieht -> kannst du mir den link zu einem guten wbb-support-board geben?

also dann - sayonara

cooler :link-smilie^^



Geschrieben von MoG am 06.04.2007 um 12:49:

 

Moin ark ^^

das is kein problem, kann ich dir sogar ausm ärmel schütteln.
Vorneweg: das hat nichts, absolut nichts mit der Boardversion zu tun (wbb, phpbb) es ist schlichtes php und html, mehr nicht ^^

also, los gehts!

Im quelltext sehe ich in deinem Portal folgenden Teil

Quellcode

1:
2:
3:
4:
5:
6:
7:
<form method="post" action="portal.php">
            <table border="0" cellspacing="0" cellpadding="3">
              <tr>
                <td align="center"><input type="text" size="10" name="portal_in"> <input type="submit" name="send" value="portalinfo=" class="input"></td>
              </tr>
            </table>
</form>


Nimm bei deinem Sende-Button den namen "portsend" oder sowas, da "send" von wbb meist vorbelegt ist, damit vermeidest du probleme bei evtl. weiteren Hacks/Addons

die portal.php hab ich mir jetzt nicht angeschaut, aber du müsstest einfach folgendes einfügen:

php:
1:
2:
3:
4:
5:
6:
7:
if (isset($_POST[portsend])) {
...
...
}

bei ... setzt du einfach deine switchanweisung reinwenn du wenig umschreiben willstfüge vor der switchanweisung folgendes:
[php]$portalinfo $_POST[portal_in]


das sollte dann eigentlich klappen.

Anbei sei es von mir kritisiert, ob das system überhaupt sinn macht, solange du bei den zahlen 1 bis 3 bleibst... der besucher wird sich wohl kaum merken, welche zahl wofür steht, da wäre ein textlink einfacher. oder schlüsselwörter :p


mfg mog



Geschrieben von Ark am 06.04.2007 um 17:11:

 

danke erstmal für die direkte hilfe, aber irgendwie funktioniert das noch nicht ganz.
hab mal beide code-fragmente so zusammengefaßt, wie du meintest -> hat sich sicher irgendwo ein fehler eingeschlichen^^
wenn ich den code so einbau, ist über a href="portal.php?portalinfo=1" oder a href="portal.php?portalinfo=2" keine aktivierung mehr möglich

Quellcode

1:
2:
3:
4:
5:
6:
7:
<form method="post" action="portal.php">            
<table border="0" cellspacing="0" cellpadding="3">
              <tr>
                <td align="center"><input type="text" size="10" name="portal_in"> <input type="submit" name="portsend" value="portalinfo=" class="input"></td>
              </tr>
            </table>
</form>


php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
<?php
if (isset($_POST[portsend])) {
switch($portalinfo) {
 
  case "1":
  $infotext "text1";
  break;

  case "2":
  $infotext "text2";
  break;
  

  default:
  $infotext "ausgangstext";
}
}
?>



Geschrieben von MoG am 06.04.2007 um 17:30:

 

natürlich. ich bin davon ausgegangen, dass du keine a href-variante mehr verwendest, sondern ausschließlich das eingabefeld

um beide varianten verwenden zu können, musst du folgendes in der portal.php ändern:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
if (isset($_POST[portsend])) $portalinfo $_POST[portal_in];

switch($portalinfo) {
 
  case "1":
  $infotext "text1";
  break;

  case "2":
  $infotext "text2";
  break;
  

  default:
  $infotext "ausgangstext";
}


Meine Variante hätte auch funktioniert, wenn du nase das gemacht hättest, was ich geschrieben habe Augenzwinkern

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?php
if (isset($_POST[portsend])) {
...
...
}

bei ... setzt du einfach deine switchanweisung reinwenn du wenig umschreiben willstfüge vor der switchanweisung folgendes:
[php]$portalinfo $_POST[portal_in]
?>


Siehst du es?
[...]füge vor der switchanweisung folgendes: [php]$portalinfo = $_POST[portal_in]

den schritt sehe ich nicht in deinem php-fragment.

nun, lies genauer Augenzwinkern und nimm jetzt meinen neuen vorschlag, dadurch kannst du einen textlink und den button verwenden.



Geschrieben von Ark am 06.04.2007 um 20:20:

 

Funktioniert super - danke für den support
hilft ne menge

also dann - viel spaß weiterhin bei truppenübungen


Forensoftware: Burning Board 2, entwickelt von WoltLab GmbH