Ankündigung

Einklappen
Keine Ankündigung bisher.

Einsteiger-Probleme bitte hilfe!

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

  • Einsteiger-Probleme bitte hilfe!

    Hallo und guten Abend,
    ich bin ganz neu hier und auch neu was das Programmieren in php betrifft.
    Daher bitte ich ein wenig um Nachsicht, wenn ich teilweise noch etwas blöde Fragen habe. Ich kenne auch die Suchfunktion, bin aber nicht wirklich bei meinem Problem(en) weiter gekommen:

    Folgende Probleme / Fragen habe ich:
    1. Wenn ich das Kontaktformular absende ohne eingaben erscheinen die Fehlermeldungen, komischerweise erscheint dann im 1. Textfeld ein "YES" welches nur aus dem formfeld "news" kommen kann. Sehe hier aber leider keinen Zusammenhang. Wer weiß woran es liegen könnte?

    2. Anstelle der Textausgabe "Vielen Dank" hätte ich gerne eine Weiterleitung auf eine andere Seite. Mit Header funktioniert dieses ja nicht (Headers already send...) Gibt es da evtl. noch eine Lösung ohne den Code komplett umzustellen? Auf der Seite befindet sich noch jede Menge mehr HTML in der Datei...

    Hier mein Quelltext, ich wäre sehr dankbar über Tipps und Hilfe:

    PHP-Code:
     <?php
    // Define your email address - where to send messages - here
    define("MAIL_TARGET","mail@mail.de");
    // Here you can redefine error messages
    define("errorName","Fehler bei der Eingabe Ihres Namens. Bitte geben Sie Ihren vollständigen Namen ein!");
    define("errorEmail","Bitte geben Sie Ihre korrekte E-Mail-Adresse ein!");
    define("errorMsg","Leider ist Ihr persönliches Zugangs-Kennwort nicht gültig, bitte kontrollieren Sie Ihre Eingabe!");
    function 
    createForm($name="",$news="",$email="",$message="",$error1="",$error2="",$error3=""){
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <div class="form1">&nbsp;NAME:</div><div class="form2"><input name="name" type="text" class="input" value="<?php echo $name?>"/></div>
    &nbsp;<span class="error"><?php echo $error1?></span><br /><br /><br />
    <div class="form1">&nbsp;E-MAIL:</div><div class="form2"><input name="email" type="text" class="input"value="<?php echo $email?>"/></div>
    &nbsp;<span class="error"><?php echo $error2?></span><br /><br /><br />
    <div class="form1">&nbsp;PASSWORT:</div><div class="form2"><input name="pass" type="text" class="input"value="<?php echo $pass?>" /></div>
    &nbsp;<span class="error"><?php echo $error3?></span><br /><br /><br />
    <div><input name="news" type="checkbox" value="yes" checked />Ja, ich möchte den exclusiven Newsletter bestellen.</div>
    <div><input name="submitBtn" value="DATEN ABSCHICKEN" type="submit" class="formbutton" /></div>
          </form></div></div>
    <?php
    }   
    function 
    isValidEmail($email){
       
    $pattern "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
         
       if (
    eregi($pattern$email)){
          return 
    true;
       }
       else {
          return 
    false;
       }   
    }
    function 
    sendMail($name,$email,$message,$news){
        
        
    $subject "Message from CALAMAR";
        
    $mailtext "Ein weiterer User hat an der Verlosung teilgenommen. \n\n Newsletter bestellt? $news";
        
    $from    "From: $name <$email>\r\nReply-To: $email\r\n"
        
    $header  "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=iso-8859-1\r\n";
        
    $content htmlspecialchars($mailtext);    
        
    $content wordwrap($content,70);
        
    mail(MAIL_TARGET,$subject,$mailtext,$from.$header,$news);
    }
    ;
    if (!isset(
    $_POST['submitBtn']))  { 
        
    createForm();
    } else  { 
          
    $name    = isset($_POST['name']) ? $_POST['name'] : "";
          
    $email   = isset($_POST['email']) ? $_POST['email'] : "";
          
    $message = isset($_POST['pass']) ? $_POST['pass'] : "";
          
    $news    = isset($_POST['news']) ? $_POST['news'] : "";
          
          
    $error false;
          
          if (
    strlen($name)<2) {
              
    $error true;
              
    $error1 errorName;
          }
          if (!
    isValidEmail($email)) {
              
    $error true;
              
    $error2 errorEmail;
          }
    if(
    $pass!="100octane")
    {
    $error true;
    $error3 errorMsg;
    }
          if (
    $error){
             
    createForm($news,$name,$email,$message,$error1,$error2,$error3); 
          }
          else {
              
    sendMail($name,$email,$message,$news);newsMail($name,$email,$message,$news);ob_start();header("Location:www.google.com");die();
    ?>
    Vielen Dank</br></br>
    <?php            
        
    }
    }
    ?>
    Vielen Dank für die Hilfe!

    Viele Grüße
    Star


  • #2
    also das einzige was ich da ma auf ersten blick sehe und bemängeln würde is dass du deine php immer unterbrichst um html einzufügen füg doch die html über echo ein...weil ich weiß nich ob das geht ne { zu schließen nachdem die schon einmal ?> un dann wieder <?php aufmachst...ich weiß es selber nicht aber ich würde sagen dass das nich sehr gut aussieht...ich bin kein profi aber ich würde das eindeutig nich so machen...versuch mal des <?php die ganze zeit von anfang bis ende offen zu halten...aja un tu den html immer über echo dann machen wie z.b.

    PHP-Code:
    echo "<a href=\"index.php\">startseite</a>" 

    also so müsste das aussehen...

    weiter hab ich auf den ersten eiligen blick nichts gesehen...werd morgen noch mal schauen...
    gruß Heiko

    Kommentar


    • #3
      Danke 1. Problem gelöst!

      Hallo Heiko,
      super - danke für Deinen Tipp, jetzt gibt es kein Problem mehr mit dem header, da ich den html code mit echo eingebunden habe.
      Allerdings habe ich noch das problem das bei dem versenden des leeren formulars im 1. eingabefeld "yes" angezeigt wird.
      Dieses kann nur von der variable $news von der checkbox kommen, welche jedoch niergends ausgegeben werden soll.
      Ich weiß es klingt verwirrend, aber anbei noch mal der geänderte quelltext
      (zum testen muss die form-action angepasst werden).

      Weiß jemand wo mein problem liegt?

      LG und schon einmal vielen Dank

      Marco


      PHP-Code:
      <?php ob_start();
      echo(
      "
      <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
      <html xmlns='http://www.w3.org/1999/xhtml'>
      <head>
      <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
      <title>Calamar</title>
      <link href='css/styles.css' rel='stylesheet' type='text/css' />
      </head>
      <body>
      <table width='100%' height='100%' cellspacing='0' class='layouttab'>
        <tr height='100%'>
          <td class='lefttab'>
          <div class='tabheader1'>&nbsp;IMPRESSUM</div>
          <div align='center'><br /><img src='images/cmlogo.gif' width='142' height='115' /></div>
          <div class='lefttabtxt1'><img src='images/dummypic1.jpg' width='140' height='180' align='right' />Überschrift 1<br /><br />hsgdhgf sdhjgf ds hsdjgf dhsj dsjhgf dsjh dgsjhfg ds jdshgf djhsgf dsjjhfg dsfj dsgfhd  djshgf jdhgf dsjhf  sdhfg dsj dshfgds dsgfd sfgsd</div>
          <div class='leftspace'><img src='images/blank.gif' width='100%' height='10' /></div>
          <div class='lefttabtxt2'><img src='images/dummypic2.jpg' width='140' height='180' align='right' />Überschrift 1<br /><br />hsgdhgf sdhjgf ds hsdjgf dhsj dsjhgf dsjh dgsjhfg ds jdshgf djhsgf dsjjhfg dsfj dsgfhd  djshgf jdhgf dsjhf  sdhfg dsj dshfgds dsgfd sfgsd</div>
          <div class='leftspace'><img src='images/blank.gif' width='100%' height='10' /></div>
          <div class='lefttabtxt1'><img src='images/car3.jpg' width='140' height='180' align='right' />Überschrift 1<br /><br />hsgdhgf sdhjgf ds hsdjgf dhsj dsjhgf dsjh dgsjhfg ds jdshgf djhsgf dsjjhfg dsfj dsgfhd  djshgf jdhgf dsjhf  sdhfg dsj dshfgds dsgfd sfgsd</div>
          <div class='leftspace'></div></td>
          <td class='lefttab2'><img src='images/blank.gif'width='250' /><br /><img src='images/cm.jpg' /></td>
          <td valign='top'>    
          <div align='left' class='content'>
      <div align='left' class='contpics'>
      <img src='images/start1.jpg' width='383' height='180' hspace='0' vspace='0' align='left'/><img src='images/start2.jpg' width='125' height='180' hspace='0' vspace='0' align='left'/>
      </div><br />
      <div align='left' class='content2'>
      <b>Herzlich Willkommen auf der exlcusiven ... Webseite.</b><br /> <br />Hier können Sie an unserer Verlosung bla bla bla teilnehmen....hkj kldsgf kajdgf kjdaslg fgsadkjgf jlksadgfjkdsga fldsgh fkjasg fkjg dasjkgf j.ks k.jhdaslkjfg hjsdgkj sahgdf gjga vmnf,bdkjsafg hjdsagf mndsa jfgjas dsdjdaghfkj dsa<br /><br />
      "
      );
      define("MAIL_TARGET","marten@agentur-lach.de");
      define("errorName","Fehler bei der Eingabe Ihres Namens. Bitte geben Sie Ihren vollständigen Namen ein!");
      define("errorEmail","Bitte geben Sie Ihre korrekte E-Mail-Adresse ein!");
      define("errorMsg","Leider ist Ihr persönliches Zugangs-Kennwort nicht gültig, bitte kontrollieren Sie Ihre Eingabe!");
      function 
      createForm($name="",$news="",$email="",$message="",$error1="",$error2="",$error3=""){
      echo(
      "<form action='index_test2.php'  method='post'>
      <div class='form1'>&nbsp;NAME:</div><div class='form2'><input name='name' type='text' class='input' value='"
      .$name."'/></div>
      &nbsp;<span class='error'>"
      .$error1."</span><br /><br /><br />
      <div class='form1'>&nbsp;E-MAIL:</div><div class='form2'><input name='email' type='text' class='input'value='"
      .$email."'/></div>
      &nbsp;<span class='error'>"
      .$error2."</span><br /><br /><br />
      <div class='form1'>&nbsp;PASSWORT:</div><div class='form2'><input name='pass' type='text' class='input'value='"
      .$pass."' /></div>
      &nbsp;<span class='error'>"
      .$error3."</span><br /><br /><br />
      <div><input name='news' type='checkbox' value='yes' checked />Ja, ich möchte den exclusiven Calamar Newsletter bestellen.</div>
      <div><input name='submitBtn' value='DATEN ABSCHICKEN' type='submit' class='formbutton' /></div>
            </form></div></div>"
      );
      }   
      function 
      isValidEmail($email){
         
      $pattern "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";     
         if (
      eregi($pattern$email)){
            return 
      true;
         }
         else {
            return 
      false;
         }   
      }

      function 
      sendMail($name,$email,$message,$news){
          
          
      $subject "Message from CALAMAR";
          
      $mailtext "Ein weiterer User hat an der Calamar-Verlosung teilgenommen. \n\n Newsletter bestellt? $news";
          
      $from    "From: $name <$email>\r\nReply-To: $email\r\n"
          
      $header  "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=iso-8859-1\r\n";
          
      $content htmlspecialchars($mailtext);    
          
      $content wordwrap($content,70);
          
      mail(MAIL_TARGET,$subject,$mailtext,$from.$header,$news);
      }
      function 
      newsMail($name,$email,$message,$news){    
          
      $newssubject "Ihre Newsletter-Bestellung bei der Scuderia Calamar";
          
      $newsmailtext "Vielen Dank für Ihre Teilnahme an unserer Verlosung und dem Abonieren unseres Newsletters.\r\n\r\nBitte bestätigen Sie Ihre E-Mail-Adresse
          mit einem Klick auf folgen den Link: www.dfgfdsasd.sa und erhalten Sie in Zukunft exclusiv alle Neuigkeiten rund um Calamar."
      ;
          
      $newsfrom    "From: SCUDERIA CALAMAR <info@email.com>\r\nReply-To: mail@mail.de\r\n"
          
      $newsheader  "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=iso-8859-1\r\n";
          
      $newscontent htmlspecialchars($newsmailtext);    
          
      $newscontent wordwrap($newscontent,70);
          
      mail(MAIL_TARGET,$newssubject,$newsmailtext,$newsfrom.$newsheader);
      }
      ;if (!isset(
      $_POST['submitBtn']))  { 
          
      createForm();
      } else  { 
            
      $name    = isset($_POST['name']) ? $_POST['name'] : "";
            
      $email   = isset($_POST['email']) ? $_POST['email'] : "";
            
      $message = isset($_POST['pass']) ? $_POST['pass'] : "";
            
      $news    = isset($_POST['news']) ? $_POST['news'] : "";
            
            
      $error false;
            
            if (
      strlen($name)<2) {
                
      $error true;
                
      $error1 errorName;
            }
            if (!
      isValidEmail($email)) {
                
      $error true;
                
      $error2 errorEmail;
            }
      if(
      $pass!="100octane")
      {
      $error true;
      $error3 errorMsg;
      }
            if (
      $error){
               
      createForm($news,$name,$email,$message,$error1,$error2,$error3); 
            }
            else {
                
      sendMail($name,$email,$message,$news);newsMail($name,$email,$message,$news);echo("Vielen Dank zu Ihrer Teilnahme an unserem Gewinnspiel. Im Falle eines Gewinnes, werden wir Sie per E-Mail kontaktieren und sofern Sie unseren Newsletter bestellt haben,werden wir Sie auch in Zukunft über aktuelle Neuigkeiten und Aktionen informieren.</br></br>Ihre Team");
                
      header('Location: abstimmung3.php');
          }
      }
      ;echo(
      "</div></div></td></tr></table></body></html>");
      ?>

      Kommentar


      • #4
        Problem gelöst! Daran hats gelegen...

        Hallo,
        ich habs geschafft und das Problem gelöst.
        Es lag am error-check im script.
        Für alle die es interessiert, hier das geänderte funktionierende Script.
        Weiterhin viel Spaß beim coden )

        lg
        Marco

        PHP-Code:
        define("MAIL_TARGET","mail@mail.com");
        define("errorName","Fehler bei der Eingabe Ihres Namens. Bitte geben Sie Ihren vollständigen Namen ein!");
        define("errorEmail","Bitte geben Sie Ihre korrekte E-Mail-Adresse ein!");
        define("errorMsg","Leider ist Ihr persönliches Zugangs-Kennwort nicht gültig, bitte kontrollieren Sie Ihre Eingabe!");
        function 
        createForm($name="",$email="",$pass="",$error1="",$error2="",$error3=""){
        echo(
        "<form action='index_test2.php'  method='post'>
        <div class='form1'>&nbsp;NAME:</div><div class='form2'><input name='name' type='text' class='input' value='"
        .$name."'/></div>
        &nbsp;<span class='error'>"
        .$error1."</span><br /><br /><br />
        <div class='form1'>&nbsp;E-MAIL:</div><div class='form2'><input name='email' type='text' class='input'value='"
        .$email."'/></div>
        &nbsp;<span class='error'>"
        .$error2."</span><br /><br /><br />
        <div class='form1'>&nbsp;PASSWORT:</div><div class='form2'><input name='pass' type='text' class='input'value='"
        .$pass."' /></div>
        &nbsp;<span class='error'>"
        .$error3."</span><br /><br /><br />
        <div><input name='news' type='checkbox' value='yes' checked />Ja, ich möchte den exclusiven Newsletter bestellen.</div>
        <div><input name='submitBtn' value='DATEN ABSCHICKEN' type='submit' class='formbutton' /></div>
              </form></div></div>"
        );
        }   
        function 
        isValidEmail($email){
           
        $pattern "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";     
           if (
        eregi($pattern$email)){
              return 
        true;
           }
           else {
              return 
        false;
           }   
        }

        function 
        sendMail($name,$email,$message,$news){
            
            
        $subject "Message from CALAMAR";
            
        $mailtext "Ein weiterer User hat an der Verlosung teilgenommen. \n\n Newsletter bestellt? $news";
            
        $from    "From: $name <$email>\r\nReply-To: $email\r\n"
            
        $header  "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=iso-8859-1\r\n";
            
        $content htmlspecialchars($mailtext);    
            
        $content wordwrap($content,70);
            
        mail(MAIL_TARGET,$subject,$mailtext,$from.$header,$news);
        }
        function 
        newsMail($name,$email,$message,$news){    
            
        $newssubject "Ihre Newsletter-Bestellung bei der ";
            
        $newsmailtext "Vielen Dank für Ihre Teilnahme an unserer Verlosung und dem Abonieren unseres Newsletters.\r\n\r\nBitte bestätigen Sie Ihre E-Mail-Adresse
            mit einem Klick auf folgen den Link: www.dfgfdsasd.sa und erhalten Sie in Zukunft exclusiv alle Neuigkeiten rund um ...."
        ;
            
        $newsfrom    "From: ..... <info@ggg.com>\r\nReply-To: mail@mnail.de\r\n"
            
        $newsheader  "MIME-Version: 1.0\r\n"."Content-type: text/html; charset=iso-8859-1\r\n";
            
        $newscontent htmlspecialchars($newsmailtext);    
            
        $newscontent wordwrap($newscontent,70);
            
        mail(MAIL_TARGET,$newssubject,$newsmailtext,$newsfrom.$newsheader);
        }
        ;if (!isset(
        $_POST['submitBtn']))  { 
            
        createForm();
        } else  { 
              
        $name    = isset($_POST['name']) ? $_POST['name'] : "";
              
        $email   = isset($_POST['email']) ? $_POST['email'] : "";
              
        $pass = isset($_POST['pass']) ? $_POST['pass'] : "";      
              
        $error false;
              
              if (
        strlen($name)<2) {
                  
        $error true;
                  
        $error1 errorName;
              }
              if (!
        isValidEmail($email)) {
                  
        $error true;
                  
        $error2 errorEmail;
              }
        if(
        $pass!="100octane")
        {
        $error true;
        $error3 errorMsg;
        }
              if (
        $error){
                 
        createForm($name,$email,$pass,$error1,$error2,$error3); 
              }
              else {
                  
        sendMail($name,$email,$message,$news);newsMail($name,$email,$message,$news);echo("Vielen Dank zu Ihrer Teilnahme an unserem Gewinnspiel. Im Falle eines Gewinnes, werden wir Sie per E-Mail kontaktieren und sofern Sie unseren Newsletter bestellt haben,werden wir Sie auch in Zukunft über aktuelle Neuigkeiten und Aktionen informieren.</br></br>Ihre Team");
                  
        header('Location: abstimmung3.php');
            }
        }
        ;echo(
        "</div></div></td></tr></table></body></html>"); 

        Kommentar


        • #5
          sehr schön...dann is ja alles klar...
          gruß Heiko

          Kommentar

          Lädt...
          X