Variable

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

  • Variable

    Hallo
    habe mir heute nacht ein kleine Newslettereintragungsscript gebastelt.
    es kommt ein fehler den ich überhaupt nicht nachvollziehen kann den ich habe die variable doch einen wert zugewiesen!
    Fehler:
    Notice: Undefined variable: action in /newsletter.php on line 47
    Notice: Undefined variable: action in /newsletter.php on line 163
    es handelt sich hierbei um die ein und selbe variable!
    Naja vllt kann mir ja jemand sagen wo mein fehler liegt!
    Also die Fehlerbeschreibung sagt ja ich hätte eine Variable nicht definiert jedoch bin ich der meinung sie ist definiert!

    CODE:
    PHP-Code:
    <?    
    error_reporting(E_ALL);

    //---------------------------------------------------------------------------
    //Kennungen

      $host="...";
      $user="...";
      $passwort="...";
      $datenbank="...";  

      if(!$conn = mysql_pconnect($host, $user, $passwort))
      {
       die("Verbindung zur Datenbank konnte nicht hergestellt werden. Errorcode: ".mysql_error());
      }


      if(!mysql_select_db($datenbank))
      {
         die("Die Datenbank $db konnte nicht ausgewaehlt werden. Errorcode: ".mysql_error());
      }

    //----------------------------------------------------------------------------

        
    $debugmodus = false;


    //--------------------------------------------------------------------------------------------------

        
    if($debugmodus) {

            
    echo "action     |". $action     ."|<br>";
        
        echo "name        |". $name         ."|<br>";
        
        echo "email        |". $email         ."|<br><br>";

        }


    //--------------------------------------------------------------------------------------------------


    if($action == "E-Mail Adresse eintragen") {

        /* IP bestimmen */
        
    $ip = getenv("REMOTE_ADDR");
        
    $host = gethostbyaddr($ip);

        
    $headers =     "From: Internet<info@domain.com>\r \n".
                
        "ReplyTo: [email]info@domain.com[/email]\r \n".
                    
    "Content-Type: text/plain\r \n".
                    
    "X-Mailer: PHP/";
        
    $message =     "Name: ". $name ."\n".
                
    "E-Mail Adresse: ". $email ."\n\n".
        
    "Internetseite: [url]http://www.domain.com\n[/url]";
    @mail("info@domain.com", "Newsletter Eintrag auf [url]www.domain.com[/url]", "$message", "$headers");

        /* Eintragen der Werte in Newsletter DB */
        
    $email = strtolower($email);
        
    mysql_query("INSERT INTO newsletter_abo (name, email, active, inserttime, insertip, inserthost) ".    
            "VALUES ('". $name     ."', "."'". $email ."', "."'1', "."now(), "."'". $ip     ."', "."'". $host     ."')");


        
    $action = "thank you";

    }


    //--------------------------------------------------------------------------------------------------
    ?>

    <head>
    <title>Newsletter</title>

    <script language="javascript" type="text/javascript">

    <!--
    function check()
    {
        
    if (document.newsletter.name.value =="")
        
    {
            
    alert("Bitte geben Sie Ihren Namen ein.");
        
        document.newsletter.name.focus();
            
    return false;
        }
        
    if (document.newsletter.email.value =="")
        
    {
            
    alert("Bitte geben Sie Ihre E-Mail-Adresse ein.")    ;
            document.newsletter.email.focus();
            
    return false;
        }
        
    if(document.newsletter.email.value.indexOf('@') == -1)
       
     {
           
     alert("Das ist keine gültige eMail-Adresse!");
            document.newsletter.email.focus();
        
        return false;
        }
    }

    //-->
    </script>




    </head>

    <body>


    <table width="100%" cellpadding="8" cellspacing="4" border="0">
        
    <tr>
            
    </tr>
    </table>


    <table width="100%" cellpadding="0" cellspacing="0" border="0">
        
    <tr>
            
    <td width="150">
            
    <img name="trans" src="../../images/trans.gif" width="150" height="1" border="0" alt="">
            
    </td>
            
    <td>
            
    <?

                
    if($action == "thank you") {

                    
    ?>

                    
    <table border="0" cellpadding="8" cellspacing="0" width="380">
            
    <tr>
                        
    <td class="normal">
            
    Ihre E-Mail Adresse wurde soeben in unseren Verteiler eingetragen.
        
    <br><br><br>
                                
    Vielen Dank.
                                
    <br><br>
                            
    </td>
                        
    </tr>
                        
    <tr>
                        
    <td class="normal">
                        
    <a href="../startseite.php" onmouseover="(window.status='zur Startseite'); return true" onmouseout="(window.status='')" target="_self">zur Startseite</a>
                            
    </td>
                        
    </tr>
                    
    </table>

                   
    <?

        
        } else {

                    
    ?>

                    
    <table border="0" cellpadding="8" cellspacing="0" width="380">
            
    <tr>
                    
    <td class="normal">
        
    <br>
                    
    Wenn Sie immer aktuelle Angebote und Infos von mir bekommen möchten, tragen Sie sich doch einfach in unseren kostenlosen Newsletter mit Ihrer E-Mail-Adresse ein.
        
    <br>
                                
    <br>
                            
    <form name="newsletter" action="<?=$PHP_SELF?>" method="post" onSubmit="return check()">
        
    <table border="0" cellpadding="0" cellspacing="2" width="100%">
                    
    <tr>
                            
    <td><span class="normal"><b>Name:</b></span></td>
        
    <td><input type="text" name="name" size="24" maxlength="100"></td>
            
    </tr>
        
    <tr>
            
    <td><span class="normal"><b>E-Mail:</b></span></td>
            
    <td>
    <input type="text" name="email" size="24" maxlength="100">
    </td>
                                    
    </tr>
                                    
    <tr>
                                    
    <td></td>
        
    <td class="normal"><br>
        
    <input type="checkbox" value="1" name="lucky-news" checked disabled>lucky Newsletter<br>
        
    <br>
        
    </td>
                                    
    </tr>
                        
    <tr>
                    
    <td></td>
                
    <td>
                
    <input type="submit" name="action" value="E-Mail Adresse eintragen">
            
    </td>
                                
    </tr>
                                
    </table>
                        
    </form>
                        
    </td>
                        
    </tr>
                    
    </table>

                
    <?

                }

                
    ?>

            
    </td>
        
    </tr>

    </table>


    </body>

    </html>

  • #2
    if($action == "E-Mail Adresse eintragen") {
    Du musst der Variablen natürlich einen Wert zuweisen _bevor_ du abfragst, ob der Inhalt irgendwie ist.
    ich glaube

    Kommentar


    • #3
      Re: Variable

      Das ist doch nicht dein erster Thread hier, wo niveaumässig ganz ganz unten angefangen werden musste, dir die Grundlagen zu erklären ... ich bin ziemlich sicher, dass in einem deiner anderen Threads auch schon der Hinweis auf register_globals=off kam, und dass du dich darüber informieren sollst - also mach das bitte endlich.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Sorry leute aber ich versteh grad mein eigenes Script nicht mehr!
        Ich sag ja in der zeile das wenn die email adresse eingetragen ist das es dann in die db eintragen soll!
        aber wie soll ich der dann bitte einen wert zuweisen!
        des kann man doch gar nicht den wenn ich der einen wert zuweise dann trägt sich der wert ja dort ein und dann sagt er mir error!
        Kann mir des jemand mal kurz erklären wie ich da verfahren soll!

        wenn dann müsst ich sie ja fragen ob sie einen wert hat,
        mit empty ...
        Zuletzt geändert von luckymedia; 06.06.2007, 14:55.

        Kommentar


        • #5
          variable zuweisen mit $_REQUEST
          z.b.
          PHP-Code:
          $email "".$_REQUEST["email"]."";
          #teste deine ausgabe dann mal mit 
          echo "$email<br>"
          register_globals testen
          register_globals - php manual
          selfmade-webdesign
          webdesign leipzig

          Kommentar


          • #6
            $email = "".$_REQUEST["email"]."";
            ist das dein ernst?
            ich glaube

            Kommentar


            • #7
              wenn ich bei mir formulardaten übermittle dann hole ich sie so von der letzten seite und es funktioniert
              ich lass mich gern eines besseren belehren
              selfmade-webdesign
              webdesign leipzig

              Kommentar


              • #8
                Super danke!!!!!!!
                Der Fehler ist schon mal weg, aber jetzt sagt er mir:

                Notice: Undefined index: email in /newsletter.php on line 44
                Das ist die zeile von dir!
                CODE:
                PHP-Code:
                //--------------------------------------------------------------------------------------------------
                $action "".$_REQUEST["email"]."";


                if(
                $action == "E-Mail Adresse eintragen") {

                    
                /* IP bestimmen */
                    
                $ip getenv("REMOTE_ADDR");
                    
                $host gethostbyaddr($ip);

                    
                $headers =     "From: Internet<info@domain.com>\r \n".
                            
                    
                "ReplyTo: [email]info@domain.com[/email]\r \n".
                                
                "Content-Type: text/plain\r \n".
                                
                "X-Mailer: PHP/";
                    
                $message =     "Name: "$name ."\n".
                            
                "E-Mail Adresse: "$email ."\n\n".
                    
                "Internetseite: [url]http://www.domain.com\n[/url]";
                @
                mail("info@domain.com""Newsletter Eintrag auf [url]www.domain.com[/url]""$message""$headers");

                    
                /* Eintragen der Werte in Newsletter DB */
                    
                $email strtolower($email);
                    
                mysql_query("INSERT INTO newsletter_abo (name, email, active, inserttime, insertip, inserthost) ".    
                        
                "VALUES ('"$name     ."', "."'"$email ."', "."'1', "."now(), "."'"$ip     ."', "."'"$host     ."')");


                    
                $action "thank you";

                }
                //-------------------------------------------------------------------------------------------------- 

                Kommentar


                • #9
                  zeile umbrechen!
                  dann versuch es so mal so $action = $_REQUEST['email'];
                  selfmade-webdesign
                  webdesign leipzig

                  Kommentar


                  • #10
                    kommt der gleiche fehler!

                    Kommentar


                    • #11
                      Also lucky!!

                      das ist kein fehler sonder nur eine notic! dein apache ist scharf eingestellt und bringt bei nicht initierten variablen diese notice!

                      initiere bitte alle variablen bevor du auf sie zugreifst mit zb if ()

                      also im fall $action...

                      $action = '';
                      oder auch
                      $action = "irgend ein inhalt";


                      dann dürften die fehler nichtmehr kommen.

                      Kommentar


                      • #12
                        geht denn nicht $action = $_REQUEST["email"]; ???
                        selfmade-webdesign
                        webdesign leipzig

                        Kommentar


                        • #13
                          $action soll ja auch nicht $_POST['email'] sein, sondern laut Deinem Formular $_POST['action'].

                          Benenn im Formular den Submit-Button wieder in Submit um:

                          <input type="Submit" name="Submit" value="Eintragen">

                          Das Absenden fragst ab mit

                          if(isset($_POST['Submit'])){ ...

                          und dann kannst Dir den Inhalt von POST anschaun mit print_r($_POST);

                          Kommentar


                          • #14
                            @jens

                            wenns so einfach wäre dann kommt aber ein wirklich wieder ein fehler !

                            Kommentar


                            • #15
                              @brauni

                              nein leider nicht da kommt dann der fehler mit email index

                              Kommentar

                              Lädt...
                              X