Seite 1 von 1

Gewinnspielanpassung

Verfasst: 12.07.2006 13:03
von all-around-board
Hi Leute,

ich möchte ein kleines Gewinnspiel machen. Man muss einfach nur eine Zahl zwischen 1 und 10.000 Tippen!! Anschaun kann man sichs im Moment unter http://www.all-around-board.de/gws.php (Mitgliedsname: phpbb | PW: phpbb )!! Früher was da mal ein Shopmod. Ich hab ihn ein bisschen umbebaut, aber es sind trotzdem noch total alte Stücke vom Shopmod zu sehn!! Der Code ist:

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';

require_once($phpbb_root_path . 'extension.inc');
require_once($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata);

$from_userid = 42; 		// Absender User-ID eintragen, am besten einen neuen Benutzer anlegen dafür!!!
$to_userid = 2; 			// Empfänger User-ID eintragen
$field = 'user_points'; 	// Feld in der Datenbank ( phpbb_users ) wo das Feld zum Geld drinne steckt

if($userdata['user_id'] == ANONYMOUS)
{
	redirect(append_sid($phpbb_root_path . 'login.' . $phpEx .'?redirect=shop.'.$phpEx));
}	

$sql = "SELECT user_points, username, user_id FROM ".USERS_TABLE." WHERE user_id = '".$userdata['user_id']."' LIMIT 1";
if( !( $result = $db->sql_query($sql) ) )
{
	message_die(GENERAL_ERROR, 'Kann den User Cash nicht auslesen!', '', __LINE__, __FILE__, $sql);
}
$usercash = $db->sql_fetchrow($result);
$usercash = $usercash[user_points];

$item_price = array(
	0 => 0,
	1 => 5,

); 

$item_name = array(
	0 => '',
	1 => 'abschicken',



);	

$item_id = intval($_GET['item']);

if(isset($_GET['item']))
{
	if($usercash > $item_price[$item_id])
	{

		if( isset($_GET['submit_name']) )
		{
			$name = ' Der User hat folgende Zahl getippt: (wenn hier nichst  steht hat der User ein anderes Item gewählt; siehe oben): '.$_GET['new_name'];
		}

		$usercash = $usercash - intval($item_price[$item_id]);
		$time = time();
		$sql = "UPDATE ".USERS_TABLE." SET user_points = '".$usercash."' WHERE user_id = '".$userdata['user_id']."'";
		if( !( $result = $db->sql_query($sql) ) )
		{
			message_die(GENERAL_ERROR, 'Konnte das Shopelement nicht kaufen, wegen nem SQL-Error', '', __LINE__, __FILE__, $sql);
		}
		$sql = "SELECT `privmsgs_id` AS `total` FROM `".PRIVMSGS_TABLE."` ORDER BY `privmsgs_id` DESC LIMIT 1";
		if( !( $result = $db->sql_query($sql) ) )
		{
			message_die(GENERAL_ERROR, 'Kann keine PN-Daten abfragen', '', __LINE__, __FILE__, $sql);
		}
		$row = $db->sql_fetchrow($result);
		$post_id = intval($row['total']) + 1;
		$sql = "INSERT INTO `".PRIVMSGS_TABLE."` (`privmsgs_type`, `privmsgs_subject`, `privmsgs_from_userid`, `privmsgs_to_userid`, `privmsgs_date`, `privmsgs_ip`, `privmsgs_enable_bbcode`, `privmsgs_enable_html`, `privmsgs_enable_smilies`, `privmsgs_attach_sig`)
				VALUES (5, 'Kauf eines Shopelemnts', $from_userid, $to_userid, '$time', '127001', 0, 1, 1, 1)";
		if( !( $result = $db->sql_query($sql) ) )
		{
			message_die(GENERAL_ERROR, 'Kann keine PN hinterlegen', '', __LINE__, __FILE__, $sql);
		}
$sql = "INSERT INTO `".PRIVMSGS_TEXT_TABLE."` (`privmsgs_text_id`, `privmsgs_bbcode_uid`, `privmsgs_text`) VALUES ('".$post_id."', '099f1a0101', 'Benutzer: ".$userdata['username']." hat folgendes ITEM gekauft: ".$item_name[$item_id]." Bitte kontaktiere ihn für weitere Informationen zum Item".$name."')";
		if( !( $result = $db->sql_query($sql) ) )
		{
			message_die(GENERAL_ERROR, 'Kann keine PN hinterlegen', '', __LINE__, __FILE__, $sql);
		}
		$sql = "SELECT `user_id`, `user_new_privmsg` FROM `".USERS_TABLE."` WHERE `user_id` = $to_userid";
		if( !( $result = $db->sql_query($sql) ) )
		{
			message_die(GENERAL_ERROR, 'Kann keine PN hinterlegen', '', __LINE__, __FILE__, $sql);
		}
		$benutzerdaten = $db->sql_fetchrow($result);
		$new_pn = intval($benutzerdaten['user_new_privmsg']) + 1;
		$sql = "UPDATE `".USERS_TABLE."` SET `user_new_privmsg` = '$new_pn' WHERE `user_id` = $to_userid";
		if( !( $result = $db->sql_query($sql) ) )
		{
			message_die(GENERAL_ERROR, 'Kann keine PN hinterlegen', '', __LINE__, __FILE__, $sql);
		}
	}
	else
	{
		message_die(GENERAL_ERROR, 'Du hast nicht genug Geld um das Item zu kaufen');
	}
	if( headers_sent() )
	{
		die('<meta http-equiv="refresh" content="0; url='. $phpbb_root_path . 'shop.php?sid='.$userdata['session_id'].'&buyed=' . $item_id. '" />');
	}
	else
	{
		redirect(append_sid($phpbb_root_path . 'shop.' . $phpEx . '?buyed=' . $item_id));
	}	
}			

$page_title = 'Shop';
require_once($phpbb_root_path . 'includes/page_header.'.$phpEx);

if($_GET['buyed'])
{
	$buyedid = $_GET['buyed'];
	$buyedid = intval($buyedid);
	?>
	<br />
	<table border="0" width="100%">
	<tr>
	<td class="gen"><b><a href="./index.php" style="color:#FFFFFF; font-size:10px; cursor:crosshair;">Zurück zur Forenübersicht</a></b></td>
	</tr>
	</table>
	<br />
	<table border="0" width="100%" class="forumline gen" cellpadding="2" cellspacing="1">
	<tr>
	<th class="tHead">Herzlichen Glückwunsch</th>
	</tr>
	<tr>
	<td class="row1" align="center">Du hast folgendes Item gekauft: <?= $item_name[$buyedid] ?><br />
	Es hat <?= $item_price[$buyedid] ?> Forengeld gekostet.<br />
	<br />
	Ein Administrator wird dich bald kontaktieren.</td>
	</tr>
	</table>
	<br />
    <?
}
else if($_GET['buyed'] == "" && $_GET['item'] == "")
{
?>

        <table width="80%" cellspacing="2" cellpadding="2" border="0" align="center">
	<tr>
	<td class="nav"><a href="./index.php" clasS="nav"><?= $board_config['sitename'] ?> Foren-Übersicht</a></td>
	</tr>
	</table>

	<table class="forumline" width="80%" cellspacing="1" cellpadding="4" border="0">
	<tr>
	<th width="25%" class="tHead">Hinweis</th>
	<th width="25%" class="tHead">Deine Zahl</th>
	<th width="25%" class="tHead">Los geht's</th>
	<th width="25%" class="tHead">Teilnahmebediungung;</th>
	</tr>
	<tr>
	<td class="row1" rowspan="8" valign="top" align="center"><span class="gen"><b>Um an dem Gewinnspiel teilzunehmen, tippe eine Zahl zwischen 1 und 10.000!!</b></span></td>
	<td class="row1" align="center"><b>Sachpreise:</b> <br>MiniShisha<br>GTA Vice City<br>Jack Johnson Album<br>
<td class="row1"><form method="get"> <input type="hidden" value="3" name="item" /> <input type="submit" name="submit_name" value="<?= $item_name[3] ?>" style="text-decoration:underline; border:none; background:none; cursor:hand;"; /> <br />Deine Tippzahl: <input type="text" name="new_name" /></form>(Enter drücken)</td><br>

	<td class="row1" rowspan="8" valign="top" align="center"><span class="gen">Mindestbeiträge: 15 Posts <br><br>Mindestbeteiligung: 75 User</span></td>
	</tr>
	<tr>


	</tr>
	</table>
	<br />
	<?
}
	
require_once($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
!!


Leider funktioniert der Test nur, wenn ichs mit dem Admin probier! Bei normalen Usern wird ein anderer Text per PN geschickt! kann mir jemand helfen?, das ein wenig anzupassen? mfG

Verfasst: 12.07.2006 13:43
von Apotemnophiliac
Hallo
Beim Shop MOD wird auch der Administrator benachrichtigt, wenn ein User ein Item gekauft hat. Dies zeigt folgender Code Ausschnitt:
$sql = "INSERT INTO `".PRIVMSGS_TEXT_TABLE."` (`privmsgs_text_id`, `privmsgs_bbcode_uid`, `privmsgs_text`) VALUES ('".$post_id."', '099f1a0101', 'Benutzer: ".$userdata['username']." hat folgendes ITEM gekauft: ".$item_name[$item_id]." Bitte kontaktiere ihn für weitere Informationen zum Item".$name."')";
Ändere folgendes
Benutzer: ".$userdata['username']." hat folgendes ITEM gekauft: ".$item_name[$item_id]." Bitte kontaktiere ihn für weitere Informationen zum Item".$name.
in deinen Text um, den der Administrator erhalten soll - Falls er dies tun sollte.

gruß

Verfasst: 12.07.2006 13:55
von all-around-board
Also ich bekomm auch eine PN, und die sieht so aus:
Benutzer: phpbb hat folgendes ITEM gekauft: Bitte kontaktiere ihn für weitere Informationen zum Item
Leider seh ich nicht die Zahl, die er getippt hat! Was muss ich tun? mfG

Verfasst: 12.07.2006 15:00
von Apotemnophiliac
Ich schau mir das später bisschen genauer an nur ist es nicht unsinnig das ganze so zu schreiben, dass der User seine Zahl dir per PN schickt udn du dann siehst ob er gewonnen hat oder nicht? Ist es nicht klüger, das ganze in eine Tabelle zu schreiben, die nur für dich sichtbar ist - Du gibst dann im ACP die Lösung ein und die Gewinner werden auf der Gewinnspiel Seite angezeigt?

Verfasst: 12.07.2006 17:59
von all-around-board
Für viele User ist es schon zu anstrengend dem Admin eine Zahl schicken zu müssen. Es muss so einfach wie möglich für die User sein! Deswegen möcht ich einfach ein Feld und ein Okay Button, und anschließend soll die Zahl (aus dem Feld) an den Admin per PN geschickt werden! mfG