Seite 1 von 2

Birthday Mail Extention

Verfasst: 11.07.2005 08:38
von Huchi
Hi........,

hab mir dieses add on installiert und funzt auch so weit. Nun möchte ich aber gerne das die mail nicht erst dann verschickt wird wenn der User der Geburtstag hat sich einloggt, sondern automatisch an dem Tag an dem er Geburtstag hat egal ob online oder nicht! Wie kann ich das anstellen?

EDIT:
Jetzt hab ich doch noch einen Fehler entdeckt, der nach dem Einbau dieses Mods vorkommt. Wenn der User der Geburtstag sich nun einloggt kommt folgende Fehlermeldung:

Code: Alles auswählen

Allgemeiner Fehler 

Error reading SQL

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 
Nach dem nächsten Einloggen ist alles wieder in Ordnung? Hängt also mit dme Mod zusammen!
Was tun?

Verfasst: 12.07.2005 10:04
von Huchi
*push*

Verfasst: 12.07.2005 12:58
von easygo
War das die komplette Fehlermeldung? easy

Verfasst: 12.07.2005 13:10
von Huchi
Hi ...,

also der ganze Fehler sieht so aus:

Code: Alles auswählen

Allgemeiner Fehler
» Allgemeiner Fehler
Allgemeiner Fehler

Error reading SQL

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 
 
		
» Allgemeiner Fehler
Muss dazusagen, wenn ich den Fehler bekomme und lade die Seite neu bin ich eingeloggt und sehe das Forum ganz normal!

Verfasst: 12.07.2005 14:21
von easygo
Ok ersetz das bitte

Code: Alles auswählen

		message_die(GENERAL_ERROR, $lang['bd_sqlerror']);
2x durch...

Code: Alles auswählen

		message_die(GENERAL_ERROR, $lang['bd_sqlerror'], '', __LINE__, __FILE__, $sql);
Dann bringt die Fehlermeldung hoffentlich mehr...

EDIT: Wozu eigentlich 2x die gleiche Tabellenabfrage in der page_header?

Ich würd sagen, das Teil ist mehr ne Beta... :-?
while ($row = $db->sql_fetchrow($result)) {
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
Btw: dort fehlt ne Geschweifte ^^ easy

Verfasst: 12.07.2005 16:04
von Huchi
@easygo,

hab das gemacht und erhalte nun folgende Meldung:

Code: Alles auswählen

Parse error: parse error, unexpected $ in /srv/www/htdocs/web139/html/phpBB2/includes/page_header.php on line 585
Falls wir hier weiterkommen, ist es überhaupt möglich das die Mails an die Birthdayler automtisch generiert oder zumindest vom Admin kontrolliert heruas gehen ohne das die die Geburtstag haben online sind? Wenn das nicht ginge würde ich das ganze addon wieder heraus nehmen!

Verfasst: 12.07.2005 16:19
von easygo
Das wär schon machbar, denk ich... und was steht nun around line 585 ?

Am besten mal die page_header als TXT verlinken... easy

Verfasst: 12.07.2005 17:53
von Huchi
easygo hat geschrieben:Das wär schon machbar, denk ich...
Das freut mich, würd es schon gern so haben und wenn möglich mit Popup!
Hier die page_header

Verfasst: 12.07.2005 18:39
von easygo
Ahja, da steckt auf einmal ne Geschweifte zuviel drin!

Hast du die selbst eingebaut? :wink:

Ersetz mal das...

Code: Alles auswählen

// START Birthday Mail Extension 
 $sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = " . $userdata['user_id']; 
 if ( !($result = $db->sql_query($sql)) ) 
 { 
  message_die(GENERAL_ERROR, $lang['bd_sqlerror'], '', __LINE__, __FILE__, $sql);
 } 

 while( $row = $db->sql_fetchrow($result) ) 
 { 
  $bd_mail = intval($row['user_email']); 
 } 

 $sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = $user_id"; 
 if ( !($result = $db->sql_query($sql)) ) 
 { 
message_die(GENERAL_ERROR, $lang['bd_sqlerror'], '', __LINE__, __FILE__, $sql); 
 } 
 while ($row = $db->sql_fetchrow($result)) { 
{ 
  $emailer->from($board_config['board_email']); 
  $emailer->replyto($board_config['board_email']); 

  $emailer->email_address(trim($row['user_email'])); 
  $emailer->use_template("birthday", $row['user_lang']); 
  $emailer->set_subject($lang['bd_subject']); 

  $emailer->assign_vars(array( 
   'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $row['username']), 0, 25)), 
   'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']), 
   'BOARDNAME' => str_replace('<br />', "\n", "-- \n" . $board_config['sitename'])) 
  ); 
  $emailer->send(); 
  $emailer->reset(); 
} 
// END Birthday Mail Extension
durch das hier...

Code: Alles auswählen

// START Birthday Mail Extension 
/*
		$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = " . $userdata['user_id']; 
		if ( !($result = $db->sql_query($sql)) ) 
		{ 
		message_die(GENERAL_ERROR, $lang['bd_sqlerror'], '', __LINE__, __FILE__, $sql);
		} 
		
		while( $row = $db->sql_fetchrow($result) ) 
		{ 
		$bd_mail = intval($row['user_email']); 
		} 
*/
		$sql = "SELECT * FROM " . USERS_TABLE . " WHERE user_id = " . $userdata['user_id']; 
		if ( !($result = $db->sql_query($sql)) ) 
		{ 
			message_die(GENERAL_ERROR, $lang['bd_sqlerror'], '', __LINE__, __FILE__, $sql); 
		} 
		while ($row = $db->sql_fetchrow($result)) 
		{ 
			$emailer->from($board_config['board_email']); 
			$emailer->replyto($board_config['board_email']); 
			
			$emailer->email_address(trim($row['user_email'])); 
			$emailer->use_template("birthday", $row['user_lang']); 
			$emailer->set_subject($lang['bd_subject']); 
			
			$emailer->assign_vars(array( 
			'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $row['username']), 0, 25)), 
			'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']), 
			'BOARDNAME' => str_replace('<br />', "\n", "-- \n" . $board_config['sitename'])) 
			); 
			$emailer->send(); 
			$emailer->reset(); 
		} 
// END Birthday Mail Extension 
Alles, was auskommentiert wurde, ist ohne Bezug!
Also irgendwie überflüssig, mein ich... easy

Verfasst: 12.07.2005 19:11
von Huchi
Hi easygo,

habs ersetzt und erhalte jetzt folgende Meldung:

Code: Alles auswählen

Fatal error: Call to a member function on a non-object in /srv/www/htdocs/web139/html/phpBB2/includes/page_header.php on line 313