Seite 1 von 1

Easy Contact Form anpassen

Verfasst: 05.03.2005 23:11
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"; 
   } 

      } 
   } 

Verfasst: 06.03.2005 00:29
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

Verfasst: 06.03.2005 21:20
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.

Verfasst: 07.03.2005 13:22
von Blutgerinsel
Mehr Informationen wären wünschenswert....

Verfasst: 07.03.2005 16:01
von Leuchte
Wie sieht denn der komplette Code an dieser Stelle aus?

Verfasst: 08.03.2005 19:26
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); 

?>

Verfasst: 08.03.2005 19:39
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:

Verfasst: 09.03.2005 16:15
von Walter
Vielleicht kennt jemand ein besseres Script für die Einbindung eines Kontaktformulars in PHPBB2?