include - kann man ein Ziel zuweisen?

Seven Secrets

Erfahrenes Mitglied
Hallo!

Ich habe ein Newsletterscript und die Statusmeldungen werden über den ganzen Bildschirm wieder gegeben. Möchte jedoch, daß die Navigation immer Sichbar beleibt und die Statusmeldung im iframe erscheint. wie kann ich das bewerkstelligen? Das Skript gibt den status wie folgt wieder:

PHP:
$status = "Deine E-Mail Adresse wurde erfolgreich in unserem System hinzugefügt!";
include("./template/status.html");
 
Hmm, einem Include kann man kein 'Ziel zuweisen'. Die Zeile
include('a.php');
holt den gesammten Inhalt der Datei a.php an die Stelle, an der das include steht. Das ist ja etwas völlig anderes, als ein Link/Verweis in HTML, wo du natürlich ein(en) Ziel(frame) angeben kannst.
Ich verstehe allerdings nicht, wie deine geposten Zeilen zusammen hängen; was wird den da jetzt wo ausgegeben. Es ist ja kein Problem, die Variable $status da ausgeben zu lassen, wo der Text zu sehen seien soll. Was hat jetzt die status.html damit zu tun?
 
Die status.html ist der Träger für das Skin der Meldung! Die gesamte PHP-tag lautet:

PHP:
<?PHP

if(isset($_POST['action'])) $action = $_POST['action'];

if($action=="del") {

	if(isset($_POST['email'])) $email = $_POST['email'];

	if(!$email) {
		$status = "Bitte gebe eine E-Mail Adresse an!";
		include("./template/status.html");
	} else {
		$delete = FALSE;
		$zeile = file("./data/users.txt");
		for($i=0;$i<count($zeile);$i++) {
			$zeile[$i] = eregi_replace("\n", "", $zeile[$i]);
			if(strtolower($email)!=strtolower($zeile[$i])) {
				$tmp_data .= $zeile[$i]."\n";
			} else {
				$delete = TRUE;
			}
		}
		if($delete==TRUE) {
			$filew = fopen("./data/users.txt","w");
			fwrite($filew,$tmp_data);
			fclose($filew);
			$status = "Deine E-Mail Adresse wurde aus unserem System entfernt!";
			include("./template/status.html");
		} else {
			$status = "Diese E-Mail Adresse gibt es nicht in unserem System!";
			include("./template/status.html");
		}
	}
} elseif($action=="add") {

	if(isset($_POST['email'])) $email = $_POST['email'];

	if(!$email) {
		$status = "Bitte gebe eine E-Mail Adresse an!";
		include("./template/status.html");
	} elseif(!eregi("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$", $email)) {
		$status = "Bitte gebe eine Korrekte E-Mail Adresse an!";
		include("./template/status.html");
	} else {
		$exist = FALSE;
		$zeile = file("./data/users.txt");
		for($i=0;$i<count($zeile);$i++) {
			$zeile[$i] = eregi_replace("\n", "", $zeile[$i]);
			if(strtolower($email)==strtolower($zeile[$i])) {
				$exist = TRUE;
			}
		}
		if($exist==TRUE) {
			$status = "Diese E-Mail Adresse gibt es schon in unserem System!";
			include("./template/status.html");
		} else {
			$file = fopen("./data/users.txt","a");
			fputs($file,$email."\n");
			fclose($file);
			$status = "Deine E-Mail Adresse wurde erfolgreich in unserem System hinzugefügt!";
			include("./template/status.html");
		}
	}
} else {
	include("./template/formular.html");
}
?>

Wie kann ich es bewerkstelligen?
 
Die meisten PHPler verwenden einfach eine große Tabelle, um Navigation etc. immer sichtbar zu haben.
Code:
<table>
 <tr>
  <td colspan=2>--Hier Banner oder ähnliches---</td>
 </tr>
 <tr>
  <td>---Hier Navigation---</td>
  <td>---Hier Inhalt---
   <?php
      include('irgendwas.php');
     ?>
  </td>
 </tr>
</table>
Banner und Navi kannst du auch includen - ist aber eigentlich mehr ein HTML Problem, diese Aufteilung. So machen's halt die meisten.

Wenn du die Ausgabe jetzt in einem Iframe haben willst, dann lad doch die oben gepostete PHP Datei halt in den Frame, oder?
 
Zurück