Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - teddy

Pages: [1] 2 3
1
Hi Mike,

im Cookie.

Lösche mal die Temporary Internet Files und die Cookies.

Danach kannst Du wieder bewerten.

Geschrieben wird das wohl in der page_header.php (im Ordner includes)

Ab Zeile 226 unter Save Rating.

2
Hallo zusammen,

die oben, von mir genannte, Möglichkeit hat sich leider nicht bewährt.
Die Tabelle wurde immer größer und die Zeit für die Abfragen immer länger.

Hier versuche ich zu zeigen, wie man das Mehrfachbewerten verhindern kann, indem das Formular ausgeblendet wird.

Benötigt wird auf jeden Fall ein neues Feld in der Datenbank bei 4images_images.

Legt zunächst ein neues Feld am Ende der Tabelle 4images_images an.

Nennt dieses Feld z.B. :  
voters  
TYP Text

In dieses Feld werden wir eintragen, wenn jemand ein Bild bewertet.
Wenn später ein Bild aufgerufen wird, wird diese Spalte ausgelesen und das rate_formular verschwindet, wenn der User schon bewertet hat.

im Ordner includes findet Ihr die Datei:
page_header.php

In Zeile 245 steht:
Code: [Select]
update_image_rating($id, $rating);
Bitte ändern in:
Code: [Select]
update_image_rating($id, $rating, $user_info['user_name']);

in der functions.php Zeile 525 steht:
Code: [Select]
function update_image_rating($image_id, $rating) {
Bitte ändern in:
Code: [Select]
function update_image_rating($image_id, $rating, $user) {

Zeile 527:
Code: [Select]
$sql = "SELECT cat_id, image_votes, image_rating

Bitte ändern in:
Code: [Select]
$sql = "SELECT cat_id, image_votes, image_rating, voters

Unter Zeile 535 $old_rating einfügen:
Code: [Select]
$old_voters = $image_row['voters'];
$new_voters = $old_voters.",".$user;


Zeile 539:
Code: [Select]
SET image_votes = ($old_votes + 1), image_rating = '$new_rating'

Bitte ändern in:
Code: [Select]
SET image_votes = ($old_votes + 1), image_rating = '$new_rating', voters = '$new_voters'


Ab jetzt sollte in der Datenbank bei jedem Bild stehen, wer schon bewertet hat.

Fehlt noch das Auslesen.

Öffne die details.php
in Zeile 46 steht:
Code: [Select]
$sql = "SELECT i.image_id, i.cat_id, i.us..................

Füge i.voters hinzu:
Code: [Select]
$sql = "SELECT i.voters, i.image_id, i.cat_id, i.us..........


Füge nach Zeile 485, unmittelbar vor Clickstream folgendes ein:
Code: [Select]
if (strpos($image_row['voters'], $user_info['user_name'])) $site_template->register_vars("rate_form", "");


Fertig. Ich hoffe es klappt alles. Habe es gerade nochmal so geteset, es dürften keine Fehler auftauchen. Garantie übernehme ich aber trotzdem nicht. ;)

Immer wenn ein User ein Bild schon bewertet hat, wird das Formular ausgeblendet. Egal ob er die Cookies löscht oder nicht.

3
Mods & Plugins (Requests & Discussions) / Upload Limit
« on: February 25, 2003, 06:40:40 PM »
Hallo zusammen,

nach Wochenlangen Tests schreibe ich mal, wie ich das Upload Limit gelöst habe.
Das Limit löst 2 Dinge:
1. Wieviele Bilder kann der User pro Tag hochladen
2. Wieviele Bilder kann der User insgesamt hochladen


Das Grundgerüst, mit dem Kategorien Upload habe ich hier aus dem Forum.
Ich weiß nicht mehr genau von wem das war, trotzdem möchte ich mich dafür bedanken.




In der member.php habe ich folgendes geändert:

suche:

Code: [Select]
if ($action == "uploadform") {
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id))) {
    show_error_page($lang['no_permission']);
    exit;
  }
 



und ersetzte es mit:

Code: [Select]
if ($action == "uploadform") {
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id))) {
    show_error_page($lang['no_permission']);
exit;
}
else
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id) || !check_cat_limit($user_id))) {
    show_error_page($lang['toomuch']);
    exit;
  }
else
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id) || !check_picture_limit($date_check,$user_id))) {
    show_error_page($lang['today_too_much']);
    exit;
  }



füge unmittelbar vor dem Text: if ($action == "uploadform") {
folgendes ein:
(4images_   ist der Präfix der Tabelle, das muß angepasst werden)

Code: [Select]
/*******************************************  Funktion für Tagesupload Limit ******************/
$user_id = $user_info['user_id'];
$date_check = mktime(0,0,0,date("m"),date("d"),date("Y"));

function check_picture_limit($date_check, $user_id) {
$sql = "SELECT image_id FROM 4images_images WHERE image_date>=$date_check AND user_id=$user_id";
$result = mysql_query($sql);
$today_images_user = mysql_num_rows($result);

//////////////////////////////////////  auch die freizuschaltenden Bilder limitieren  ///////////////
$sql = "SELECT image_id FROM 4images_images_temp WHERE image_date>=$date_check AND user_id=$user_id";
$result = mysql_query($sql);
$today_images_user_temp = mysql_num_rows($result);

$today_images_user=$today_images_user + $today_images_user_temp;

/////////////////////////////    Die 2 legt die Anzahl der Uploads pro Tag fest  //////////////////////////
if ($today_images_user >= 2) {
return false;
}else{
return true;
}
}

/**************************************Funktion fuer Gesamt Upload Limit ********************************/


$user_id = $user_info['user_id'];

function check_cat_limit($user_id) {
$sql = "SELECT image_id FROM 4images_images WHERE user_id = $user_id";
$result = mysql_query($sql);
$cat_images_user = mysql_num_rows($result);

/////////////////////////////    Die 100 legt die Anzahl Gesamt-Uploads fest    //////////////////////////
if($cat_images_user >= 100) {
return false;
}else{
return true;
}
}



Damit nicht nur das Upload Form gesperrt ist, sondern auch, wenn man mit dem BackButton des Browsers zurück geht,
wird nochmal vor dem speichern geprüft:


Suche:
Code: [Select]
if ($action == "uploadimage") {
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id))) {
    show_error_page($lang['no_permission']);
    exit;
  }


Und trage das dahinter ein:



Code: [Select]
$user_id = $user_info['user_id'];
$date_check = mktime(0,0,0,date("m"),date("d"),date("Y"));
 
if (!check_picture_limit($date_check,$user_id)) {
   show_error_page($lang['today_too_much']);
exit;
}
if (!check_cat_limit($user_id)) {
show_error_page($lang['toomuch']);
exit;
}


füge in der lang/deutsch/main.php Datei dieses ein:
Code: [Select]
$lang['toomuch'] = "Du hast die maximale Bildanzahl von 100 erreicht, um ein neues hochzuladen, lösche bitte ein altes. ";

$lang['today_too_much'] = "Du hast heute schon 2 Bilder hochgeladen. Morgen kannst Du erneut 2 Bilder hochladen. ";

Das ist alles, vielleicht kann jemand die Anweisungen ins Englische übersetzen? Dann hätten auch die Englisch sprechenden Leser was davon.

4
Discussion & Troubleshooting / MySQL Absturz
« on: January 02, 2003, 02:29:15 PM »
Hallo,

heute mittag hat der Anbieter wohl Probleme mit der Datenbank gehabt. Das Problem:

Anstatt einer Fehlermeldung, wie: Kann keine Verbindung aufbauen, kamen jede Menge Fehlermeldungen.

Es wurde aufgelistet, dass keine MySql Verbindung aufgebaut werden konnte, Fehler in global.php Zeile xxx

Es wurde der absolute Pfad des Servers und der Benutzername der Datenbank ausgespuckt.

Was muß ich tun, damit das ganze in einer allgemeinen Fehlermeldung gezeigt wird, z.B:
Kann keine Vebindung zur Datenbank aufbauen, probieren Sie es später nochmal.

5
Hello,

where is the mistake? I see this:

Warning: open(/tmp\sess_932754823532583625, O_RDWR) failed: m (2) in g:\myserver\4images\global.php on line 141

and this for 3 times:

Warning: Cannot add header information - headers already sent by (output started at g:\myserver\4images\global.php:141) in g:\myserver\4images\includes\sessions.php on line 85

Line 141 in global.php= session_register("user_template");

Line 85 in sessions.php=  setcookie($cookie_name, $value, $cookie_expire, COOKIE_PATH, COOKIE_DOMAIN, COOKIE_SECURE);

I can see the forms and select a template, it works. But what about the errors?

Can you help me?

6
Die IP Sperre würde auch nicht gewünschten Erfolg bringen.

Ich habe in der Datenbank eine neue Tabelle angelegt, dort wird gespeichert, welcher User für welches Bild votet.

Wenn er erneut voten will, wird die Tabelle ausgelesen und es kommt die Meldung:
Du hast dieses Bild schon bewertet.

Somit ist eine Mehrfachbewertung ausgeschlossen.

Gruß Uwe

7
Hallo migraul,

das kannst Du so auch nicht in memberlist.php übernehmen. Wie schon geschrieben, die echo's hauen alles durcheinander.

Diese Datei war ja ursrünglich zur Anzeige auf einer anderen HP gedacht.

Aber keine Sorge, es geht auch mit den Templates, es muß nur ein wenig dran gefeilt werden.

Zunächst ein paar Fragen:

Auf der Startseite von 4images wird schon angezeigt:
XXXX Bilder in XXX Kategorien.  Reicht das nicht?


Wenn nicht, wo genau möchtes Du die Anzeige haben und wie genau soll die Anzeige aussehen?  Bitte ein Beispiel.

8
Mods & Plugins (Requests & Discussions) / Datenbank
« on: November 10, 2002, 04:12:08 PM »
Hallo zusammen,


ich habe eine neue Tabelle eingerichtet:
4images_test

In den sql Befehlen ist es möglich z.B: FROM ".USERS_TABLE." zu schreiben, es geht aber nicht mit: FROM ".TEST_TABLE."

Was muß ich, wo verändern, damit es klappt und damit diese Tabelle beim Backup mit vorausgewählt wird?

Danke im voraus.

9
Hallo Markus,

schreibe das mal ab, speicher die Datei z.B. als test.php. Lade sie hoch, in den 4images Ordner.
Rufe dann www.Deine_4images_Site.de/test.php auf. Das Ergebniss siehst Du dann. ;)

Gruß Uwe




<?php

define('GET_CACHES', 1);
define('ROOT_PATH', './');
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
$user_access = get_permission();
include(ROOT_PATH.'includes/page_header.php');


$sql = "SELECT COUNT(*) AS bilder FROM ".IMAGES_TABLE." ";
$result = mysql_query($sql);
while($array1=mysql_fetch_array($result)) {
$bilder = $array1['bilder'];
}


$sql = "SELECT COUNT(*) AS kategor FROM ".CATEGORIES_TABLE." ";
$result = mysql_query($sql);
while($array1=mysql_fetch_array($result)) {
$kategor = $array1['kategor'];
}

$sql = "SELECT COUNT(*) AS kommentare FROM ".COMMENTS_TABLE." ";
$result = mysql_query($sql);
while($array1=mysql_fetch_array($result)) {
$kommentare = $array1['kommentare'];
}




echo "Es sind " . $bilder . " Bilder, in " . $kategor . " Kategorien, mit insgesamt " . $kommentare . " Kommentaren vorhanden." . "<br><br>";



$bilder2 = "Es sind " . $bilder . " Bilder vorhanden";
$kategor2 = "Es sind " . $kategor . " Kategorien vorhanden";
$kommentare2 = "Es sind " . $kommentare . " Kommentare vorhanden";

echo $kommentare2 . "<br><br>";
echo $bilder2 . "<br><br>";
echo $kategor2;
?>

10
Discussion & Troubleshooting / Mehrfach Bewertungen möglich
« on: November 03, 2002, 04:53:01 AM »
Zwischenzeitlich habe ich herausgefunden.

Man muß sich nur ausloggen, Cookie löschen, wieder einloggen, schon kann man erneut bewerten.

11
Discussion & Troubleshooting / Mehrfach Bewertungen möglich
« on: November 03, 2002, 03:18:32 AM »
Hallo zusammen,

normalerweise kann der User pro Bild nur 1x bewerten. Das klappt auch teilweise. Nachdem User mich ansprachen, habe ich gestern versucht, ein Bild nochmals zu bewerten. ( Meine letzte Bewertung war schon länger her)
Ordnungsgemäß kam die Meldung: Sie haben dieses Bild schon bewertet.

Gerade eben, habe ich es nochmal versucht und ich konnte es erneut bewerten.
Komisch ist: mal geht es, mal nicht. Als hätten die Bewertungen ein Eigenleben.

Das soll so nicht sein, deshalb habe ich das ausprobiert:

http://www.4homepages.de/forum/viewtopic.php?t=2264

Leider bringt das auch nicht den gewünschten Erfolg.

Kann mir jemand helfen?

Danke im voraus.

Gruß Uwe

12
Hallo zusammen,

das Ausblenden klappt. Wenn der User sich aber ab und wieder neu anmeldet, kommt es wieder.

Kann man irgendwo einstellen, das es immer ausgeblendet bleibt, wenn ein User ein Bild bewertet hat?

Danke im voraus

13
Mods & Plugins (Requests & Discussions) / Upload Limit
« on: October 31, 2002, 08:52:07 AM »
Hi cyber,
i'll try to translate:

what lisa wrote works fine, it is only setting a upload limit for each category.

this is, what i made:
i killed all the words wich includes cat_id
---------------------
lisa:
function check_cat_limit($cat_id, $user_id) {

teddy:
function check_cat_limit($user_id) {
---------------------

lisa:
$sql = "SELECT image_id FROM 4images_images WHERE cat_id=$cat_id AND user_id=$user_id";

teddy:
$sql = "SELECT image_id FROM 4images_images WHERE user_id = $user_id";
----------------------

lisa:
if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id) || !check_cat_limit($cat_id, $user_id))) {

teddy:
if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id) || !check_cat_limit($user_id) )) {
---------------------

That's all and it works fine.

if($cat_images_user >= 5) {
5 is an example, you can modify it. It says how much Pictures a user can upload.


My english isn't good, but I hope you understand this.

14
Mods & Plugins (Requests & Discussions) / Eigene Fehlermeldung
« on: October 28, 2002, 03:48:21 PM »
Hallo,

Nachdem das Upload Limit klappt, möcht ich eine eigene Fehlermeldung dafür haben.
Folgendes klappt:

$lang['zuviel'] habe ich definiert.



if ($action == "uploadform") {
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id))) {
    show_error_page($lang['no_permission']);
exit;
}
else
  if ($cat_id != 0 && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload", $cat_id) || !check_cat_limit($user_id) )) {
    show_error_page($lang['zuviel']);
    exit;
  }



Meine Frage: Ist das so richtig? Oder kommt die ['zuviel'] Fehlermeldung jetzt auch in anderen Situationen.

Danke im voraus

15
Ja, ich habe mir den Link angesehn. Da kommt aber nur ein leeres Fenster.

Pages: [1] 2 3