Zum Seiteninhalt springen

  • Ungelesene Beiträge
  • Unbeantwortete Themen
  • Themen der letzten 24 Stunden
  • Erweiterte Suche
Comasu
  • Forum
  • Projekte
  • Anmelden
  • Registrieren

  • Comasu
  • Laberecke
  • Technik

PHP: keyinput für switchfunktion

  • Ark

    Schüler

    Beiträge
    143

    PHP: keyinput für switchfunktion

    Freitag, 6. April 2007, 09:57
    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. <a href="portal.php?portalinfo=1"><img src="images/portal_info_icon.gif" height="10" width="55" border="0"></a>
    2. oder
    3. <a href="portal.php?portalinfo=2"><img src="images/portal_info_icon.gif" height="10" width="55" border="0"></a>
    <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-Quelltext

    1. switch($portalinfo) {
    2.  
    3.   case "1":
    4.   $infotext = "text1";
    5.   break;
    6.   case "2":
    7.   $infotext = "text2";
    8.   break;
    9.   
    10.   default:
    11.   $infotext = "ausgangstext";
    12. }
    <?php 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

    :link: cooler :link-smilie^^

    20 kb für ein signaturbild ist zu wenig 8|
  • MoG

    Administrator

    Beiträge
    806
    Freitag, 6. April 2007, 11: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. <form method="post" action="portal.php">
    2. <table border="0" cellspacing="0" cellpadding="3">
    3. <tr>
    4. <td align="center"><input type="text" size="10" name="portal_in"> <input type="submit" name="send" value="portalinfo=" class="input"></td>
    5. </tr>
    6. </table>
    7. </form>
    <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-Quelltext

    1. if (isset($_POST[portsend])) {
    2. ...
    3. ...
    4. }
    5. bei ... setzt du einfach deine switchanweisung rein. wenn du wenig umschreiben willst, füge vor der switchanweisung folgendes:
    6. [php]$portalinfo = $_POST[portal_in]
    <?php if (isset($_POST[portsend])) { ... ... } bei ... setzt du einfach deine switchanweisung rein. wenn du wenig umschreiben willst, fü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
    Just Testing
  • Ark

    Schüler

    Beiträge
    143
    Freitag, 6. April 2007, 16: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. <form method="post" action="portal.php">
    2. <table border="0" cellspacing="0" cellpadding="3">
    3. <tr>
    4. <td align="center"><input type="text" size="10" name="portal_in"> <input type="submit" name="portsend" value="portalinfo=" class="input"></td>
    5. </tr>
    6. </table>
    7. </form>
    <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-Quelltext

    1. <?php
    2. if (isset($_POST[portsend])) {
    3. switch($portalinfo) {
    4.  
    5.   case "1":
    6.   $infotext = "text1";
    7.   break;
    8.   case "2":
    9.   $infotext = "text2";
    10.   break;
    11.   
    12.   default:
    13.   $infotext = "ausgangstext";
    14. }
    15. }
    16. ?>
    <?php if (isset($_POST[portsend])) { switch($portalinfo) { case "1": $infotext = "text1"; break; case "2": $infotext = "text2"; break; default: $infotext = "ausgangstext"; } } ?>

    20 kb für ein signaturbild ist zu wenig 8|
  • MoG

    Administrator

    Beiträge
    806
    Freitag, 6. April 2007, 16: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-Quelltext

    1. if (isset($_POST[portsend])) $portalinfo = $_POST[portal_in];
    2. switch($portalinfo) {
    3.  
    4.   case "1":
    5.   $infotext = "text1";
    6.   break;
    7.   case "2":
    8.   $infotext = "text2";
    9.   break;
    10.   
    11.   default:
    12.   $infotext = "ausgangstext";
    13. }
    <?php 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 ;)

    PHP-Quelltext

    1. <?php
    2. if (isset($_POST[portsend])) {
    3. ...
    4. ...
    5. }
    6. bei ... setzt du einfach deine switchanweisung rein. wenn du wenig umschreiben willst, füge vor der switchanweisung folgendes:
    7. [php]$portalinfo = $_POST[portal_in]
    8. ?>
    <?php if (isset($_POST[portsend])) { ... ... } bei ... setzt du einfach deine switchanweisung rein. wenn du wenig umschreiben willst, fü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 ;) und nimm jetzt meinen neuen vorschlag, dadurch kannst du einen textlink und den button verwenden.
    Just Testing
  • Ark

    Schüler

    Beiträge
    143
    Freitag, 6. April 2007, 19:20
    Funktioniert super - danke für den support
    hilft ne menge

    also dann - viel spaß weiterhin bei truppenübungen :saufen:

    20 kb für ein signaturbild ist zu wenig 8|
  • Hilfe
  • Impressum
  • Nutzungsbestimmungen
  • Mitglieder
  • Galerie
  • Samstag, 13. Juni 2026, 20:47
Forensoftware: Burning Board® 3.1.8, entwickelt von WoltLab® GmbH