HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum
 

 
 

Anzeige 
 
HTMLWorld » Forum

Thema anzeigen - php verhindert nach Ausführung die restliche Darstellung

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

php verhindert nach Ausführung die restliche Darstellung

 

Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   PHP
Vorheriges Thema:
Nächstes Thema:  
Autor Nachricht
power
Forumsteilnehmer


Anmeldungsdatum: 25.06.2009
Beiträge: 5
Wohnort: Berlin

BeitragVerfasst am: 25.06.2009 21:52:52    Titel: php verhindert nach Ausfährung die restliche Darstellung Antworten mit Zitat

Hallo,

vielleicht könnt ihr mir helfen. Folgendes Problem:

Ich habe eine Seite mit html sowie css geschrieben. Anfangs wird die Seite richtig dargestellt. Erst nach Ausführung der Funktion (Eintrag oder Austrag in eine Newsletter-Liste) wird nach korrekter Ausgabe des print Befehls der Rest der html nicht mehr dargestellt. Was kann der Fehler sein?

Danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Simon
Häufiger Poster


Anmeldungsdatum: 03.05.2005
Beiträge: 195
Wohnort: Schweiz

BeitragVerfasst am: 26.06.2009 11:08:41    Titel: Antworten mit Zitat

Kann sein dass das Script einen Fehler generiert, die Fehlerdarstellung jedoch ausgeschaltet ist?
Ansonsten poste mal den Ausschnitt aus dem Script.

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
power
Forumsteilnehmer


Anmeldungsdatum: 25.06.2009
Beiträge: 5
Wohnort: Berlin

BeitragVerfasst am: 26.06.2009 11:51:29    Titel: gerne den Code: Antworten mit Zitat

Code:

<!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>
    <title>Realness</title>
    <link rel="stylesheet" type="text/css" href="realness.css" >
       <!--[if IE]>
         <style type="text/css">
          @import url(realness.IE.css);
         </style>
       <![endif]-->
</head>
<body>
    <div class="master">
        <div class="header">
            <div class="headerLeft">
                <div class="Kontakt"><a href="kontakt.php">Kontakt</a></div>
                <div class="Impressum"><a href="impressum.htm">Impressum</a></div>
            </div>
            <div class="headerMiddle">
                <div class="textMiddle">Fitness zum Wohlfühlen aus einer Hand.</div>
            </div>
            <div class="headerRight">
                <div class="textRight">by Anne Schilling</div>
            </div>
        </div>
        <div style="clear:both;"></div>
        <div class="contentMaster">
            <div class="contentLeft">
                <div class="logoArea"><a href="index.htm"><img src="Images/logo.jpg" alt="Realness" /></a></div>
                <div class="navigation">
                    <div class="beratung"><a href="beratung.htm">Beratung</a></div>
                    <div class="shop"><a href="shop.htm">Online Shop</a></div>
                    <div class="home"><a href="index.htm">Home</a></div>     
                </div>
                <div style="clear:both;"></div>
                <div class="content">
                    <div class="kontaktImp">Newsletter
                      <div class="Partline"></div> 
                        <div class="Text">
           <?
              error_reporting(0);
              if (!$_POST){print_form();die();}
            ?>
                     <?
                     $email=$_POST["email"];
                     $email=strtolower($email);
                         check_email ($email, "Die E-Mail Adresse ist leider unvollständig.<br />Bitte versuchen Sie es erneut.<br />Danke.");
                         $action=$_POST["action"];
                         $file = "newsletterliste.txt";
                     if (file_exists($file)){
                          $file_content=file_get_contents($file);
                          }else{
                          $cf = fopen($file, "w") or die("Fehler: Die Datei existiert nicht.<br />Bitte überprüfen Sie die Einstellungen im Script.<br />Danke.");
                          fputs($cf, "Mitglieder der Mailingliste\n");
                          fclose($cf);
                          }
                         if ($action=="subc"){
                          if(strpos($file_content,"<$email>")>0){die("Ihre E-Mail Adresse ist bereits in der Newsletterliste enthalten.");}
                          $cf = fopen($file, "a");
                          fputs($cf, "\n<$email>");       
                          fclose($cf);
                          print "Ihre E-Mail Adresse wurde für den Newsletter registriert. Vielen Dank.";
                       }
                         if ($action=="unsubc"){
                          if(strpos($file_content,"<$email>")==0){die("Ihre E-Mail Adresse ist nicht in der Newsletterliste enthalten.");}
                          $file_content=preg_replace ("/\n<$email>/","",$file_content);
                          $cf = fopen($file, "w");
                          fputs($cf, $file_content);
                          fclose($cf);
                          print "Ihre E-Mail Adresse wurde aus der Newsletterliste entfernt.";
                        }
           ?>
           <?
                         function check_email ($email, $message){
                          if ($email==""){die($message);}       
                          $test1=strpos($email, "@");                                   
                          $test2=strpos(substr($email,strpos($email,"@")), ".");         
                          $test3=strlen($email);                                         
                          $test4=substr_count ($email,"@");                               
                          if ($test1<2 or $test2<2 or $test3<7 or $test4!=1){die($message);}
                          $email_server=substr($email,strpos($email, "@")+1);
                          if (checkdnsrr($email_server)!=1){die ($message);}
                        }

                         function print_form(){
                        ?>

                              <table> 
                                    <tr>
                                        <td>Wenn Du regelmäßig über alle Neuigkeiten informiert sein möchtest, trage Dich einfach in unseren Newsletter ein.<br />
                                        Wir melden uns dann mit allen Aktionen und News bei Dir. Freuen wir uns darauf!</td>
                                    </tr>
                                    <tr>
                                        <td>&nbsp;</td>
                                    </tr>
                              </table>   
                              <form action="<? $PHP_SELF; ?>" method="post">
                               <table> 
                                    <tr>
                                        <td>Deine E-Mail-Adresse bitte eintrage:</td>
                                    </tr>
                                    <tr>
                                        <td><input class="email" name="email" type="text" style="width:300px;"></td>
                                    </tr>
                                    <tr>
                                        <td><input name="action" value="subc" checked="checked" type="radio">Eintragen</td>
                                    </tr>
                                    <tr>
                                        <td><input name="action" value="unsubc" selected="" type="radio">Austragen</td>
                                    </tr>
                                    <tr>
                                        <td>&nbsp;</td>
                                    </tr>
                                    <tr>
                                        <td><input type="submit" value="Abschicken an Dein Realness Team"></td>
                                    </tr>
                               </table>
                              </form>



                        </div>
                    </div>
                </div>
                <div style="clear:both;"></div>
            </div>
            <div class="contentRight"></div>
            <div style="clear:both;"></div>
            <div class="footer">
                <div class="footerLeft"><a href="shop.htm"><img src="Images/shop.jpg" alt="Shop" /></a></div>
                <div class="footerRight"><a href="shop.htm"><img src="Images/shakes.jpg" alt="Shop" /></a></div>
            </div>
            <div style="clear:both;"></div>
        </div>
        <div style="clear:both;"></div>
    </div>
                              <?php       
                              }                                                                   
                              ?>
</body>
</html>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Simon
Häufiger Poster


Anmeldungsdatum: 03.05.2005
Beiträge: 195
Wohnort: Schweiz

BeitragVerfasst am: 26.06.2009 13:32:04    Titel: Antworten mit Zitat

Bis wohin wird der Code angezeigt?

Du verwendest ein die(). Sobald dies aufgerufen wird, wird alles darunter nicht mehr abgearbeitet. Evt. hat es etwas damit zu tun.

lg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
power
Forumsteilnehmer


Anmeldungsdatum: 25.06.2009
Beiträge: 5
Wohnort: Berlin

BeitragVerfasst am: 26.06.2009 14:07:42    Titel: Antworten mit Zitat

Im ersten Schritt, also der indem die Email-Adresse angegeben werden muss ist alles chic. sobald man dann auf den abschicken-button klickt sieht man noch den infotext ("Danke", "Schon angemeldet" etc.) aber ab da ist Schluss. Das heißt der html code ab div.ContentRight fehlt, es wird nur noch das div.kontaktImp vollständig ausgeführt.
das die() habe ich eben mal rausgenommen, verändert aber auch nichts.

Noch eine Idee??

Viele Grüße!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Frosty
Häufiger Poster


Anmeldungsdatum: 27.10.2008
Beiträge: 221

BeitragVerfasst am: 06.07.2009 09:17:04    Titel: Antworten mit Zitat

Liegt daran, dass der Footer (ContentRight) innerhalb der Funktion print_form() liegt. Diese wird aber nur aufgerufen, wenn das Formular noch NICHT abgeschickt worden ist. Wird es abgeschickt, wird schon nicht mehr die Funktion print_form() aufgerufen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
power
Forumsteilnehmer


Anmeldungsdatum: 25.06.2009
Beiträge: 5
Wohnort: Berlin

BeitragVerfasst am: 06.07.2009 11:50:30    Titel: print Antworten mit Zitat

Danke für die Antwort.

Das das am dem print liegt ist interessant. Wie kann ich dem entgegen wirken? Ich will schliesslich den Rest auch darstellen, wenn das echo raus ist.

Danke & Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Frosty
Häufiger Poster


Anmeldungsdatum: 27.10.2008
Beiträge: 221

BeitragVerfasst am: 08.07.2009 08:45:43    Titel: Antworten mit Zitat

Nimm einfach alles aus der print-Funktion raus, was du auch angezeigt haben möchtest, wenn sie nicht aufgerufen wird und platziere es unterhalb der Funktion (oder überhalb, ist egal).

Tip für's saubere Programmieren: Schreibe Funktionen lieber an einer gesammelten Stelle. Ich nehme dafür meistens eine separate Datei, in der nur die Funktionen unterkommen. Diese wird zu Beginn eingebunden per include().
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
power
Forumsteilnehmer


Anmeldungsdatum: 25.06.2009
Beiträge: 5
Wohnort: Berlin

BeitragVerfasst am: 17.07.2009 13:58:39    Titel: hmmm Antworten mit Zitat

danke dir! ich habe es nun separat gemacht. das einzige was sich nun noch in der newsletter.php befindet ist die funktion print und diese wird vor dem footer geschlossen. so haben diese und der footer auch nichts mehr miteinander zu tun.
ich habe aber etwas ganz spezielles entdeckt. der footer fehlt nur dann wenn eine meldung über "die" angezeigt wird. das heißt alle meldungen zur bestätigung werden korrekt angezeigt und führen auch den footer aus. die beiden meldungen "...ist bereits enthalten" und "...ist nicht enthalten", also fehlermeldungen werden zwar richtig angezeigt, führen den footer aber nicht aus. daher denke ich das es noch einen weiteren fehler geben wird.

danke für den tip schonmal, so sind die dateien wirklich wesentlich übersichtlicher!

danke und gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   PHP
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.