Easy Contact Form anpassen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Walter
Mitglied
Beiträge: 209
Registriert: 23.07.2003 20:56
Wohnort: Stockerau
Kontaktdaten:

Easy Contact Form anpassen

Beitrag von Walter »

Das Script funktioniert soweit, ich hätte nur gerne, dass nach erfolgreichem Mailversand ein Redirect auf die index.php erfolgt - wie mache ich das?

Ansonsten ist im Code folgendes vorgesehen:

Code: Alles auswählen

 /* Mail was sent */ 
      echo "<center><b>Ihre Nachricht wurde erfolgreich verschickt.</b></center>\n"; 
   } else { 
      echo "Fehler beim Versenden der Nachricht.<br />\nMöchten Sie es <a href=\"javascript:history.go(-1);\">Nochmal versuchen?</a>.\n"; 
   } 

      } 
   } 
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Du könntest z.B. einfach in der Seite, wo angezeigt wird, daß alles ok ist, eine Meta-Umleitung einbauen.
Das funktioniert dann genau so, wie im phpBB die Weiterleitung nach dem Posten.

Grüße
Dennis
Benutzeravatar
Walter
Mitglied
Beiträge: 209
Registriert: 23.07.2003 20:56
Wohnort: Stockerau
Kontaktdaten:

Beitrag von Walter »

Hab ich probiert, aber irgendwie krieg ich das nicht hin.
Einmal fehlt irgendetwas und die Seite bleibt leer, einmal zeigt sich überhaptkein Effekt, ... ist schon mühsam mit der trial+error Methode.
Ich weiss leider viel zu wenig über PHP (fast nix).

Ich hab versucht, nach der Erfolgsmeldung, also vor dem "else" das da einzufügen:

Code: Alles auswählen

$redirect = "index.$phpEx";
aber das bewirkt überhaupt nichts.

Dann mit einer HTML-Weiterleitung wie dasda:

Code: Alles auswählen

<html><meta HTTP-EQUIV="REFRESH" content="0; url=../index.php"></html>
aber da ging garnix, die Seite bleibt leer.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Mehr Informationen wären wünschenswert....
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Wie sieht denn der komplette Code an dieser Stelle aus?
Benutzeravatar
Walter
Mitglied
Beiträge: 209
Registriert: 23.07.2003 20:56
Wohnort: Stockerau
Kontaktdaten:

Beitrag von Walter »

Der komplette code:

Code: Alles auswählen

<?php 



define('IN_PHPBB', true); 

$phpbb_root_path = './'; 

include($phpbb_root_path . 'extension.inc'); 

include($phpbb_root_path . 'common.'.$phpEx); 



// 

// Start session management 

// 

$userdata = session_pagestart($user_ip, PAGE_INDEX); 

init_userprefs($userdata); 
$displayip = decode_ip ($user_ip); 

// 

// End session management 

// 
   $mode = ( isset($_POST['mode']) ) ? $_POST['mode']: ''; 


// 

// Start output of page 

// 

$page_title = "Kontakt"; 

include($phpbb_root_path . 'includes/page_header.'.$phpEx); 


   /* 
    * Admin Contact Forum 
    * 
    * Author: FuNEnD3R admin@funender.com - website: www.funender.com 
	*
    */ 


   if( $mode == 'send' ) 
   { 
   /* Pre-declarations */ 
   $error_fields = array(); 
   $error = false; 
   $from_name = ''; 
   $from_email = ''; 
   $message = ''; 

   /* ***CHANGE THIS ADDRESS TO YOURS*** */ 
   $to_admin= 'admin@xraypeople.net';  
   /* ********************************** */ 
   /* NO NEED TO EDIT ANYTHING BELOW THIS LINE */


   /* Check for empty fields */ 
   check_field('Ihr Name', $_POST['name']); 
   check_field('Ihre Emailadresse', $_POST['primary_email']); 
   check_field('Text', $_POST['message']); 

   /* Check to see if any fields were empty 
    * and stored in the errors array 
    */ 
   if (sizeof($error_fields) > 0) { 
      /* Loop through error array */ 
      foreach($error_fields as $field) { 
         echo "Bitte ausfüllen: <b>'$field'</b>.<br />\n"; 
      } 

      /* Display link back to form */ 
      echo '<a href="javascript:history.go(-1);">Schritt zurück</a>'; 

         /* Terminate without sending mail */ 
         $error = true; 
      } 

      if( !$error ) 
      { 

   /* Strip HTML and escape slashes */ 
   $from_name = strip_all($_POST['name']); 
   $from_email = strip_all($_POST['primary_email']); 
   $message = strip_all($_POST['message']);


   /* Check for empty subject and strip if applicable */ 
   $subject = (!empty($_POST['subject'])) ? strip_all($_POST['subject']) : '[Kontaktformular von xraypeople]'; 

   /* Strip HTML / backslashes from username */ 
   $forum_username = strip_all($_POST['forum_username']); 

   /* Add username to beginning / top of mail */ 
   $message = "$from_name's forum username is $forum_username\n$from_name's email is $from_email\n\n" . strip_all($_POST['message']); 


   /* Get users IP addy for mail header */ 
   $user_ip = get_ip(); 


   /* All fields match criteria, attempt to send mail */ 
   if (@mail( 
      $to_admin, 
      $subject, 
      $message, 
      "From: $from_name <$from_email>\r\n" . 
      "X-Remote-Addr: $user_ip\r\n" . 
      "X-Mailer: phpBB's Mail" 
   )) { 
      /* Mail was sent */ 
echo "<center><b>Ihre Nachricht wurde erfolgreich verschickt.</b></center>\n";


  } else { 
      echo "Fehler beim Versenden der Nachricht.<br />\nMöchten Sie es <a href=\"javascript:history.go(-1);\">nochmal versuchen?</a>.\n"; 
   } 

      } 
   } 
   /* Empty field checking function */ 
   function check_field($field, $data) { 
      global $error_fields; 

      if (empty($data)) { 
         array_push($error_fields, $field); 
      } 

      return; 
   } 


   /* Grab users IP function */ 
   function get_ip() { 
      if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
         return $_SERVER['HTTP_X_FORWARDED_FOR']; 
      } else { 
         return $_SERVER['REMOTE_ADDR']; 
      } 
   } 


   /* Strip html tags etc */ 
   function strip_all($string) { 
      return strip_tags(stripslashes($string)); 
   } 

$template->set_filenames(array( 
    'body' => 'contact_form.tpl' 
    ) 
); 

$template->assign_vars(array( 
    'DISPLAY_IP' => $displayip, 
	'NAME' => $from_name,
	'EMAIL' => $from_email,
	'USERNAME' => $forum_username,
	'MESSAGE' => $message,
	'L_EYOUR_NAME' => $lang['EYour_Name'],
	'L_EYOUR_EMAIL' => $lang['EYour_Email'],
	'L_EFORUM_USERNAME' => $lang['EForum_Username'],
	'L_EQUEST_COMMS' => $lang['EQuest_Comms'],
	'L_EDENOTES_FIELD' => $lang['Edenotes_field'],
	'L_EAUTH' => $lang['EAuth'],
	'L_EYOUR_IP' => $lang['EYour_IP'],
	'L_ERECORDED' => $lang['ERecorded']
	 ) 
); 

$template->pparse('body'); 




include('includes/page_tail.'.$phpEx); 

?>
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Würde es mal nach der Abfrage

if ( @mail(......) )
{
...........

Die redirect wie auch immer Funktion aufrufen....Weiss ich gerade nicht auswendig....sry

BTW: Das Script sehe wieder als reiner Bullshit an....Warum? Wenn man einen PHPBB Standard hat und dennoch eigene Funktionen verwendet anstatt das von PHPBB gegebene halte ich es für einen Blödsinn eines verdammten Scriptkiddies....

Das fängt bei HTML innerhalb Code an obwohl eine Templateengine existiert und bei einer eMail Klasse auf die dieses Script pfeift....

Nunja :roll:
Benutzeravatar
Walter
Mitglied
Beiträge: 209
Registriert: 23.07.2003 20:56
Wohnort: Stockerau
Kontaktdaten:

Beitrag von Walter »

Vielleicht kennt jemand ein besseres Script für die Einbindung eines Kontaktformulars in PHPBB2?
Antworten

Zurück zu „Coding & Technik“