_server['php_self']

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • _server['php_self']

    hallo!

    ich versuche gerade eine seite anzupasse, die einen newslettereintrag ermöglicht. bisher läuft sie als reine php-seite:



    PHP-Code:
    <? include("../newsletter/subscription.inc.php"); ?>
    <form action="$_server['php_self']" method="post" name="newsletterform" enctype="multipart/form-data">
                <input type="hidden" name="subscription_data[group_id]" value="1" />
                <input type="text" name="subscription_data[email]" size="22" maxlength="40" tabindex="1"> <br /><br />
                <input type="submit" name="subscribe" value="subscribe" tabindex="2">
            <br />    
            <div class="nl_message">
                <? if ($subscription["action"]): ?>
                          <? if ($subscription["action"] == "subscribe"): ?>
                            <? if ($subscription["message"] == "invalid_email_address"): ?>please enter a valid email address to subscribe!
                                <? elseif ($subscription["message"] == "duplicate_email_address"): ?>your email address is already listed
                                <? elseif ($subscription["message"] == "success"): ?>thx for subscription, please check your mailbox
                            <? endif; ?>
                          <? endif; ?>
                        
                          <? if ($subscription["action"] == "confirm_subscription" && $subscription["message"] == "success"): ?>subscription confirmed
                              <? elseif ($subscription["action"] == "unsubscribe" && $subscription["message"] == "success"): ?>please check your mailbox
                              <? elseif ($subscription["action"] == "confirm_unsubscription" && $subscription["message"] == "success"): ?>unsubscription confirmed
                          <? endif; ?>
                        
                          <? if ($subscription["message"] == "database_error"): ?>a database error occured
                          <? endif; ?>
                <? endif; ?>
            </div>
            </form>
    ich möchte dieses skript und alle dranhängenden einfach weiter benutzen, die seite aber in eine wordpress-umgebung importieren.

    nun funktioniert die datenübergabe per $_SERVER['PHP_SELF'] dann leider nicht mehr. die newsletter-seite wird aufgerufen über
    PHP-Code:
    index.php?page_id=84 
    wie kann ich das nun angehen?

    bin kein php-meister, daher meine frage an euch.
    danke!

  • #2
    Re: $_server['php_self']

    PHP-Code:
    echo '<pre>' print_r($_SERVER1) . '</pre>'

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      das ging schnell.
      und das ist kurz.

      was bedeutetd as denn bzw. was passiert da?

      danke!

      Kommentar


      • #4
        Original geschrieben von headkit
        was bedeutetd as denn bzw. was passiert da?
        Das baust du oben auf der Seite ein, die Ausgabe schaust du dir an, dann weisst du was $_SERVER alles an Informationen bereithält - und dann suchst du dir was passendes raus.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          $_SERVER['PHP_SELF'] gibt eben nicht den namen der Datei aus, wenn Du sie per include einbindest
          Du kannst die Konstante __FILE__
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            für mich sieht
            PHP-Code:
            [REDIRECT_QUERY_STRING
            am richtigsten aus...

            ...

            nee stimmt nicht, dann fehlt ja "index.php" davor!

            und wenn ich
            PHP-Code:
            action="index.php?<?php echo($_SERVER['REDIRECT_QUERY_STRING']); ?>"
            schreibe kommt auch keine fehlermeldung, wenn ich z.B. nichts eintrage und absende...
            Zuletzt geändert von headkit; 24.01.2007, 19:44.

            Kommentar


            • #7
              Wo genau liegt denn jetzt dein Problem?

              Ist __FILE__ nicht die Lösung?
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                du hattest deinen satz nicht beendet und ich hab nicht verstanden, was ich mit __FILE__ anstellen aknn.

                ich guck mir das aber gleich mal an.

                Kommentar


                • #9
                  mit
                  PHP-Code:
                  <?php __FILE__ ?>
                  passiert leider auch nichts.
                  keine fehler oder erfolgsmeldung...

                  Kommentar


                  • #10
                    echo???

                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php echo(__FILE__); ?>
                      same same...
                      but different: hier ruft er dann das template-file auf, anstelle des benötigten aufrufs "index.php?page_id=84"

                      Kommentar


                      • #12
                        meine Güte...
                        echo $_SERVER['REQUEST_URI'];
                        und fertig

                        __FILE__ kannst du vergessen, ist für dein Vorhaben nicht relevant

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          führt mich zwar auf die seite, gibt aber keine meldung raus...

                          Kommentar


                          • #14
                            Original geschrieben von headkit
                            führt mich zwar auf die seite, gibt aber keine meldung raus...
                            tjo ... und?

                            Debugging betrieben, Test-Ausgaben print_r und echo helfen

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar


                            • #15
                              eventuell liegt es ja mal wieder an den pfaden:

                              ich binde ja die datei
                              PHP-Code:
                              <? include("http://www.mein_wp.de/newsletter/subscription.inc.php"); ?>
                              ein, die aber wiederum weitere dateien einbindet:
                              PHP-Code:
                                  require_once("admin/include/configphp");
                                  require_once(
                              "admin/include/config_local.php");
                                  require_once(
                              "admin/include/newsletter.php");
                                  include(
                              "admin/include/db.php"); 
                              diese liegen im ordner "newsletter", weit weit weg vom ordner, wo die wp-installation liegt.

                              jetzt meine frage: woran orientiert sioch denn die in der indexdatei aufgerufene php-datei, die wiederum andere php-dateien einbindet? am root der indexdatei, in die sie eingebunden ist, oder an der eigenen position im verzeichniswald?

                              Kommentar

                              Lädt...
                              X