Seite 1 von 1

Bewertung in Portal abgeben[doch nicht erledigt]

Verfasst: 09.11.2006 12:57
von QO
Hi

Ich will mir einen Wettbewertungsblock machen. Leider weiss ich nicht wie ich das mit dem Bewerten machen soll, also die übergabe der Bewertung vonm tpl zu php. Andere Mods und Vorbilder haben mir nicht viel helfen können.

Es handelt sich um einen Block für IM-Portal. Soweit habe ich es geschaft, das alle Bilder einer Kategorie aufgelistet werden
Beispielseite

album_wettbewerb_block.txt (tpl)

blocks_imp_album_wettbewerb.txt (php)

In der tpl könnte ich folgendes z.B. einfügen


Code: Alles auswählen

	<input type="hidden" name="bewertung" value="">
	<select name="type">
	<option value="g">{GUT}</option>
	<option value="n">{NAJA}</option>
	<option value="s">{SCHLECHT}</option>
	</select>&nbsp;<input type="submit" value="Bewertung abgeben" class="liteoption" />
Das sollte dann an einen bestimmten (abhängig von g,n,s) Wert in die Rating-Tabelle vom Photoalbum einfügen. Der SQL-befehl ist kein Problem, aber wie bekomme ich es zum ausführen im Block, also die übergabe des Wertes und wo müsste ich es in der php-blockdatei einfügen?.

Man soll also jedes Bild einzeln bewerten können

Danke i.v.

Verfasst: 09.11.2006 22:31
von QO
Abend

Also ich hab noch etwas herumgebastelt, damit ihr vielleicht etwas besser helfen könnt...

Mein Wettbewerbsblock ist überarbeitet und das Speichern/umsetzten der Daten wird jetzt in einer eigenen Datei ausgeführt.


Hier ist die Beispielseite, die die Bewertungen weiterleitet : Beispielseite

Die Blockdateien als txt ( welche jetzt "uninteresant" sind, da die speicherung extern geschieht):

album_wettbewerb_block.txt (tpl)
blocks_imp_album_wettbewerb.txt (php)



Es wird also jetzt eine datei "wettbewerb.php" aufgerufen und die wahlergebnisse übermittelt. Das sieht dann so aus:

wettbewerb.php?20=g&18=n&submitted=Go (die 20 und 18 ist die ID des Bild und g u. n steht für die wahl...)

Mein Problem jetzt ist, dass ich nicht weiss wie ich diese information auslese (ID, Ergebniss)


Wettbewerb.php

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

global $template, $phpbb_root_path, $phpEx, $db, $board_config, $lang, $portal_config, $userdata;



		$rate_user_id = $userdata['user_id'];
		$rate_user_ip = $userdata['session_ip'];
		$rate_pic_id = ???????????????????????????????????????????????????????????;
		
		if (????????? == g)
		{		
			$rate_point = 3;
		}
		else if (????????? == n)
		{		
			$rate_point = 1;
		}
		else
		{		
			$rate_point = 0;
		}


		$sql = "INSERT INTO ". ALBUM_RATE_TABLE ." (rate_pic_id, rate_user_id, rate_user_ip, rate_point)
				VALUES ('$pic_id', '$rate_user_id', '$rate_user_ip', '$rate_point')";

		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not insert new rating', '', __LINE__, __FILE__, $sql);
		}




?>

Was muss bei ???????? hin und was fehlt noch vorn/hinter dem hauptteil zur auslese der übermittelten Daten?

QO

Verfasst: 10.11.2006 01:14
von QO
Sry wenn ich schonwieder hier poste. Ich hab vielleicht die lösung, aber auch ein Problem mit "Hacking Attempt"

Sobald man eine Bewertung abgeben will, gibts die Meldung "Hacking Attempt"

Beispielseite


Mit der suche hab ich etwas mit define('IN_PHPBB',true); gefunden. Wenn ich dieses oder die if-variante versuche einzusetzten, bleibt die Meldung. Wie löst man es?

Verfasst: 11.11.2006 14:19
von QO
Hi

Leider hab ich das Problem mit dem "Hacking attempt" nicht lösen können. Hat keiner eine Idee woran es liegen könnte bzw was ich noch versuchen kann?

Verfasst: 11.11.2006 16:47
von Miriam
Wo (also welche Datei) zeigt denn das hacking attempt an?

Verfasst: 11.11.2006 16:58
von QO
Hi

Alle Dateien die von dem Block beim absenden geöffnet werden bringen den Fehler. Ich hatte auch schon versucht nach index.php bzw. portal weiterzuleiten, alles über <form action="... aber es ging nicht

Ein normaler href-link funktioniert.

Achso, mir ist vorhin aufgefallen, dass die Absendefunktion für nichteingelogged ausgeblendet war :oops: Habs zum testen geändert...

Hier nochmal für euch zum Probieren

http://www.eiskuh.pro-scripting.de/Foru ... php?page=8

Verfasst: 11.11.2006 17:18
von Miriam
QO hat geschrieben:Ein normaler href-link funktioniert.
Das sollte es auch, denn die Datei, die den Link bereitstellt hat die Servervariable IN_PHPBB auf true gesetzt. Somit ist sie für die, durch den Link aufgerufene Datei, auch true.
Daher wird die Abfrage:

Code: Alles auswählen

if ( !defined('IN_PHPBB') )
{
	die("Hacking attempt");
}
In der verlinkten Datei auch nicht ausgeführt.
Bei Dir aber schon.

Da hilft nur eins: Du musst in der Datei, die die anderen Dateien aufruft und das Problem hacking attempt generiert, mit diesem Code (am besten [fast] ganz oben) "aufrüsten" -->

Code: Alles auswählen

define('IN_PHPBB', true);
Aber Achtung! Die Datei könnte evtl. von "aussen" her aufgerufen werden und bösen Menschen Tür und Tor öffnen. ---> Daher solltest Du alle Variablen einen Startwert geben. Vor allem der allseits beliebten $phpbb_root_path. (Immer wieder gern für Hackerangriffe genommen.) :D

Verfasst: 11.11.2006 19:02
von QO
Hi Miriam

Ich hatte geglaub alle 15 define Kombinationen versucht zu haben, scheinbar doch nicht... Danke auch für deine Tipps. Jetzt kann ich weiter arbeiten.

Naja, wenns Fertig ist gibts gibts einen neuen IM-Portal Block der leicht anpassbar ist für andere die Wettbewerbe machen und Photoalbum nutzen..

Nochmals Danke

Verfasst: 09.12.2006 15:34
von QO
Hi

Also mein Problem mit "Hacking Attempt" ist wieder da, seitdem unser Board auf einem Anderen Server ist.

Hier mal die Dateien (als txt)

wettbewerb.php

block_imp_album_wettbewerb.php

album_wettbewerb_block.tpl

Die Datei block_imp_album.php ist der Block, der in der portal.php aufgerufen wird und dem user die Wahloptionen zum Absenden gibt.

Beim Absenden wird die wettbewerb.php aufgerufen und die ergebnisse des user werden dorthin übermittelt und sollten verarbeitet werden. Leider kommt beim öffnen dieser datei gleich die Fehlermeldung "Hacking Attemp"

Warum hats beim vorherigen Server funktioniert und jetzt nicht? Was hab ich falsch gemacht?



HILFE!!! :(