Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
power Forumsteilnehmer
Anmeldungsdatum: 25.06.2009 Beiträge: 5 Wohnort: Berlin
|
Verfasst am: 25.06.2009 21:52:52 Titel: php verhindert nach Ausfährung die restliche Darstellung |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Simon Häufiger Poster
Anmeldungsdatum: 03.05.2005 Beiträge: 195 Wohnort: Schweiz
|
Verfasst am: 26.06.2009 11:08:41 Titel: |
|
|
Kann sein dass das Script einen Fehler generiert, die Fehlerdarstellung jedoch ausgeschaltet ist?
Ansonsten poste mal den Ausschnitt aus dem Script.
Gruss |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
power Forumsteilnehmer
Anmeldungsdatum: 25.06.2009 Beiträge: 5 Wohnort: Berlin
|
Verfasst am: 26.06.2009 11:51:29 Titel: gerne den Code: |
|
|
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> </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> </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 |
|
![](templates/subSilver/images/spacer.gif) |
Simon Häufiger Poster
Anmeldungsdatum: 03.05.2005 Beiträge: 195 Wohnort: Schweiz
|
Verfasst am: 26.06.2009 13:32:04 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
power Forumsteilnehmer
Anmeldungsdatum: 25.06.2009 Beiträge: 5 Wohnort: Berlin
|
Verfasst am: 26.06.2009 14:07:42 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Frosty Häufiger Poster
Anmeldungsdatum: 27.10.2008 Beiträge: 221
|
Verfasst am: 06.07.2009 09:17:04 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
power Forumsteilnehmer
Anmeldungsdatum: 25.06.2009 Beiträge: 5 Wohnort: Berlin
|
Verfasst am: 06.07.2009 11:50:30 Titel: print |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Frosty Häufiger Poster
Anmeldungsdatum: 27.10.2008 Beiträge: 221
|
Verfasst am: 08.07.2009 08:45:43 Titel: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
power Forumsteilnehmer
Anmeldungsdatum: 25.06.2009 Beiträge: 5 Wohnort: Berlin
|
Verfasst am: 17.07.2009 13:58:39 Titel: hmmm |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
|
|
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.
|
|
|