Ankündigung

Einklappen
Keine Ankündigung bisher.

anweisung für zwilenrücksprung

Einklappen

Neue Werbung 2019

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

  • anweisung für zwilenrücksprung

    hallo,

    ich habe forgrndes problem:
    wenn ich die variablen auf eingabe durchprüfen lasse bevor sie ins email formular übernommen werden, bekomme ich überall wo nichts angegeben ist eine leere zeile ins formular.
    das ist natürlich super unpraktisch weil ich nachher ein formlar mit 100 zeilen habe wo b.z in der 1., der 33. und der letzten zeile was steht.
    kann ich meine if-schleife so ändern das das unterbunden wird ?

    hier ein beispiel aus dem quellcode:


    Code:
    <form action="send.php" method="post">
    <input type="hidden" name="recipient" value="mail@mal.de">
    <input type="hidden" name="subject" value="Bestellung">
      <table width="859" border="0">
        <tr> 
          <td width="125" valign="top"><div align="left">Name, Vorname</div></td>
          <td width="251"> <div align="left"> 
              <input name="realname">
            </div></td>
        </tr>
        <tr> 
          <td height="24" valign="top"><div align="left">Stra&szlig;e</div></td>
          <td><input name="str"></td>
          <td valign="top">Hausnr.</td>
          <td width="406" colspan="2"> <input name="hn" size="5" maxlength="3">
          </td>
        
        <tr> 
          <td height="24" valign="top"> <div align="left">Ort</div></td>
          <td> <div align="left"> 
              <input name="ort" type="text" id="ort2">
            </div></td>
          <td width="59" valign="top"> <div align="left">PLZ </div></td>
          <td width="406" colspan="2"><input name="plz" type="text" id="plz4" size="8" maxlength="5"></td>
      </table> 
      
      <table>
        <tr> 
          <td width="124" valign="top"><div align="left">E-Mail: </div></td>
          <td width="370"> <div align="left"> 
              <input name="email">
            </div></td>
        </tr>
        <tr> 
          <td valign="top"><div align="left">Bestellung: </div></td>
          <td> <div align="left"> 
              <textarea name="text" rows="30" cols="50">Bitte senden Sie mir folgene Bestellung an die angegenbene Adresse zu:
    
    (Bis ganz nach unten scrollen!) 
    
    <?
      if($Nr1 != 0)
        {
        echo "Nr.1 x ",$Nr1,"";
        }
    ?>
    
      <? if($Nr2 != 0)
        {
        echo "Nr.2 x ",$Nr2,"";
        }
    ?>
    
      <? if($Nr3 != 0)
        {
        echo "Nr.3 x ",$Nr3,"";
        }
    ?>
    
      <? if($Nr5 != 0)
        {
        echo "Nr.5 x ",$Nr5,"";
        }
    ?>
    
      <? if($Nr6 != 0)
        {
        echo "Nr.6 x ",$Nr6,"";
        }
    ?>
    
      <? if($Nr7 != 0)
        {
        echo "Nr.7 x ",$Nr7,"";
        }
    ?>
    
      <? if($Nr8 != 0)
        {
        echo "Nr.8 x ",$Nr8,"";
        }
    ?>
    in send.php läuft es dann folgendermaßen ab:

    Code:
    <body bgcolor="#fdbb79">
    <? 
      
      $empfaenger = "mal@mail.de";
      $betreff = "Bestellung aus Web Formular";
      $text = "Email von $email 
      Name: $realname 
      Adresse: $str , $hn
      $plz , $ort
    		   
      Text: $text";
      mail($empfaenger, $betreff, $text,
           "From: $email");
      ?>

  • #2
    wenn ich dein problem verstehe hast du manchmal ganz viele \n hintereinander obwohl du nur eins willst
    dann lös es so:
    Code:
    ereg_replace("\n{2,}","\n",$string);
    so werden 2 oder mehr newlines hintereinander zu nur einem
    infos zu regulären ausdrücken:
    http://de3.php.net/manual/de/ref.regex.php
    http://tut.php-q.net/regex.html

    Kommentar


    • #3
      also muss ich diese anweisung
      Code:
      ereg_replace("\n{2,}","\n",$string);
      unter meine if anweisungen stellen ?

      Kommentar


      • #4
        ich würde sie ganz ans ende setzen
        Code:
        $text=ereg_replace("\n{2,}","\n",$text);
        direkt bevor du die mail abschickst

        Kommentar


        • #5
          irgendwie funktioniert das nicht.
          hier mal die adresse vll hast du mich falsch verstanden.
          www.weingut-sommer.de/weinliste.htm
          trage einfac mal ein paar zahlen zum test in die felder ein.
          wenn man dann auf abschicken klickt bekommt man ein formular mit ewig viel platz dazwischen, nämlich für jedes feld wo man nichts eingetragen hat eine leerzeile !

          THX!

          Kommentar


          • #6
            Lass doch mal die vielen "?> <?" weg. Also so:

            Code:
            <?
              if($Nr1 != 0)
                {
                echo "Nr.1 x ",$Nr1,"";
                }
            
              if($Nr2 != 0)
                {
                echo "Nr.2 x ",$Nr2,"";
                }
            
              [...]
            ?>
            Ich denke das Prob. is dass die Newlines zwischen den "?> <?" eben auch als Newline in deiner Textarea interpretiert werden.

            Kommentar


            • #7
              das habe ich schon ausprobiert dann habe ich aber leider dieses ergeniss

              bsp:

              Nr.1 x 2Nr.28 x 2Nr.310 x 2

              Kommentar


              • #8
                mach das einfach mal so:
                Code:
                foreach($_POST as $key=>$value){
                if($value!=0 AND ereg("Nr",$key)){
                echo $key . "x" . $value . "\n";
                }
                }
                so löst man das wesentlich ellganter

                Kommentar

                Lädt...
                X