PHP und JavaScript

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

  • PHP und JavaScript

    Hallo Leute!

    Folgendes Problem
    Ich speichere meine Werte in die DB (Mysql)
    So:
    PHP-Code:
    if ($schicken == 'Newsletter bestellen'){
           
    $sql "INSERT INTO user (email, tel, name)
           VALUES ('
    $email', '$tel', '$name')";

    So de haut hin. Jetzt gibt es ein Formular (form1)

    PHP-Code:
     <form name="form1" method="post" action="" onSubmit="return testEmail();">


    //3 Input types
    Die heißen Nametelemail


     
    <input type="submit" name="schicken" value="Newsletter bestellen"
    So jetzt hätte ich geglaubt mit so einem JavaScript Code


    Code:
    <script language = "JavaScript">
    <!--
    
    
    function testEmail(){
    	if(document.form1.email.value.match(/^[a-zA-Z0-9_\.-]{2,}@[a-z0-9-]{3,}\.[a-z]{2,4}|museum$/)) {
    	alert('E-Mailadresse ist NICHT gültig');
    	document.form1.email.focus();
    	return false;
    	}
    }	
    //-->
    </script>
    Aber leider, speichert er bevor überprüft, die Daten sofort in der DB
    Kann mir jemand helfen, wo hab ich den "Hund" drinnen?

    Thx

    ~~~~~~~~~~
    Das Leben ist zu kurz um mies drauf zu sein
    ~~~~~~~~~~

  • #2
    versuche mal ein OnClick beim Button, anstatt OnSubmit beim Formular

    außerdem heißt das nicht "return testEmail();" sondern nur "testEmail();"
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Original geschrieben von TBT
      außerdem heißt das nicht "return testEmail();" sondern nur "testEmail();"
      doch, wenn du onSubmit verwendest, um das abschicken des formulars zu beeinflussen, dann muss dieser eventhandler etwas zurückgeben, true oder false.

      btw: den zweig, in dem true zurückgegeben wird, vermisse ich bei obiger funktion allerdings.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        es könnte natürlich auch an der if abfrage liegen
        hab sie mir jetzt nicht so genau angeguckt weil ich die syntax von match nicht raffe
        eine simplere möglichkeit die ich benutze ist:

        Code:
         if(document.Formular.email.value.indexOf('@') == -1) {
           alert("E-Mail-Adresse ungültig!");
           document.Formular.email.focus();
           return false;
          }
        Signaturen sind Platzverschwendung!

        Kommentar


        • #5
          Hy Leute!

          Vielen dank für eure Antworten,
          Ich kapier nur immer noch nicht ganz:

          Das Formular bzw. der button wird geklickt.

          PHP-Code:
          //So sieht der Button aus
            
          <input type="submit" name="schicken" value="Newsletter bestellen">

          //User klickt drauf was geschieht jetzt? 
          //Die Action oder das onClick?
          <form name="form1" method="post" action="" onClick="testEmail()">

          //Eigentlich zuerst das onClick Oder? 
          //Jetzt fürht er das JavaScript aus

          <script language "JavaScript">
          <!--


          function 
          testEmail(){
              if(
          document.Formular.email.value.indexOf('@') == -1) {
                 
          alert("E-Mail-Adresse ungültig!");
                 
          document.Formular.email.focus();
                 return 
          false;
            }
          }

          //-->
          </script>

          //Wo speichert er mir jetzt das Reultat???return false, okay aber wie kann ihm nun sagen, wenn false dann speicher die Datensätze nicht und wenn true dann schon????

          oder muss ich in den javaScript code php reinschreiben??? Keinen Durchblick mehr ??? 

          Könnt ihm mir Helfen meine Gedanken richtig zu Ordnen???

          Thx
          ~~~~~~~~~~
          Das Leben ist zu kurz um mies drauf zu sein
          ~~~~~~~~~~

          Kommentar


          • #6
            zuerst hättest du das vor allem mal anpassen müssen

            document.Formular.email.value.indexOf

            das form heißt bei dir ja "form1" und nicht "Formular"
            Signaturen sind Platzverschwendung!

            Kommentar


            • #7
              Ups OKAY das war schlampig


              Jetzt schreibt er mir richtig hin wenn @ nicht vorhanden, dann gibt er mir ein alert() aus...
              Jedoch wenn ich dann auf ok clicke und die E-mail neu eingeben möchte schreibt er den "Mist" auch rein...


              Ich poste jetzt mal das ganze skript...
              ps
              http://www.likra.com/news/eingabe.php

              ist das Ding online
              PHP-Code:
              Wie kann ich des jetzt verhindern, dass er daten reinschreibt??

              <?php
               $basepath 
              str_repeat"../"substr_countdirname$SCRIPT_NAME ), "/" ) );
                require_once( 
              $basepath "lib/lib.inc.php" );

              //~~~~Funktion die überprüft ob die E-mail Adr. Stimmt~~~~~
              /*
              function checkmail($email) {
                  if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email, $check)) {
                      if(getmxrr(substr(strstr($check[0], '@'), 1), $validate_email_temp)) {
                          return true;
                          }
                      if(checkdnsrr(substr(strstr($check[0], '@'), 1),"ANY")){
                          return true;
                          }
                      }
                  return false;
                  }
                  
              //~~~checkmail() ENDE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


              $check=checkmail($email);

              //if (!$check) echo "Falsch"; else echo "Fein";
              */


              if ($schicken == 'Newsletter bestellen'){

                      
              $sql "INSERT INTO user (email, tel, name)
                          VALUES ('
              $email', '$tel', '$name')";

                      
              $rs mysql_query($sql);
                      echo 
              "<font face='Verdana, Arial, Helvetica, sans-serif' size='4' color='#FFFFFF'>Sie erhalten ab jetzt unseren Neuigkeiten per Mail!<br> Vielen DANK!</font>";
                      
              mail("n.obermayr@likra.com""Anmeldung""Folgende Person hat sich in den Newsletter bestellt: $name""From: Newsletter");


              }

              ?>
              <script language = "JavaScript">
              <!--

              function testEmail(){
                  if(document.form1.email.value.indexOf('@') == -1) {
                     alert("E-Mail-Adresse ungültig!");
                     document.form1.email.focus();
                     return false;
                }

                  }

              //-->
              </script>



              <html>
              <head>
              <title>~~~~Newsletter Abo~~~~</title>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              </head>

              <body bgcolor="#FF0000" text="#000000" link="#FFFFFF" vlink="#CCCCCC" alink="#FFFFFF">
              <table width="100%" border="0" height="100%">
                <tr>
                  <td>
                    <form name="form1" method="post" action="" onSubmit="testEmail()">

                      <table width="50%" border="0" align="center">
                        <tr> 
                          <td colspan="3"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#FFFFFF">Newsletter 
                            abo</font></b></font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF"></font></td>
                        </tr>
                        <tr> 
                          <td width="16%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></td>
                          <td width="16%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></td>
                          <td width="68%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></td>
                        </tr>
                        <tr> 
                          <td width="16%">&nbsp;</td>
                          <td width="16%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Name:</font></b></td>
                          <td width="68%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
                            <input type="text" name="name" value="">
                            </font></td>
                        </tr>
                        <tr> 
                          <td width="16%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></td>
                          <td width="16%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Tel.:</font></b></td>
                          <td width="68%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
                            <input type="text" name="tel" value="">
                            </font></td>
                        </tr>
                        <tr> 
                          <td width="16%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></td>
                          <td width="16%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">E-mail:</font></b></td>
                          <td width="68%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
                            <input type="text" name="email" value="">
                            </font></td>
                        </tr>
                        <tr> 
                          <td width="16%">&nbsp;</td>
                          <td width="16%">&nbsp;</td>
                          <td width="68%">&nbsp;</td>
                        </tr>
                        <tr> 
                          <td width="16%">&nbsp;</td>
                          <td width="16%">&nbsp;</td>
                          <td width="68%"> 
                            <div align="right"> 
                              <input type="submit" name="schicken" value="Newsletter bestellen">
                            </div>
                          </td>
                        </tr>
                        <tr> 
                          <td width="16%">&nbsp;</td>
                          <td width="16%">&nbsp;</td>
                          <td width="68%">&nbsp;</td>
                        </tr>
                      </table>
                    </form>
                  </td>
                </tr>
              </table>
              </body>
              </html>
              ~~~~~~~~~~
              Das Leben ist zu kurz um mies drauf zu sein
              ~~~~~~~~~~

              Kommentar


              • #8
                wie ich weiter oben schon mal sagte, muss es m.E.
                onSubmit="return testEmail()"
                heissen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X