Fehler abfangen

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

  • Fehler abfangen

    Hi Leute

    Ich habe ein Newsletter geschrieben mit dem ich noch ein Problemchen habe. Soweit klappt es gut, nur wenn ich eine Email die schon in der DB existiert nochmals über Formular abschicke (eintragen möchte) erscheint dieselbe Fehlermeldung wie wenn ich ein leeres Feld abschicke!
    Also "Bitte geben Sie eine Email Adresse ein".

    Lieber und logischer wäre es mir wenn schon auf die vorhandene Email-Adresse hingewiesen wird wie z.B. "Sie sind schon in unserem Newsletter eingetragen".
    Ich kriege den Code nicht hin weil ich ziemlicher Newbie bin in sachen PHP und MySQL, also wenn Ihr die Frage idiotisch findet lasst mich am leben


    Ich poste sicherheitshalber nochmal ein Teil vom Code:



    PHP-Code:
    <?php
    $editFormAction 
    $HTTP_SERVER_VARS['PHP_SELF'];
    if (isset(
    $HTTP_SERVER_VARS['QUERY_STRING'])) {
      
    $editFormAction .= "?" $HTTP_SERVER_VARS['QUERY_STRING'];
    }

    if ((isset(
    $HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
      
    $insertSQL sprintf("INSERT INTO news (name, email) VALUES (%s, %s)",
                           
    GetSQLValueString($HTTP_POST_VARS['name'], "text"),
                           
    GetSQLValueString($HTTP_POST_VARS['email'], "text"));

                               
    $error "Bitte geben Sie eine E-Mail Adresse an.";  
                               
    $error2 "Sie sind in unserem Newsletter schon eingetragen.";
                               
    $ok "Eintrag erfolgreich.";
                               
    mysql_select_db($database_arena$arena);
                               
    $Result1 mysql_query($insertSQL$arena);
                               if (!
    $Result1)
                                 {
                                 echo 
    "<table lenght=402 height=20 class=newstable><td><center>$error</center></td></table>";
                                 }
                                  else
                                 {
                                 echo 
    "<font face=verdana size=-2 color=#000000>$ok | &nbsp;<a href=aktuell.php class=newsbesucht>hier</a> geht es weiter</font>";
                                 }
                                 }
                                 
    ?>


    Ich bin unendlich dankbar für Jeden HInweis oder Hilfe
    MfG rony

  • #2
    Nun, du gibts auch nur diese eine Fehlermeldung aus. Im Script ist ja nicht mal eine andere Ausgabe angegeben!

    Kommentar


    • #3
      - prüf die email-addie nicht nur mit isset() sondern auch mit emty() (wofür eigentlich isset?)
      - setz das email-feld in der db auf "unique" und frage nach dem insert mit mysql_affected_rows ab, ob ein eintrag gemacht wurde
      Kissolino.com

      Kommentar


      • #4
        Also aus Platzgründen hab ich nicht den ganzen Code gepostet, aber hier nochmal der ganze Code:

        PHP-Code:

        <?php require_once('Connections/arena.php'); ?>
        <?php
        mysql_select_db
        ($database_arena$arena);
        $query_Recordset1 "SELECT * FROM news";
        $Recordset1 mysql_query($query_Recordset1$arena) or die(mysql_error());
        $row_Recordset1 mysql_fetch_assoc($Recordset1);
        $totalRows_Recordset1 mysql_num_rows($Recordset1);
        ?>
        <html>
        <head>
        <title>start</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <link href="css/main-style.css" rel="stylesheet" type="text/css">
        </head>
        <body leftmargin="30" topmargin="0">
             <tr>
                <td width="670" height="520" valign="top"><table width="600" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td width="22" height="20">&nbsp;</td>
                        <td height="20">&nbsp;</td>
                        <td height="20" class="aktualisiert"><div align="right"></div></td>
                    </tr>
                    <tr>
                        <td width="22" height="500" rowspan="2">&nbsp;</td>
                        <td height="480" colspan="2" valign="top"><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Newsletter
                         Sport <font color="#FF0000">Arena</font></strong></font><font color="#FF0000">&nbsp;
                              </font>
                               <hr align="left" width="580" size="1" noshade>                                   
                                <span class="text"><img src="img/blind.gif" width="2" height="5"><br>
                        Tragen  Sie sich in unser Newsletter ein damit wir Sie informieren k&ouml;nnen &uuml;ber aktuelle Events und Erreignisse.</span><span class="text"> <br>
                              <br>
                              *Sie
                              k&ouml;nnen
                              den
                              Newsletter
                              auch
                              <a href="newsletter_del.php"><strong>deaktivieren</strong></a> indem Sie hier klicken.<br><br></span>
                              <table width="577" height="100" border="0" cellpadding="0" cellspacing="0">
                                    <tr>
                                          <td width="413" valign="top"><em> </em>
                                                <hr align="left" size="1" noshade>
                                                <br>
                                                <table width="412" height="20" border="0" cellpadding="0" cellspacing="0">
                                                      <tr>
                                                            <td width="79">&nbsp;</td>
                                                            <td width="333"><?php
                                        
        function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
                                    {
                                  
        $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
                      switch (
        $theType) {
            case 
        "text":
              
        $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
              break;    
            case 
        "long":
            case 
        "int":
              
        $theValue = ($theValue != "") ? intval($theValue) : "NULL";
              break;
            case 
        "double":
              
        $theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
              break;
            case 
        "date":
              
        $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
              break;
            case 
        "defined":
              
        $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
              break;
          }
          return 
        $theValue;
        }

        $editFormAction $HTTP_SERVER_VARS['PHP_SELF'];
        if (isset(
        $HTTP_SERVER_VARS['QUERY_STRING'])) {
          
        $editFormAction .= "?" $HTTP_SERVER_VARS['QUERY_STRING'];
        }

        if ((isset(
        $HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
          
        $insertSQL sprintf("INSERT INTO news (name, email) VALUES (%s, %s)",
                               
        GetSQLValueString($HTTP_POST_VARS['name'], "text"),
                               
        GetSQLValueString($HTTP_POST_VARS['email'], "text"));

                                   
        $error "Bitte geben Sie eine E-Mail Adresse an.";  
                                   
        $error2 "Sie sind in unserem Newsletter schon eingetragen.";
                                   
        $ok "Eintrag erfolgreich.";
                                   
        mysql_select_db($database_arena$arena);
                                   
        $Result1 mysql_query($insertSQL$arena);
                                   if (!
        $Result1)
                                   {
                                   echo 
        "<table lenght=402 height=20 class=newstable><td><center>$error</center></td></table>";
                                   }
                                    else
                                   {
                                   echo 
        "<font face=verdana size=-2 color=#000000>$ok | &nbsp;<a href=aktuell.php class=newsbesucht>hier</a> geht es weiter</font>";
                                   }
                                   }
                                    
        ?>
                                  </td>
                                              </tr>
                                                </table>                                       
                                                      <form method="post" name="form1">
                                                      <table width="300" align="left">
                                                                  <tr valign="baseline">
                                                                        <td width="73" height="40" align="center" valign="middle" nowrap class="form"><div align="left">Name:</div></td>
                                                                        <td width="215" height="40" valign="middle">
                                                                              <div align="left">
                                                                                 <input type="text" name="name" value="" size="32" class="news1">
                                                                          </div></td>
                                                                  </tr>
                                                                  <tr valign="baseline">
                                                                        <td height="40" align="center" valign="middle" nowrap class="form"><div align="left">Email:</div></td>
                                                                        <td height="40" valign="middle">
                                                                              <div align="left">
                                                                               <input type="text" name="email" value="" size="32" class="news1">
                                                                         </div></td>
                                                                  </tr>
                                                                  <tr valign="middle">
                                                                        <td height="40" align="right" nowrap>&nbsp;</td>
                                                                        <td height="40"><img src="img/blind.gif" width="2" height="5"><br>                                                               
                                                                            <input type="submit" value="In Newsletter Eintragen" class="newsbutton"><br>                                                                
                                                                           <img src="img/blind.gif" width="2" height="5"><br>
                                                                         <font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">*E-Mail Feld ist ein Pflichtfeld</font></td>
                                                                  </tr>
                                                            </table>
                                         <input type="hidden" name="MM_insert" value="form1">
                                                      </form>
                                                <p>&nbsp;</p></td><td width="164">&nbsp;</td>
                                            </tr>
                                      </table>
                              <br>                      <br>                      
                              <hr align="left" width="580" size="1" noshade>                      
                              <span class="text"><br>
                        </span> </td>
                            </tr>
                            <tr>
                          <td width="318" height="20" valign="top">&nbsp;</td>
                          <td width="260" valign="middle" class="aktualisiert"><div align="right"></div></td>
                            </tr>
                           </table></td>
                         </tr>
                    </table>
        </body>
        </html>
        <?php
        mysql_free_result
        ($Recordset1);
        ?>
        Gruss rony

        Kommentar


        • #5
          Ich seh trotzdem nur, dass du $error ausgibst. $error2 wird nur deklariert, und das wars dann auch schon wieder.

          Kommentar


          • #6
            Original geschrieben von Happy Nihilist
            Nun, du gibts auch nur diese eine Fehlermeldung aus. Im Script ist ja nicht mal eine andere Ausgabe angegeben!
            Den Code hat DW gemacht, macht auch weiterhion keine Probleme, mich interessiert weil ich nicht weiterkomme wie der Code aussehen könnte also bzw. die Abfrage wenn email schon vorhanden dann gebe "Text" aus.

            Das Feld email in der DB ist schon mittels "unique" definiert.

            Gruss rony

            Kommentar


            • #7
              Wer hat den Code gemacht?

              Kommentar


              • #8
                Original geschrieben von Happy Nihilist
                Ich seh trotzdem nur, dass du $error ausgibst. $error2 wird nur deklariert, und das wars dann auch schon wieder.
                Ich habe Ihn desshalb deklariert weil ich dachte ich könnet mit "!($Result2)"
                ne andere Fehlermedlung ausgegen.

                Aber ich weiss nicht ob das machbar ist so eine Abfrage mit "!($Result2)" damit geprüft wird ob eine email schon vorhanden ist.

                Gruss rony

                Kommentar


                • #9
                  Original geschrieben von Happy Nihilist
                  Wer hat den Code gemacht?
                  Dreamweaver MX

                  Kommentar


                  • #10
                    Und wo ist Result2?

                    EDIT:
                    WAT? Weißt du denn, wass dir Dreamweaver da zusammengefrickelt hat?

                    Kommentar


                    • #11
                      Original geschrieben von Happy Nihilist
                      Und wo ist Result2?
                      Den hät ich nach der "else" Anweisung einfach hinterher platziert, und die $Result2 hät ich direkt unter der $Result1 platziert, aber das gibt Fehlermeldung oder beide Errors werden ausgegeben ..

                      Gruss rony

                      Kommentar


                      • #12
                        Original geschrieben von Happy Nihilist
                        Und wo ist Result2?

                        EDIT:
                        WAT? Weißt du denn, wass dir Dreamweaver da zusammengefrickelt hat?
                        Ich denke mal besser als ich selbst!

                        Kommentar

                        Lädt...
                        X