• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Mailempfaenger dynamisch einsetzen

User007

New member
Hey Leuts,
könnt mal (wieder) ein wenig Hilfe bei so 'nem "kleinen" Problem gebrauchen.

Ich möchte ein Kontaktformular ("kontakt.php") so flexibel halten, dass, je nachdem von wo auf das Formular verwiesen wird (und somit evtl. auch Variablen mit der URL übertragen werden) ein entsprechend anderer Mailempfänger eingesetzt wird.
Bsp. für die Struktur:
1. Verweis = ".../kontakt.php" => Mailempfänger 1 (Standard)
2. Verweis = ".../kontakt.php?id=1" => Mailempfänger 2
3. Verweis = ".../kontakt.php?id=3" => Mailempfänger 3

Dazu habe ich folgenden
PHP:
<?php
include("./every/pre_all1.inc.php");
include("./every/pre_all2.inc.php");
// Empfänger/Betreff je nach geklicktem Link dynamisch angepasst...
if($_REQUEST["id"])
{
  $id=$_REQUEST["id"];
  switch($id)
  {
    case 1:$recipient=$mail1;$subject="Kontakt zum Webmaster über Homepage \"...\"";
           $an_text=$zact1;$pre_text="Hallo lieber Webmaster,\n\n";break;
    case 2:$recipient=$mail2;$subject="Kontakt zur Geschäftsleitung über Homepage \"...\"";
           $an_text=$zact2;$pre_text="Geehrte Geschäftsleitung,\n\n";break;
    case 3:// Dekodierung u. Zerlegung der Variable "ref"
           $ref_array=split('[&]',base64_decode($_REQUEST["ref"]));
           // Zuordnung von Name+Mail-Adresse des verlinkten Gästebucheintrags
           $gb_user_name=substr($ref_array[0],2);$gb_user_mail=substr($ref_array[1],2);
           $recipient=$gb_user_mail;$subject="Kontakt via Gästebuch von ...";
           $an_text=$zact3;$pre_text="Hallo ".$gb_user_name.",\n\n";break;
    case 9:$recipient=$mail9;$subject="Kontakt über Homepage \"...\"";
           $an_text=$zact9;$pre_text="Hallo liebes Design-Team,\n\n";break;
  }
}
// ...sonst Empfänger/Betreff als Standard-Kontakt eingefügt
else
{
  $recipient=$mail4; # Empfänger-Mail-Adresse
  $subject="Kontakt über Homepage \"...\""; # Betreff
}
?>
erstellt und ganz an den Anfang des Doks gesetzt. Die unterschiedlichen Mailadressen sind per Variablen $mail1...9 in der "pre_all2.inc.php" global definiert.
Leider wird immer nur der Standard-Kontakt benutzt. Wieso nur?
Kann da bitte mal jemand 'nen Blick drauf werfen und hat 'ne Idee dazu?

Ach ja, das Ganze wird bei 1&1 gehostet - die haben aber lt. Auskunft des Supports keinerlei (außergewöhnliche) Einschränkungen was Scriptausführung betrifft.
 
So, bin wieder da.
ZeitGeist schrieb:
lass dir mal $id ausgeben
Da wird mir dann korrekt der übergebene Wert ausgegeben.
Da ich denke, dass evtl. besser Hilfestellung geleistet werden kann, wenn man das ganze Konstrukt sieht, hab ich den Quelltext hier. Sollte so zusammengesbastelt sein, dass man's jetzt auch austesten kann. Hoffe, die Kommentare helfen einigermaßen die Struktur nachzuvollziehen...
 
MIST! Sorry, hatte das hier ausprobiert und bei mir funktionierte das - zeigte korrekt die Textdatei an. Komisch...
Moment bitte, ich guck nochmal.

Also ich weiß nicht woran's liegen kann. Einzige Datei in dem Verzeichnis. Und wenn ich's händisch in meinem FF (Verlauf,Chroniken,Cookies,etc. gelöscht!) eingebe, dann wird mir das File angezeigt.
Allerdings weiß ich, dass bei 161 standardmäßig das Verzeichnislisting off ist. Wie ich das nun on krieg - kein Plan (irgendwas mit htaccess). Natürlich ist grad jetzt die FAQHelp von 1&1 nicht verfügbar - coole Sache...
 
Zuletzt bearbeitet:
Pack mal echos in die einzelnen Cases, guck welches wirklich ausgeführt. Ansonsten mal den Inhalt der Variablen kontrollieren.
 
Das ist ja das Komische - da gibt's in den cases diese Var $an_text, welche mit unterschiedlichen Strings belegt ist. Diese werden beim Aufruf der Seite korrekt gemäß id angezeigt - also muß ja eigtl. auch das case korrekt arbeiten!? Und auch wenn ich alle zum Test eingearbeiteten echos aktiviere, z.B. gerade die kurz vor der mail()-Funktion zur Ausgabe der Vars, bekomme ich immer alles korrekt (wie gewünscht) angezeigt - echt seltsam !!!
ZeitGeist schrieb:
...Ansonsten mal den Inhalt der Variablen kontrollieren.
Wie meinst du das und von welchen?
Hab auch überlegt, ob's vllt. mit $_REQUEST zusammenhängt. Dass aufgrund der 1&1-ServerKonfig explizit $_POST benutzt werden muß. Weiß da jemand evtl. was drüber?
 
Hallo und Hilfe!

Also, ich hab heut das Formular nochmal alternativ ohne switch getestet und verschiedene Mailempfänger fest definiert...und prompt passte es und kam jeweils auf'm richtigen Mail-Account an. Das heißt ja wohl, dass da doch noch 'n Bug in meiner Switch-Anweisung sein muß. Hat da vielleicht noch jemand 'ne Idee zu???
 
Zurück
Oben