PHP Formmail post wird nicht ausgeführt

  • Themenstarter Themenstarter sprudelgehirn
  • Beginndatum Beginndatum
Sorry, aber dein Anliegen ist überhaupt nicht zu verstehen.Was geht bei dir nicht? Zeige doch mal bitte Code. Gibt es Fehlermeldungen? Wenn nein, hast du die Fehlermeldungsausgabe in php überhaupt aktiviert?
 
mich würde der Code auch mal interessieren - irgendwas scheint da ganz und gar nicht zu stimmen...

das Formular sendet die Daten an email.php und dann wird - wahrscheinlich durch header("Location: ..."); auf "/filemanager/$strReturnhtml" weitergeleitet...

solange uns du den Code nicht postest, können wir nur drauf warten, dass irgendwer uns 'ne Kristallkugel schenkt... Hellsehen können hier leider die wenigsten...
 
Sorry war zu lange gehockt, hab total vergessen das man den durch den Link nicht siehtXD Ok jetzt schickt er die Mail, aber
wird nicht auf die danke.html umgeleitet. Und bei der E-mail ist der Inhalt in einer Linie trotz ':\t';
PHP:
<?php

### Konfiguration ###
# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'sprudel2@mail.ru';
# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom       = '"Formmailer" <schechtel.bplaced.net>';
# Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Geschäft';
# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = 'http://www.schechtel.bplaced.net/filemanager/danke.html';
# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  = ':\t';
### Ende Konfiguration ###
if($_POST)
{
 $strMailtext = '';
 while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array.'\n';
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value.'\n';
  }
 }
 if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }
 mail($strEmpfaenger, $strSubject, $strMailtext, 'From: '.$strFrom)
  or die('Die Mail konnte nicht versendet werden.');
 header('Location: $strReturnhtml');
 exit;
}

?>
 
Zuletzt bearbeitet von einem Moderator:
Was soll denn :\t sein?
PHP:
# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  = ':\t';
sollte das nicht ein Trennzeichen sein?
Ok doch nicht wie erzeugt man ein Zeilenumbruch zwischen den Angaben
Ok ich glaub ':\r\n';
 
Zuletzt bearbeitet von einem Moderator:
Ok die danke.html wird angezeigt, aber ich hab die Definierung von $strReturnhtml weg und dafür bei Header ('Location: http://)direkt eingegeben. Was ist falsch bei $strReturnhtml gewesen?
 
heyho,

wenn ich mich jetz nich ganz täusche muss das doch

PHP:
header('Location: '".$strReturnhtml." ' );

heissen, probiers doch mal aus bin mir auch grad nich 100%ig sicher.

Gruß

Edit:

Ok hab grad gemerkt das aus irgend einem Grund das Letze ' nicht angezeigt wird, '".$strReturnhtml."' so sollte es heissen.
 
wenn ich mich jetz nich ganz täusche muss das doch

PHP:
header('Location: '".$strReturnhtml." ' );
heissen, probiers doch mal aus bin mir auch grad nich 100%ig sicher.

nicht ganz...


das Problem, wieso er nicht sendet ist ganz einfach:
Wenn du einfache Anführungsstriche nutzt wie im gegebenen Code
PHP:
<?
header('Location: $strReturnhtml');
?>
dann wird das Dollarzeichen nicht als Variablen-Beginn, sondern eben als Dollarzeichen interpretiert...

daher:
PHP:
<?
header("Location: $strReturnhtml");
?>
oder

PHP:
<?
 header('Location: '.$strReturnhtml);
 ?>
oder
PHP:
<?
  header("Location: ".$strReturnhtml);
  ?>



edit:
hab noch 'nen Fehler in deinem Script entdeckt:
PHP:
<?php
$strFrom       = '"Formmailer" <schechtel.bplaced.net>';

$strFrom muss eine Mail-Adresse sein - also
PHP:
<?php
$strFrom       = '"Formmailer" <sprudel2@mail.ru>';
wobei ich mir gerade nicht ganz sicher bin, ob der Name davor unbedingt in Anführungsstriche muss oder nicht... (siehst du dann ja, ob die Anführungsstriche mit angezeigt werden)

Nichts desto trotz werden Mails von so 'nem Mailer häufig beim Empfänger als Spam einsortiert, solange sie nicht wirklich von dem SMTP-Server kommen, zu dem die Domain der Mail-Adresse gehört...
 
ja.

aber in deinem Script oben hattest du das hier stehen:
PHP:
<?php
$strFrom       = '"Formmailer" <schechtel.bplaced.net>';
?>
und das könnte eben Probleme geben, da die Absender-Adresse keine valide Mail-Adresse wäre...
 
Ok und was muss ich dann noch eintippen damit der Inhalt bei der Mail Zeilenumbrüche hat? das mit /r/n funkt nicht es kommt dann sowas raus:vorname:rnrnnachname:rnrntelefon:rnrncity:rnrncountry:rnrnmail:rnrnnote:rnп п 9.00rnarea:rn Was geht abrn:
Am besten wäre es ein bischen sortiert?
Vorname:
Nachname:
usw.
 
Ich bin mal so frei und weise dich darauf hin, dass du demnächst (Mail-)adressen und sowas in deinem Post zensieren solltest. Auf deinem Server siehts sonst ja ganz nett aus..
 
Also in PHP müssen Escape-Sequenzen in " Anführungszeichen - double quotes stehen. Sonst werden diese einfach ignoriert. In Deinem Code den Du oben gepostet hast stehen die nämlich nur in single quotes.
Vielen Dank es klappt. Wieso setzt man dan die ' Zeichen ein?
Ich dachte sie haben die gleiche Funktion?
 
Vielen Dank es klappt. Wieso setzt man dan die ' Zeichen ein?
Ich dachte sie haben die gleiche Funktion?

Ich benutze Single Quotes immer dann, wenn ich mehrere Strings und Variablen konkateniere, da wie ich finde, die Übersichtlichkeit erhalten bleibt. Sie haben ja auch, bis auf die Escape-Sequenzen, die gleiche Funktion. Es ist reine Geschmacksache. Ok, böse Zungen behaupten Single Quotes wären schneller als Double Quotes - was aber keinesfalls zutreffend ist.
 
Zurück
Oben