kostenloser Webspace werbefrei: lima-city


Fehler bei Darstellung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    singen

    Kostenloser Webspace von singen

    singen hat kostenlosen Webspace.

    [Sorry für die Übrschrift, meine natürlich Fehler bei Darstellung!]
    Hallo Limaner :biggrin:

    Möchte ein Formular abschicken mit versteckten Felder über ein Bild:

    <?PHP
    echo \"<table width=\\\"400\\\"  border=\\\"0\\\" cellspacing=\\\"3\\\" cellpadding=\\\"3\\\" align=\\\"center\\\">\";
    echo \"<tr>\";
    echo \"<td width=\\\"100\\\" height=\\\"50\\\"><form name=\\\"gb\\\" action=\\\"acp.php\\\" method=\\\"post\\\"><input type=\\\"hidden\\\" name=\\\"akt\\\" value=\\\"gb\\\"><input type=\\\"image\\\" src=\\\"beta_images/acp_gb.gif\\\"  title=\\\"Hier k&ouml;nnen G&auml;stebucheintr&auml;ge editiert und gel&ouml;scht werden!\\\"></form></td>\";
    echo \"<td width=\\\"100\\\" height=\\\"50\\\"><form name=\\\"ls\\\" action=\\\"acp.php\\\" method=\\\"post\\\"><input type=\\\"hidden\\\" name=\\\"akt\\\" value=\\\"ls\\\"><input type=\\\"image\\\" src=\\\"beta_images/acp_schrift.gif\\\" title=\\\"Hier kann die Laufschrift bearbeitet werden!\\\"></form</td>\";
    echo \"<td width=\\\"100\\\" height=\\\"50\\\"><form name=\\\"sb\\\" action=\\\"acp.php\\\" method=\\\"post\\\"><input type=\\\"hidden\\\" name=\\\"akt\\\" value=\\\"sb\\\"><input type=\\\"image\\\" src=\\\"beta_images/acp_profile.gif\\\" title=\\\"Hier können die Steckbriefe bearbeitet werden!\\\"></form</td>\";
    echo \"<td width=\\\"100\\\" height=\\\"50\\\"><form name=\\\"lc\\\" action=\\\"acp.php\\\" method=\\\"post\\\"><input type=\\\"hidden\\\" name=\\\"akt\\\" value=\\\"lc\\\"><input type=\\\"image\\\" src=\\\"beta_images/acp_links.gif\\\" title=\\\"Die Top 50 der Links!\\\"></form</td>\";
    echo \"</tr>\";
    echo \"</table>\";
    ?>


    Mitm FF geht es, aber mitm IE überhaupt nicht, er schickt glaube ich falschen Werte weiter?!!?

    und wenn ich grad dabei bin, gibt es eigentlich einen Unterschied im echo zwischen
    echo \"  name=\\\"bla\\\"    \";

    und
    echo \"  name=\'bla\'    \";


    Danke


    Beitrag geändert: 29.4.2008 10:55:54 von singen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e********l

    Wie fragst du in PhP den Wert denn ab? So im groben sehe ich da keinen wirklichen Fehler. Würde anstelle von Formularen zur Verzweigung direkt Links nutzen, das ist einfacher ;)

  4. Wie fragst du in PhP den Wert denn ab? So im groben sehe ich da keinen wirklichen Fehler. Würde anstelle von Formularen zur Verzweigung direkt Links nutzen, das ist einfacher ;)

    Würde ich auch sagen.
    Aber wenn es schon ein Formular sein soll, dann mach doch wirklich nur eins und nicht für jeden Link ein eigenes. Außerdem haben die ganzen forms keinen submit-Button, du kannst von Glück reden, dass der FF überhaupt irgendwas macht.
  5. Autor dieses Themas

    singen

    Kostenloser Webspace von singen

    singen hat kostenlosen Webspace.

    Danke für die schnelle Antwort.

    <?PHP
    if ($akt == \"ls\")
    {anweisung}
    else if ($akt == \"sb\")
    {anweisung}
    
    ... u.s.w.
    ?>


    Ich dachte, dass der Fehler beim Abschicken liegen muss..
    weil sobald ich die Sachen geschickt habe \"erstellt\" der Interpreter die Folgeseite, oder?

    .. umd mit den Links gehts glaube ich auch nicht... kann die Variablen nur mit POST übergeben!


    ...

    Als submit-Button geht doch das Bild, oder? die sachen werden mitm IE auch übergeben, aber es kommt ne falsche Folgeseite

    Beitrag geändert: 29.4.2008 11:10:55 von singen
  6. e********l

    Wird $akt vorher irgendwie zugewiesen oder woher bekommt das seinen Wert? Ansonsten gibt es erstmal Haue für die Aktivierung von register_globals ;D
  7. Autor dieses Themas

    singen

    Kostenloser Webspace von singen

    singen hat kostenlosen Webspace.

    aso.. klar, wird schon zugewiesen..
    $akt = $_POST[\"akt\"];
    ....


  8. .. umd mit den Links gehts glaube ich auch nicht... kann die Variablen nur mit POST übergeben!

    Du kannst doch statt POST einfach GET verwenden. Die Links sähen dann irgendwie so aus acp.php?akt=gb und abfragen kannst du sie mit if($_GET[\'akt]==\'gb\')

    Zu deiner zweiten Frage:
    <?
    echo \"$var\"; // gibt wert von var aus
    ?>

    prüft alles was zwischen den \"...\" steht auf mögliche Variablen und gibt den Wert direkt aus. Wenn $var=\'foo\' ist, würde also foo ausgegeben werden.
    Da der Interpreter aber nicht weiß, wenn du \" in der Ausgabe verwendest, ob das nun das Ende sein soll, oder noch was kommt, musst du \" im echo ecsapen mit \\\". Bei \' brauchst das das natürlich nicht, da das ein anderes Zeichen ist.

    Genauso kannst du echo mit \' einleiten
    <?
    echo \'$var\'; // gibt $var aus
    ?>

    das prüft entsprechend nicht auf Variablen, $var würde $var ausgegeben werden.
  9. Autor dieses Themas

    singen

    Kostenloser Webspace von singen

    singen hat kostenlosen Webspace.

    .. Danke für die \"echo Aufklärung\"


    kann die nicht mit GET übergeben, weil diese Seite in ein PHPBB Forum eingebaut ist..

    Ich wollte nicht extra einen Login, usw. Bereich schreiben..

    Jetzt Prüfe ich einfach am Anfang ob der User auch im Forum die Adminrechte hat..
  10. e********l

    Wenn du unbedingt ein Bild benötigst für deinen Knopf, dann kannst du den Knopf anstatt mit dem Image Typ auch über CSS gestalten. Dann könntest du vier Submit Buttons hinsetzen die jeweils verschieden gestaltet sind. Alle müssten den selben Namen haben aber unterschiedliche Values oder einfach nur unterschiedliche Namen ;) Wobei ersteres natürlich leichter ist.
  11. Autor dieses Themas

    singen

    Kostenloser Webspace von singen

    singen hat kostenlosen Webspace.

    Habe jetzt mal die Bilder weggemacht und mit type=\\\"submit\\\" value=\\\"OK\\\" versucht...

    geht auch nicht, es wird immer nur das erste Formular korrekt übergeben..
  12. e********l

    Du sollst auch nur ein Formular definieren ;)

    Hab mal ein Beispiel dazu gemacht:
    <?php
    echo \'<form name=\"menu\" action=\"index.php\" method=\"post\">\'.PHP_EOL;
    echo \'<table width=\"400\"  border=\"0\" cellspacing=\"3\" cellpadding=\"3\" align=\"center\">\'.PHP_EOL;
    echo \'<tr>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"gb\" style=\"border: 0; background: url(./img/meinBild.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"ls\" style=\"border: 0; background: url(./img/meinBild.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"sb\" style=\"border: 0; background: url(./img/meinBild.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"lc\" style=\"border: 0; background: url(./img/meinBild.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'</tr>\'.PHP_EOL;
    echo \'</table>\'.PHP_EOL;
    echo \'</form>\'.PHP_EOL;?>


    Du musst lediglich abfragen ob gb, ls, sb oder lc im POST vorhanden sind ;) Falls du Zugriff auf Javascript hast, dann kannst du dein ACT Feld als Hidden mitschicken und beim OnSubmit dem Hidden Feld den Namen vom gedrückten Submit Knopf zuweisen

    dazu musst du im onclick des submit inputs nur folgendes schreiben: document.menu.act.value = this.name;

    <?PHP
    echo \'<form name=\"menu\" action=\"index.php\" method=\"post\">\'.PHP_EOL;
    echo \'<input type=\"hidden\" name=\"akt\" value=\"\" />\'.PHP_EOL;
    echo \'<table width=\"400\"  border=\"0\" cellspacing=\"3\" cellpadding=\"3\" align=\"center\">\'.PHP_EOL;
    echo \'<tr>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"gb\" onclick=\"document.menu.akt.value = this.name;\" style=\"border: 0; background: url(./img/meinBild1.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"ls\" onclick=\"document.menu.akt.value = this.name;\" style=\"border: 0; background: url(./img/meinBild2.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"sb\" onclick=\"document.menu.akt.value = this.name;\" style=\"border: 0; background: url(./img/meinBild3.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'<td width=\"100\" height=\"50\"><input type=\"submit\" name=\"lc\" onclick=\"document.menu.akt.value = this.name;\" style=\"border: 0; background: url(./img/meinBild4.jpg) no-repeat; width: 20px; height: 100px;\" /></td>\'.PHP_EOL;
    echo \'</tr>\'.PHP_EOL;
    echo \'</table>\'.PHP_EOL;
    echo \'</form>\'.PHP_EOL;
    ?>


    //Edit: Hab das Onclick als Beispiel beigefügt.

    Beitrag geändert: 29.4.2008 12:53:31 von evil-devil
  13. Autor dieses Themas

    singen

    Kostenloser Webspace von singen

    singen hat kostenlosen Webspace.

    Danke für die Hilfe!..

    habe den Fehler grad gefunden, nach den </form fehlte ein > ...

  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!