ilch Forum » Ilch Clan 1.1 » Allgemein » Geb. PM und S.script

Geschlossen
  1. #1
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Hallo Liebe Ilcher

    Ich hätte da mal 2 kleine Fragen lächeln

    und zwar wird mir ja im Forum angezeigt das und ob jmd Geburtstag hat , kann man das auch so machen das er automatisch eine Pm bekommt ? so ähnlich halt wie die Willkommens Pm ?

    und wenn ja wie ? bzw könntet Ihr mir dabei helfen?

    und die andere Frage ist ,

    Gibt es eine Art Modul um eine Seite zu empfehlen oder jmd eine email zu schicken direkt von der Seite aus ??

    LG Quantum

    betroffene Homepage: fcboard.de
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Zum Punkt 1 ... schau Dir mal das Modul an: Geburstags Mail Modul (1.1)
    Zum Punkt 2 ... als Modul mir jetzt nicht bekannt, aber mit einer einfache icmail Funktion schnell realisierbar.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Hi , Danke dir für die Antwort

    also ich machs mal andersrum zu Punkt 2 ,

    bei Maretz auf der demo Seite demo.maretz.eu/ bei seinen neuen Design Community_4 ist rechts eine Box ,Seite empfehlen , deshalb fragte ich nach.

    Unter dieser Box ist zwar sozusagen ein C Script ilch-mods.de

    Aber da scheint es diesen Dl nicht mehr zu geben traurig / bzw diese Seite da man woanders hingeleitet wird .

    Zu Punkt 1 lächeln

    Richtig habs schon gelesen das man das auch umschreiben kann das dort dann statt eine email eine News geschrieben wird , aber wie genau muss ich das für eine Pm umschreiben bzw was ?

    LG
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Dann am Besten Maretz anfragen.
    Die Funktion icmail mit der Funktion sendpm ersetzen.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Gut versuch mich da mal durch zu wurschteln

    bekam grad schon nen Fehler ^^ aber ich versuchs

    und dann frag ich Maretz mal an Danke dir

    LG

    EDIT : Falls das mit der PM nicht klappen sollt , darf ich dann nochmal nach fragen ?


    Zuletzt modifiziert von QuantumTecstar am 27.02.2012 - 14:20:00
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Logisch
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Dann meld ich mich direkt auch wieder bei dir ^^

    sry

    also erstmals habe ich auf meiner Testseite das hochgeladen , dabei wurden schon Dateien überschrieben was dort nicht schlimm war lächeln Seit dem geht zB nicht mehr der Wartungsmodus , sprich hab die Index überschrieben ^^

    Jetzt weiss ich schon nicht was ich von dem Modul aus der Index und der User.php raus nehmen muss um dort einzufügen .

    So dann habe ich etwas an der User.php rumgetüfftelt , naja versucht ^^
    und das Ergebnis kam dabei raus

    gesperrtes Bild


    Die ^^Nachricht^^ ist so halb da , nur nicht als Pm und zudem nen Fehler .

    Bin da leider etwas überfragt .

    LG
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Poste mal die betroffenen Dateien
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Ja eig wäre das ja die Stani Datei da ich ja nicht alzu viel gemacht habe bis auf etwas umzubenennen und einzufügen .

    Die Sache ist nur wenn du mir jetzt hilfst die Datei anzupassen muss ich meine user.php trotzdem dann überschrieben ^^

    also was könnte man nun machen ?

    eig nur direkt bei mir einfügen oder ?

    LG
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Da ich jetzt nicht genau weiss was du gemacht hast bzw. was Du wo eingefügt hast ... kann ich Dir schwer helfen.

    Wie gesagt, wenn Du das Geburtstagsmail-Modul nimmst reicht es eigentlich, wenn du, wie oben geschrieben, die Funktion änderst.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    genua hab das icmail auf sendpm gemacht und dann kam das dabei heraus

    mehr hatte ich ja garnicht gemacht
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Poste doch bitte mal die Datei
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Okay lächeln

    einmal Hier die Original Datei aus dem Modul

    <?php
    
    # hier werden alle user spezifischen funktionen
    # definert...
    
    function user_identification () {
      user_auth();
      user_login_check();
      user_update_database();
      user_check_url_rewrite();
    }
    
    function user_auth () {
      debug ('user - auth gestartet'. session_id());
      $cn = session_und_cookie_name();
      if (!user_key_in_db()
       OR !isset($_SESSION['authid'])
       OR (isset($_SESSION['authsess']) AND $_SESSION['authsess'] != $cn)) {
    
        debug ('user - nicht in db oder nicht authid');
    
        user_set_guest_vars();
        user_set_user_online ();
    
        # wenn cn cookie vorhanden
        # dann checken ob er sich damit einloggen darf
        if (isset($_COOKIE[$cn])) {
          user_auto_login_check();
        }
    
        # gruppen, und modulzugehoerigkeit setzten
        user_set_grps_and_modules();
      }
    }
    
    function user_check_url_rewrite() {
      global $allgAr;
      if ( !loggedin() AND $allgAr['show_session_id'] == 0 ) {
        # loescht die sessionid von allen urls
        # auch urls wie formulare usw. damit
        # suchmaschienen bots nicht iritiert sind ;)
        # output_reset_rewrite_vars ist eine php funktion
        # nicht unnoetig dannach suchen ;) ...
        output_reset_rewrite_vars ();
      }
    }
    
    function user_update_database () {
      $dif = date('Y-m-d H:i:s', time() - 7200);
      db_query("UPDATE prefix_online SET uptime = now() WHERE sid = '".session_id()."'");
      db_query("DELETE FROM prefix_online WHERE uptime < '". $dif."'");
      if ( loggedin() ) {
        db_query("UPDATE prefix_user SET llogin = '".time()."' WHERE id = '".$_SESSION['authid']."'");
      }
    }
    
    function user_set_user_online () {
      global $allgAr;
      if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
      }
      $_SESSION['authgfx'] = $allgAr['gfx'];
    }
    
    function user_key_in_db() {
      if ( 1 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        return ( true );
      } else {
        return ( false );
      }
    }
    
    function session_und_cookie_name () {
      return (md5(dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).DBPREF));
    }
    
    function user_login_check () {
      if ( isset ($_POST['user_login_sub']) AND isset ($_POST['name']) AND isset ($_POST['pass']) ) {
        debug ('posts vorhanden');
        $name = escape_nickname($_POST['name']);
        if ($name != $_POST['name'] OR strlen($_POST['name']) > 15) {
            return false;
        }
        $erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE name = BINARY '".$name."'");
        if ( db_num_rows($erg) == 1 ) {
          debug ('user gefunden');
          $row = db_fetch_assoc($erg);
          if ( $row['pass'] == md5($_POST['pass']) ) {
            debug ('passwort stimmt ... '.$row['name']);
            $_SESSION['authname']  = $row['name'];
            $_SESSION['authid']    = $row['id'];
            $_SESSION['authright'] = $row['recht'];
            $_SESSION['lastlogin'] = $row['llogin'];
            $_SESSION['authsess']  = session_und_cookie_name();
            db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
            setcookie($_SESSION['authsess'], $row['id'].'='.$row['pass'] , time() + 31104000, "/" );
            user_set_grps_and_modules();
            return (true);
          }
        }
        global $menu;
        $menu->set_url (0, 'user');
        $menu->set_url (1, 'login');
      }
      return ( false );
    }
    
    function user_auto_login_check () {
      $cn = session_und_cookie_name();
      $dat = explode('=',$_COOKIE[$cn]);
      $id = $pw = 0;
      if (isset($dat[0])) { $id = escape($dat[0], 'integer'); }
      if (isset($dat[1])) { $pw = $dat[1]; }
      debug (' pw ' . $pw );
      debug (' id ' . $id );
      $erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE id = ".$id);
      if (db_num_rows($erg) == 1) {
        debug ('benutzer gefunden');
        $row = db_fetch_assoc($erg);
        if ($row['pass'] == $pw) {
          debug ('passwoerter stimmen');
          debug ($row['name']);
          $_SESSION['authname']  = $row['name'];
          $_SESSION['authid']    = $row['id'];
          $_SESSION['authright'] = $row['recht'];
          $_SESSION['lastlogin'] = $row['llogin'];
          $_SESSION['authsess']  = $cn;
          db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
          setcookie($cn, $row['id'].'='.$row['pass'], time() + 31104000, "/" );
          return (true);
        }
      }
    
      user_logout ();
      return (false);
    }
    
    function user_set_guest_vars() {
      $_SESSION['authname']  = 'Gast';
      $_SESSION['authid']    = 0;
      $_SESSION['authright'] = 0;
      $_SESSION['lastlogin'] = time();
      $_SESSION['authgrp'] = array();
      $_SESSION['authmod'] = array();
      $_SESSION['authsess']  = session_und_cookie_name();
    }
    
    function user_markallasread () {
      $_SESSION['lastlogin'] = time();
    }
    
    function user_logout () {
      #global $allgAr;
      #$_SESSION = array();
      #$_SESSION['authgfx'] = $allgAr['gfx'];
      user_set_guest_vars();
      db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
      setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
      #if (isset($_COOKIE[session_name()])) {
      #  setcookie(session_name(), '', time()-99999999999931104000, '/');
      #}
      #setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
      #session_destroy();
    }
    
    function user_set_grps_and_modules () {
      $_SESSION['authgrp'] = array();
      $_SESSION['authmod'] = array();
      if ( loggedin() ) {
        $erg = db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']);
        while ( $row = db_fetch_assoc ( $erg ) ) {
          $_SESSION['authgrp'][$row['gid']] = TRUE;
        }
        $erg = db_query("SELECT DISTINCT url
        FROM prefix_modulerights
        left join prefix_modules on prefix_modules.id = prefix_modulerights.mid
        WHERE uid = ".$_SESSION['authid']);
        while ( $row = db_fetch_assoc ( $erg ) ) {
          $_SESSION['authmod'][$row['url']] = TRUE;
        }
      }
    }
    
    function loggedin () {
      if ( has_right(-1) ) { return ( true ); } else { return ( false ); }
    }
    function is_admin () {
      if ( has_right(-9) ) { return ( true ); } else { return ( false ); }
    }
    function is_coadmin () {
      if ( has_right(-8) ) { return ( true ); } else { return ( false ); }
    }
    function is_siteadmin ($m = NULL) {
      if ( has_right(-7) ) { return ( true ); }
      if ( !is_null($m) AND has_right(NULL, $m)) { return (true); }
      return ( false );
    }
    
    # diese funktion liefert immer true wenn es ein admin ist.
    # wenn kein kein admin wird geprueft ob der user
    # entweder ein angegebenes recht oder in einer angegebene
    # gruppe ist. oder ob er fals angegben das modulrecht hat.
    # wenn eines von diesen 3 kriterien stimmt wird true ansonsten
    # wenn keins uebereinstimmt false zurueck gegeben.
    function has_right ($recht,$modul = '') {
      if ( !is_array($recht) AND !is_null($recht) ) {
        $recht = array ( $recht );
      }
    
      if ( $_SESSION['authright'] == -9 ) {
        return ( true );
      }
    
      if ( !is_null($recht) ) {
        foreach ( $recht as $v ) {
          if ( ($v <= 0 AND $v >= $_SESSION['authright'] ) OR (isset($_SESSION['authgrp'][$v]) AND $_SESSION['authgrp'][$v] === true) ) {
            return (true);
          }
        }
      }
    
      if ( !empty($modul) AND isset($_SESSION['authmod'][$modul]) AND $_SESSION['authmod'][$modul] === true ) {
        return ( true );
      }
    
      return (false);
    }
    
    ### admin
    # wenn der 2. parameter weggelassen wird oder auf true gesetzt wird
    # dann wird ein login formular angezeigt, wenn der user kein admin ist.
    # wird der parameter auf false gesetzt wird das login formular nicht angezeigt.
    # erste parameter ist das menu objekt...
    function user_has_admin_right (&$menu,$sl=true) {
      if ( $_SESSION['authright'] <= -8 ) {  # co leader...
        return ( true );
      } else {
        $uri_to_check1 = $menu->get(0);
        $uri_to_check2 = $menu->get(1);
    	  if ( count($_SESSION['authmod']) < 1 OR !loggedin() ) {
    		  if ( $sl === true ) {
            if ( !loggedin() ) {
              $tpl = new tpl ( 'user/login.htm' );
        	    $tpl->set_out('WDLINK','admin.php',0);
            } else {
              echo '<strong>Keine Berechtigung!</strong> <a href="index.php">Startseite</a>';
            }
          }
    		  return ( false );
        } elseif ( (isset($_SESSION['authmod'][$uri_to_check1]) AND $_SESSION['authmod'][$uri_to_check1] == true)
                  OR (isset($_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2]) AND $_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2] == true) ) {
          return ( true );
       	} elseif ( count($_SESSION['authmod']) > 0 AND loggedin() ) {
          if ( $sl === true ) {
            foreach($_SESSION['authmod'] as $k => $v ) { $x = $k; break; }
            $x = explode('-',$x);
            $menu->set_url (0, $x[0]);
            if ( isset($x[1]) ) {
              $menu->set_url (1, $x[1]);
            }
          }
          return ( true );
        }
      }
      return ( false );
    }
    
    function user_regist ($name, $mail, $pass) {
      global $allgAr, $lang;
    
      $erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'");
      if (db_num_rows($erg) > 0) {
        return (false);
      }
    
      if ( $allgAr['forum_regist_user_pass'] == 0 ) {
    		$new_pass = genkey(8);
      } else {
    	  $new_pass = $pass;
    	}
    
      $md5_pass = md5($new_pass);
    	$confirmlinktext = '';
    
    	# confirm insert in confirm tb not confirm insert in user tb
    	if ( $allgAr['forum_regist_confirm_link'] == 1 ) {
    		# confirm link + text ... bit of shit put it in languages file
    	  $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
    		$id = md5 (uniqid (rand()));
    		$confirmlinktext = "\n".$lang['registconfirm']."\n\n".sprintf($lang['registconfirmlink'], $page, $id );
    		db_query("INSERT INTO prefix_usercheck (`check`,name,email,pass,datime,ak)
    		VALUES ('".$id."','".$name."','".$mail."','".$md5_pass."',NOW(),1)");
      } else {
    	  db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
    		VALUES('".$name."','".$md5_pass."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
    		$userid = db_last_id();
    	}
      $regmail = sprintf($lang['registemail'],$name, $confirmlinktext, $name, $new_pass);
    
    	icmail($mail,'Anmeldung',$regmail); # email an user
    
      return (true);
    }
    
    function user_remove($uid){
        $row = @db_fetch_object(db_query("SELECT recht,avatar FROM prefix_user WHERE id = ".$uid));
        if ( $uid <> 1 AND ($_SESSION['authid'] == $uid OR $_SESSION['authid'] == 1 OR (is_coadmin() AND $_SESSION['authright'] < $row->recht))) {
            db_query("DELETE FROM prefix_user WHERE id = ".$uid);
            db_query("DELETE FROM prefix_userfields WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_groupusers WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_modulerights WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_pm WHERE eid = ".$uid);
            db_query("DELETE FROM prefix_online WHERE uid = ".$uid);
            //Usergallery entfernen
            $sql = db_query("SELECT id,endung FROM prefix_usergallery WHERE uid = ".$uid);
            while( $r = db_fetch_object($sql) ){
                @unlink("include/images/usergallery/img_$r->id.$r->endung");
                @unlink("include/images/usergallery/img_thumb_$r->id.$r->endung");
            }
            db_query("DELETE FROM prefix_usergallery WHERE uid = ".$uid);
            //Avatar
            @unlink($row->avatar);
        }
    }
    
    function sendpm ($sid,$eid,$ti,$te,$status = 0) {
      if (is_array($eid)) {
      	db_query("INSERT INTO `prefix_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) ".
      	"SELECT  ".$sid.",`prefix_user`.`id`,'".time()."','".$ti."','".$te."',".$status." FROM `prefix_user` WHERE `prefix_user`.`id` IN (" . implode(',', $eid) . ")");
      } else {
      	db_query("INSERT INTO `prefix_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) VALUES (".$sid.",".$eid.",'".time()."','".$ti."','".$te."',".$status.")");
      }
    }
    
    // $datum im Format YYYY-MM-DD
    function getAlter($datum){
       $age = preg_split('/\-/', $datum);
       $alter = date("Y",time())-$age[0];
       if (mktime(0,0,0,date("m",time()),date("d",time()),date("Y",time())) < mktime(0,0,0,$age[1],$age[2],date("Y",time())))
          $alter--;
          $return = $datum == '0000-00-00' ? false : $alter; 
       return ($return);
    }
    
    function birthdaymail() {
        global $allgAr;  
    	$userabf = "SELECT `id`, `name`, `gebdatum`, `email` FROM `prefix_user` WHERE '".$allgAr['birthdaymail_recht']."' >= `recht` ORDER BY `id` DESC";  
    	$usererg = db_query($userabf);
        while ($urow = db_fetch_object($usererg)) {
    	    $ugbdex = explode("-",$urow->gebdatum);
    	    $usergbdate = $ugbdex[1].'-'.$ugbdex[2];
    	    $akdate = date('m-d', time());
    	    $arge = getAlter($urow->gebdatum);
    		$uid = $urow->id;
    		
    	    if ( $usergbdate == $akdate AND db_count_query("SELECT COUNT(ID) FROM `prefix_birthdaymail` WHERE `userid` = $uid AND `arge` = $arge") == false ) {
    	  	      db_query("INSERT INTO `prefix_birthdaymail` VALUES ('','".$urow->id."','".$urow->name."','".getAlter($urow->gebdatum)."')");     
    			  $mailtitle = $allgAr['birthdaymail_title'];
    			  $mailtitleaus = str_replace('#NAME#',$urow->name,$mailtitle);
    			  $mailtitleaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailtitleaus);			  
    			  
    			  $mailtext = $allgAr['birthdaymail_text'];
    			  $mailaus = str_replace('#NAME#',$urow->name,$mailtext);
    			  $mailaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailaus);			  
    			  $html = true;
    			  icmail($urow->email,$mailtitleaus,$mailaus,'',$html);
    			  
    	    }
     
    	}  
    
    }
    ?>

    und einmal meine user.php / darf meine ja nicht überschreiben

    <?php
    
    # hier werden alle user spezifischen funktionen
    # definert...
    
    function user_identification () {
      user_auth();
      user_login_check();
      user_update_database();
      user_check_url_rewrite();
    }
    
    function user_auth () {
      debug ('user - auth gestartet'. session_id());
      $cn = session_und_cookie_name();
      if (!user_key_in_db()
       OR !isset($_SESSION['authid'])
       OR (isset($_SESSION['authsess']) AND $_SESSION['authsess'] != $cn)) {
    
        debug ('user - nicht in db oder nicht authid');
    
        user_set_guest_vars();
        user_set_user_online ();
    
        # wenn cn cookie vorhanden
        # dann checken ob er sich damit einloggen darf
        if (isset($_COOKIE[$cn])) {
          user_auto_login_check();
        }
    
        # gruppen, und modulzugehoerigkeit setzten
        user_set_grps_and_modules();
      }
    }
    
    function user_check_url_rewrite() {
      global $allgAr;
      if ( !loggedin() AND $allgAr['show_session_id'] == 0 ) {
        # loescht die sessionid von allen urls
        # auch urls wie formulare usw. damit
        # suchmaschienen bots nicht iritiert sind ;)
        # output_reset_rewrite_vars ist eine php funktion
        # nicht unnoetig dannach suchen ;) ...
        output_reset_rewrite_vars ();
      }
    }
    
    function user_update_database () {
      $dif = date('Y-m-d H:i:s', time() - 7200);
      db_query("UPDATE prefix_online SET uptime = now() WHERE sid = '".session_id()."'");
      db_query("DELETE FROM prefix_online WHERE uptime < '". $dif."'");
      if ( loggedin() ) {
        db_query("UPDATE prefix_user SET llogin = '".time()."' WHERE id = '".$_SESSION['authid']."'");
      }
    }
    
    function user_set_user_online () {
      global $allgAr;
      if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
      }
      $_SESSION['authgfx'] = $allgAr['gfx'];
    }
    
    function user_key_in_db() {
      if ( 1 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        return ( true );
      } else {
        return ( false );
      }
    }
    
    function session_und_cookie_name () {
      return (md5(dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).DBPREF));
    }
    
    function user_login_check () {
        if (isset($_POST['user_login_sub']) AND isset($_POST['name']) AND isset($_POST['pass'])) {
            debug('posts vorhanden');
            $name = escape_nickname($_POST['name']);
            if ($name != $_POST['name'] OR strlen($_POST['name']) > 15) {
                return(false);
            }
            $erg = db_query("SELECT name,id,recht,pass,llogin,banned FROM prefix_user WHERE name = BINARY '".$name."'");
            if (db_num_rows($erg) == 1) {
                debug('user gefunden');
                $row = db_fetch_assoc($erg);
                if ($row['banned']  == 1) {
                    return(false);
                } else {
                    if ($row['pass'] == md5($_POST['pass'])) {
                        debug('passwort stimmt ... '.$row['name']);
                        $_SESSION['authname']  = $row['name'];
                        $_SESSION['authid']    = $row['id'];
                        $_SESSION['authright'] = $row['recht'];
                        $_SESSION['lastlogin'] = $row['llogin'];
                        $_SESSION['authsess']  = session_und_cookie_name();
                        db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
                        setcookie($_SESSION['authsess'], $row['id'].'='.$row['pass'] , time() + 31104000, "/" );
                        user_set_grps_and_modules();
                        return(true);
                    }
                }
            }
            global $menu;
            $menu->set_url(0,'user');
            $menu->set_url(1,'login');
        }
        return(false);
    }
    
    function user_auto_login_check () {
        $cn = session_und_cookie_name();
        $dat = explode('=',$_COOKIE[$cn]);
        $id = $pw = 0;
        if (isset($dat[0])) {
            $id = escape($dat[0],'integer');
        }
        if (isset($dat[1])) {
            $pw = $dat[1];
        }
        debug('pw'.$pw );
        debug('id '.$id );
        $erg = db_query("SELECT name,id,recht,pass,llogin,banned FROM prefix_user WHERE id = ".$id);
        if (db_num_rows($erg) == 1) {
            debug('benutzer gefunden');
            $row = db_fetch_assoc($erg);
            if ($row['banned']  == 1) {
                user_logout();
                return(false);
            } else {
                if ($row['pass'] == $pw) {
                    debug('passwoerter stimmen');
                    debug($row['name']);
                    $_SESSION['authname']  = $row['name'];
                    $_SESSION['authid']    = $row['id'];
                    $_SESSION['authright'] = $row['recht'];
                    $_SESSION['lastlogin'] = $row['llogin'];
                    $_SESSION['authsess']  = $cn;
                    db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
                    setcookie($cn, $row['id'].'='.$row['pass'], time() + 31104000, "/" );
                    return(true);
                }
            }
        }
        user_logout();
        return(false);
    }
    
    function user_set_guest_vars() {
      $_SESSION['authname']  = 'Gast';
      $_SESSION['authid']    = 0;
      $_SESSION['authright'] = 0;
      $_SESSION['lastlogin'] = time();
      $_SESSION['authgrp'] = array();
      $_SESSION['authmod'] = array();
      $_SESSION['authsess']  = session_und_cookie_name();
    }
    
    function user_markallasread () {
      $_SESSION['lastlogin'] = time();
    }
    
    function user_logout () {
      #global $allgAr;
      #$_SESSION = array();
      #$_SESSION['authgfx'] = $allgAr['gfx'];
      user_set_guest_vars();
      db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
      setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
      #if (isset($_COOKIE[session_name()])) {
      #  setcookie(session_name(), '', time()-99999999999931104000, '/');
      #}
      #setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
      #session_destroy();
    }
    
    function user_set_grps_and_modules () {
      $_SESSION['authgrp'] = array();
      $_SESSION['authmod'] = array();
      if ( loggedin() ) {
        $erg = db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']);
        while ( $row = db_fetch_assoc ( $erg ) ) {
          $_SESSION['authgrp'][$row['gid']] = TRUE;
        }
        $erg = db_query("SELECT DISTINCT url
        FROM prefix_modulerights
        left join prefix_modules on prefix_modules.id = prefix_modulerights.mid
        WHERE uid = ".$_SESSION['authid']);
        while ( $row = db_fetch_assoc ( $erg ) ) {
          $_SESSION['authmod'][$row['url']] = TRUE;
        }
      }
    }
    
    function loggedin () {
      if ( has_right(-1) ) { return ( true ); } else { return ( false ); }
    }
    function is_admin () {
      if ( has_right(-9) ) { return ( true ); } else { return ( false ); }
    }
    function is_coadmin () {
      if ( has_right(-8) ) { return ( true ); } else { return ( false ); }
    }
    function is_siteadmin ($m = NULL) {
      if ( has_right(-7) ) { return ( true ); }
      if ( !is_null($m) AND has_right(NULL, $m)) { return (true); }
      return ( false );
    }
    
    # diese funktion liefert immer true wenn es ein admin ist.
    # wenn kein kein admin wird geprueft ob der user
    # entweder ein angegebenes recht oder in einer angegebene
    # gruppe ist. oder ob er fals angegben das modulrecht hat.
    # wenn eines von diesen 3 kriterien stimmt wird true ansonsten
    # wenn keins uebereinstimmt false zurueck gegeben.
    function has_right ($recht,$modul = '') {
      if ( !is_array($recht) AND !is_null($recht) ) {
        $recht = array ( $recht );
      }
    
      if ( $_SESSION['authright'] == -9 ) {
        return ( true );
      }
    
      if ( !is_null($recht) ) {
        foreach ( $recht as $v ) {
          if ( ($v <= 0 AND $v >= $_SESSION['authright'] ) OR (isset($_SESSION['authgrp'][$v]) AND $_SESSION['authgrp'][$v] === true) ) {
            return (true);
          }
        }
      }
    
      if ( !empty($modul) AND isset($_SESSION['authmod'][$modul]) AND $_SESSION['authmod'][$modul] === true ) {
        return ( true );
      }
    
     return (false);
    }
    
    ### admin
    # wenn der 2. parameter weggelassen wird oder auf true gesetzt wird
    # dann wird ein login formular angezeigt, wenn der user kein admin ist.
    # wird der parameter auf false gesetzt wird das login formular nicht angezeigt.
    # erste parameter ist das menu objekt...
    function user_has_admin_right (&$menu,$sl=true) {
      if ( $_SESSION['authright'] <= -8 ) {  # co leader...
        return ( true );
      } else {
        $uri_to_check1 = $menu->get(0);
        $uri_to_check2 = $menu->get(1);
    	  if ( count($_SESSION['authmod']) < 1 OR !loggedin() ) {
    		  if ( $sl === true ) {
            if ( !loggedin() ) {
              $tpl = new tpl ( 'user/login.htm' );
        	    $tpl->set_out('WDLINK','admin.php',0);
            } else {
              echo '<strong>Keine Berechtigung!</strong> <a href="index.php">Startseite</a>';
            }
          }
    		  return ( false );
        } elseif ( (isset($_SESSION['authmod'][$uri_to_check1]) AND $_SESSION['authmod'][$uri_to_check1] == true)
                  OR (isset($_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2]) AND $_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2] == true) ) {
          return ( true );
       	} elseif ( count($_SESSION['authmod']) > 0 AND loggedin() ) {
          if ( $sl === true ) {
            foreach($_SESSION['authmod'] as $k => $v ) { $x = $k; break; }
            $x = explode('-',$x);
            $menu->set_url (0, $x[0]);
            if ( isset($x[1]) ) {
              $menu->set_url (1, $x[1]);
            }
          }
          return ( true );
        }
      }
      return ( false );
    }
    
    function user_regist ($name, $mail, $pass) {
      global $allgAr, $lang;
    
      $erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'");
      if (db_num_rows($erg) > 0) {
        return (false);
      }
    
      if ( $allgAr['forum_regist_user_pass'] == 0 ) {
    		$new_pass = genkey(8);
      } else {
    	  $new_pass = $pass;
    	}
    
      $md5_pass = md5($new_pass);
    	$confirmlinktext = '';
    
    	# confirm insert in confirm tb not confirm insert in user tb
    	if ( $allgAr['forum_regist_confirm_link'] == 1 ) {
    		# confirm link + text ... bit of shit put it in languages file
    	  $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
    		$id = md5 (uniqid (rand()));
    		$confirmlinktext = "\n".$lang['registconfirm']."\n\n".sprintf($lang['registconfirmlink'], $page, $id );
    		db_query("INSERT INTO prefix_usercheck (`check`,name,email,pass,datime,ak)
    		VALUES ('".$id."','".$name."','".$mail."','".$md5_pass."',NOW(),1)");
      } else {
    	  db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
    		VALUES('".$name."','".$md5_pass."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
    		$userid = db_last_id();
    	}
      $regmail = sprintf($lang['registemail'],$name, $confirmlinktext, $name, $new_pass);
    
    	icmail($mail,'Anmeldung',$regmail); # email an user
    
      return (true);
    }
    
    function user_remove($uid){
        $row = @db_fetch_object(db_query("SELECT recht,avatar FROM prefix_user WHERE id = ".$uid));
        if ( $uid <> 1 AND ($_SESSION['authid'] == $uid OR $_SESSION['authid'] == 1 OR (is_coadmin() AND $_SESSION['authright'] < $row->recht))) {
            db_query("DELETE FROM prefix_user WHERE id = ".$uid);
            db_query("DELETE FROM prefix_userfields WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_groupusers WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_modulerights WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_pm WHERE eid = ".$uid);
            db_query("DELETE FROM prefix_online WHERE uid = ".$uid);
            //Usergallery entfernen
            $sql = db_query("SELECT id,endung FROM prefix_usergallery WHERE uid = ".$uid);
            while( $r = db_fetch_object($sql) ){
                @unlink("include/images/usergallery/img_$r->id.$r->endung");
                @unlink("include/images/usergallery/img_thumb_$r->id.$r->endung");
            }
            db_query("DELETE FROM prefix_usergallery WHERE uid = ".$uid);
            //Avatar
            @unlink($row->avatar);
        }
    }
    
    function sendpm ($sid,$eid,$ti,$te,$status = 0) {
      if (is_array($eid)) {
      	db_query("INSERT INTO `prefix_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) ".
      	"SELECT  ".$sid.",`prefix_user`.`id`,'".time()."','".$ti."','".$te."',".$status." FROM `prefix_user` WHERE `prefix_user`.`id` IN (" . implode(',', $eid) . ")");
      } else {
      	db_query("INSERT INTO `prefix_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) VALUES (".$sid.",".$eid.",'".time()."','".$ti."','".$te."',".$status.")");
      }
    }
    
    function last_user($uid){
     $lb = db_fetch_object(db_query("SELECT last_bes, last_user_time FROM prefix_user WHERE id = ".$uid));
     $lba = explode('#',$lb->last_bes);
     $lbt = explode('#',$lb->last_user_time);
     $name = '';
     
    foreach ($lba as $k => $v) {
         if ($v < 1) { continue; }
      $besname = @db_result($sql = db_query("SELECT name FROM prefix_user WHERE id = ".$v),0,0);
      $besstaat = @db_result($sql,0,1); 
      $time = date("d.m.Y \u\m H:i",$lbt[$k]);
      $name .= "<div><a href=\"index.php?user-details-$v\" target=\"_self\" title=\"besucht am $time Uhr\">$besname</a></div>";
     }
     return($name);
    } 
    ?>



    LG
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Einfach diese Funktion einbinden. (Habe es aber nicht getestet)
    Die Variablen: birthdaymail_title und birthdaymail_text in der includes/lang/de.php noch anpassen, da in einer PM kein HTML möglich ist, wenn dann nur BBCode.

    function birthdaymail() {
        global $allgAr; 
        $userabf = "SELECT `id`, `name`, `gebdatum` FROM `prefix_user` WHERE '".$allgAr['birthdaymail_recht']."' >= `recht` ORDER BY `id` DESC"; 
        $usererg = db_query($userabf);
        while ($urow = db_fetch_object($usererg)) {
            $ugbdex = explode("-",$urow->gebdatum);
            $usergbdate = $ugbdex[1].'-'.$ugbdex[2];
            $akdate = date('m-d', time());
            $arge = getAlter($urow->gebdatum);
            $uid = $urow->id;
             
            if ( $usergbdate == $akdate AND db_count_query("SELECT COUNT(ID) FROM `prefix_birthdaymail` WHERE `userid` = $uid AND `arge` = $arge") == false ) {
                  db_query("INSERT INTO `prefix_birthdaymail` VALUES ('','".$urow->id."','".$urow->name."','".getAlter($urow->gebdatum)."')");    
                  
    			  $mailtitle = $allgAr['birthdaymail_title'];
                  $mailtitleaus = str_replace('#NAME#',$urow->name,$mailtitle);
                  $mailtitleaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailtitleaus);             
                  
    			  $mailtext = $allgAr['birthdaymail_text'];
                  $mailaus = str_replace('#NAME#',$urow->name,$mailtext);
                  $mailaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailaus);
    			  
    			  sendpm (1,$uid,$mailtitleaus,$mailaus,-1);
            }
      
        } 
     
    }
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Also diesen Code in die user.php rein setzen ?

    Okay und was genau muss ich dann in de.php noch anpassen ?

    Bin da noch etwas am verzweifeln , sry

    LG

    edit : habe deinen code mal in meine user.php eingefügt .

    aber dann kam das hier :

    Fatal error: Call to undefined function getAlter() in /var/www/vhosts/nftb-clan.de/httpdocs/include/includes/func/user.php on line 370

    Zeile 370 : $arge = getAlter($urow->gebdatum);

    hatte deinen Code nur unten drunter eingefügt

    LG


    Zuletzt modifiziert von QuantumTecstar am 27.02.2012 - 21:54:06
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Die Funktion:

    // $datum im Format YYYY-MM-DD
    function getAlter($datum){
       $age = preg_split('/\-/', $datum);
       $alter = date("Y",time())-$age[0];
       if (mktime(0,0,0,date("m",time()),date("d",time()),date("Y",time())) < mktime(0,0,0,$age[1],$age[2],date("Y",time())))
          $alter--;
          $return = $datum == '0000-00-00' ? false : $alter;
       return ($return);
    }


    solltest Du schon, wie auch in der org. Datei, mit übernehmen!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Ich habe beides in die User.php eingefügt

    aber

    Fatal error: Cannot redeclare getAlter() (previously declared in /var/www/vhosts/nftb-clan.de/httpdocs/include/includes/func/user.php:336) in /var/www/vhosts/nftb-clan.de/httpdocs/include/includes/func/user.php on line 381


    hier mal die user.php
    <?php
    
    # hier werden alle user spezifischen funktionen
    # definert...
    
    function user_identification () {
      user_auth();
      user_login_check();
      user_update_database();
      user_check_url_rewrite();
    }
    
    function user_auth () {
      debug ('user - auth gestartet'. session_id());
      $cn = session_und_cookie_name();
      if (!user_key_in_db()
       OR !isset($_SESSION['authid'])
       OR (isset($_SESSION['authsess']) AND $_SESSION['authsess'] != $cn)) {
    
        debug ('user - nicht in db oder nicht authid');
    
        user_set_guest_vars();
        user_set_user_online ();
    
        # wenn cn cookie vorhanden
        # dann checken ob er sich damit einloggen darf
        if (isset($_COOKIE[$cn])) {
          user_auto_login_check();
        }
    
        # gruppen, und modulzugehoerigkeit setzten
        user_set_grps_and_modules();
      }
    }
    
    function user_check_url_rewrite() {
      global $allgAr;
      if ( !loggedin() AND $allgAr['show_session_id'] == 0 ) {
        # loescht die sessionid von allen urls
        # auch urls wie formulare usw. damit
        # suchmaschienen bots nicht iritiert sind ;)
        # output_reset_rewrite_vars ist eine php funktion
        # nicht unnoetig dannach suchen ;) ...
        output_reset_rewrite_vars ();
      }
    }
    
    function user_update_database () {
      $dif = date('Y-m-d H:i:s', time() - 7200);
      db_query("UPDATE prefix_online SET uptime = now() WHERE sid = '".session_id()."'");
      db_query("DELETE FROM prefix_online WHERE uptime < '". $dif."'");
      if ( loggedin() ) {
        db_query("UPDATE prefix_user SET llogin = '".time()."' WHERE id = '".$_SESSION['authid']."'");
      }
    }
    
    function user_set_user_online () {
      global $allgAr;
      if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        db_query("INSERT INTO prefix_online (sid,uptime,ipa) VALUES ('".session_id()."',now(),'".getip()."')");
      }
      $_SESSION['authgfx'] = $allgAr['gfx'];
    }
    
    function user_key_in_db() {
      if ( 1 == db_result(db_query("SELECT COUNT(*) FROM prefix_online WHERE sid = '".session_id()."'"),0) ) {
        return ( true );
      } else {
        return ( false );
      }
    }
    
    function session_und_cookie_name () {
      return (md5(dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]).DBPREF));
    }
    
    function user_login_check () {
      if ( isset ($_POST['user_login_sub']) AND isset ($_POST['name']) AND isset ($_POST['pass']) ) {
        debug ('posts vorhanden');
        $name = escape_nickname($_POST['name']);
        if ($name != $_POST['name'] OR strlen($_POST['name']) > 15) {
            return false;
        }
        $erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE name = BINARY '".$name."'");
        if ( db_num_rows($erg) == 1 ) {
          debug ('user gefunden');
          $row = db_fetch_assoc($erg);
          if ( $row['pass'] == md5($_POST['pass']) ) {
            debug ('passwort stimmt ... '.$row['name']);
            $_SESSION['authname']  = $row['name'];
            $_SESSION['authid']    = $row['id'];
            $_SESSION['authright'] = $row['recht'];
            $_SESSION['lastlogin'] = $row['llogin'];
            $_SESSION['authsess']  = session_und_cookie_name();
            db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
            setcookie($_SESSION['authsess'], $row['id'].'='.$row['pass'] , time() + 31104000, "/" );
            user_set_grps_and_modules();
            return (true);
          }
        }
        global $menu;
        $menu->set_url (0, 'user');
        $menu->set_url (1, 'login');
      }
      return ( false );
    }
    
    function user_auto_login_check () {
      $cn = session_und_cookie_name();
      $dat = explode('=',$_COOKIE[$cn]);
      $id = $pw = 0;
      if (isset($dat[0])) { $id = escape($dat[0], 'integer'); }
      if (isset($dat[1])) { $pw = $dat[1]; }
      debug (' pw ' . $pw );
      debug (' id ' . $id );
      $erg = db_query("SELECT name,id,recht,pass,llogin FROM prefix_user WHERE id = ".$id);
      if (db_num_rows($erg) == 1) {
        debug ('benutzer gefunden');
        $row = db_fetch_assoc($erg);
        if ($row['pass'] == $pw) {
          debug ('passwoerter stimmen');
          debug ($row['name']);
          $_SESSION['authname']  = $row['name'];
          $_SESSION['authid']    = $row['id'];
          $_SESSION['authright'] = $row['recht'];
          $_SESSION['lastlogin'] = $row['llogin'];
          $_SESSION['authsess']  = $cn;
          db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
          setcookie($cn, $row['id'].'='.$row['pass'], time() + 31104000, "/" );
          return (true);
        }
      }
    
      user_logout ();
      return (false);
    }
    
    function user_set_guest_vars() {
      $_SESSION['authname']  = 'Gast';
      $_SESSION['authid']    = 0;
      $_SESSION['authright'] = 0;
      $_SESSION['lastlogin'] = time();
      $_SESSION['authgrp'] = array();
      $_SESSION['authmod'] = array();
      $_SESSION['authsess']  = session_und_cookie_name();
    }
    
    function user_markallasread () {
      $_SESSION['lastlogin'] = time();
    }
    
    function user_logout () {
      #global $allgAr;
      #$_SESSION = array();
      #$_SESSION['authgfx'] = $allgAr['gfx'];
      user_set_guest_vars();
      db_query("UPDATE prefix_online SET uid = ".$_SESSION['authid']." WHERE sid = '".session_id()."'");
      setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
      #if (isset($_COOKIE[session_name()])) {
      #  setcookie(session_name(), '', time()-99999999999931104000, '/');
      #}
      #setcookie(session_und_cookie_name(), "", time()-999999999999, "/" );
      #session_destroy();
    }
    
    function user_set_grps_and_modules () {
      $_SESSION['authgrp'] = array();
      $_SESSION['authmod'] = array();
      if ( loggedin() ) {
        $erg = db_query("SELECT gid FROM prefix_groupusers WHERE uid = ".$_SESSION['authid']);
        while ( $row = db_fetch_assoc ( $erg ) ) {
          $_SESSION['authgrp'][$row['gid']] = TRUE;
        }
        $erg = db_query("SELECT DISTINCT url
        FROM prefix_modulerights
        left join prefix_modules on prefix_modules.id = prefix_modulerights.mid
        WHERE uid = ".$_SESSION['authid']);
        while ( $row = db_fetch_assoc ( $erg ) ) {
          $_SESSION['authmod'][$row['url']] = TRUE;
        }
      }
    }
    
    function loggedin () {
      if ( has_right(-1) ) { return ( true ); } else { return ( false ); }
    }
    function is_admin () {
      if ( has_right(-9) ) { return ( true ); } else { return ( false ); }
    }
    function is_coadmin () {
      if ( has_right(-8) ) { return ( true ); } else { return ( false ); }
    }
    function is_siteadmin ($m = NULL) {
      if ( has_right(-7) ) { return ( true ); }
      if ( !is_null($m) AND has_right(NULL, $m)) { return (true); }
      return ( false );
    }
    
    # diese funktion liefert immer true wenn es ein admin ist.
    # wenn kein kein admin wird geprueft ob der user
    # entweder ein angegebenes recht oder in einer angegebene
    # gruppe ist. oder ob er fals angegben das modulrecht hat.
    # wenn eines von diesen 3 kriterien stimmt wird true ansonsten
    # wenn keins uebereinstimmt false zurueck gegeben.
    function has_right ($recht,$modul = '') {
      if ( !is_array($recht) AND !is_null($recht) ) {
        $recht = array ( $recht );
      }
    
      if ( $_SESSION['authright'] == -9 ) {
        return ( true );
      }
    
      if ( !is_null($recht) ) {
        foreach ( $recht as $v ) {
          if ( ($v <= 0 AND $v >= $_SESSION['authright'] ) OR (isset($_SESSION['authgrp'][$v]) AND $_SESSION['authgrp'][$v] === true) ) {
            return (true);
          }
        }
      }
    
      if ( !empty($modul) AND isset($_SESSION['authmod'][$modul]) AND $_SESSION['authmod'][$modul] === true ) {
        return ( true );
      }
    
      return (false);
    }
    
    ### admin
    # wenn der 2. parameter weggelassen wird oder auf true gesetzt wird
    # dann wird ein login formular angezeigt, wenn der user kein admin ist.
    # wird der parameter auf false gesetzt wird das login formular nicht angezeigt.
    # erste parameter ist das menu objekt...
    function user_has_admin_right (&$menu,$sl=true) {
      if ( $_SESSION['authright'] <= -8 ) {  # co leader...
        return ( true );
      } else {
        $uri_to_check1 = $menu->get(0);
        $uri_to_check2 = $menu->get(1);
    	  if ( count($_SESSION['authmod']) < 1 OR !loggedin() ) {
    		  if ( $sl === true ) {
            if ( !loggedin() ) {
              $tpl = new tpl ( 'user/login.htm' );
        	    $tpl->set_out('WDLINK','admin.php',0);
            } else {
              echo '<strong>Keine Berechtigung!</strong> <a href="index.php">Startseite</a>';
            }
          }
    		  return ( false );
        } elseif ( (isset($_SESSION['authmod'][$uri_to_check1]) AND $_SESSION['authmod'][$uri_to_check1] == true)
                  OR (isset($_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2]) AND $_SESSION['authmod'][$uri_to_check1.'-'.$uri_to_check2] == true) ) {
          return ( true );
       	} elseif ( count($_SESSION['authmod']) > 0 AND loggedin() ) {
          if ( $sl === true ) {
            foreach($_SESSION['authmod'] as $k => $v ) { $x = $k; break; }
            $x = explode('-',$x);
            $menu->set_url (0, $x[0]);
            if ( isset($x[1]) ) {
              $menu->set_url (1, $x[1]);
            }
          }
          return ( true );
        }
      }
      return ( false );
    }
    
    function user_regist ($name, $mail, $pass) {
      global $allgAr, $lang;
    
      $erg = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$name."'");
      if (db_num_rows($erg) > 0) {
        return (false);
      }
    
      if ( $allgAr['forum_regist_user_pass'] == 0 ) {
    		$new_pass = genkey(8);
      } else {
    	  $new_pass = $pass;
    	}
    
      $md5_pass = md5($new_pass);
    	$confirmlinktext = '';
    
    	# confirm insert in confirm tb not confirm insert in user tb
    	if ( $allgAr['forum_regist_confirm_link'] == 1 ) {
    		# confirm link + text ... bit of shit put it in languages file
    	  $page = $_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"];
    		$id = md5 (uniqid (rand()));
    		$confirmlinktext = "\n".$lang['registconfirm']."\n\n".sprintf($lang['registconfirmlink'], $page, $id );
    		db_query("INSERT INTO prefix_usercheck (`check`,name,email,pass,datime,ak)
    		VALUES ('".$id."','".$name."','".$mail."','".$md5_pass."',NOW(),1)");
      } else {
    	  db_query("INSERT INTO prefix_user (name,pass,recht,regist,llogin,email,status,opt_mail,opt_pm)
    		VALUES('".$name."','".$md5_pass."',-1,'".time()."','".time()."','".$mail."',1,1,1)");
    		$userid = db_last_id();
    	}
      $regmail = sprintf($lang['registemail'],$name, $confirmlinktext, $name, $new_pass);
    
    	icmail($mail,'Anmeldung',$regmail); # email an user
    
      return (true);
    }
    
    function user_remove($uid){
        $row = @db_fetch_object(db_query("SELECT recht,avatar FROM prefix_user WHERE id = ".$uid));
        if ( $uid <> 1 AND ($_SESSION['authid'] == $uid OR $_SESSION['authid'] == 1 OR (is_coadmin() AND $_SESSION['authright'] < $row->recht))) {
            db_query("DELETE FROM prefix_user WHERE id = ".$uid);
            db_query("DELETE FROM prefix_userfields WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_groupusers WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_modulerights WHERE uid = ".$uid);
            db_query("DELETE FROM prefix_pm WHERE eid = ".$uid);
            db_query("DELETE FROM prefix_online WHERE uid = ".$uid);
            //Usergallery entfernen
            $sql = db_query("SELECT id,endung FROM prefix_usergallery WHERE uid = ".$uid);
            while( $r = db_fetch_object($sql) ){
                @unlink("include/images/usergallery/img_$r->id.$r->endung");
                @unlink("include/images/usergallery/img_thumb_$r->id.$r->endung");
            }
            db_query("DELETE FROM prefix_usergallery WHERE uid = ".$uid);
            //Avatar
            @unlink($row->avatar);
        }
    }
    
    function sendpm ($sid,$eid,$ti,$te,$status = 0) {
      if (is_array($eid)) {
      	db_query("INSERT INTO `prefix_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) ".
      	"SELECT  ".$sid.",`prefix_user`.`id`,'".time()."','".$ti."','".$te."',".$status." FROM `prefix_user` WHERE `prefix_user`.`id` IN (" . implode(',', $eid) . ")");
      } else {
      	db_query("INSERT INTO `prefix_pm` (`sid`,`eid`,`time`,`titel`,`txt`,`status`) VALUES (".$sid.",".$eid.",'".time()."','".$ti."','".$te."',".$status.")");
      }
    }
    
    // $datum im Format YYYY-MM-DD
    function getAlter($datum){
       $age = preg_split('/\-/', $datum);
       $alter = date("Y",time())-$age[0];
       if (mktime(0,0,0,date("m",time()),date("d",time()),date("Y",time())) < mktime(0,0,0,$age[1],$age[2],date("Y",time())))
          $alter--;
          $return = $datum == '0000-00-00' ? false : $alter; 
       return ($return);
    }
    
    function birthdaymail() {
        global $allgAr;  
    	$userabf = "SELECT `id`, `name`, `gebdatum`, `email` FROM `prefix_user` WHERE '".$allgAr['birthdaymail_recht']."' >= `recht` ORDER BY `id` DESC";  
    	$usererg = db_query($userabf);
        while ($urow = db_fetch_object($usererg)) {
    	    $ugbdex = explode("-",$urow->gebdatum);
    	    $usergbdate = $ugbdex[1].'-'.$ugbdex[2];
    	    $akdate = date('m-d', time());
    	    $arge = getAlter($urow->gebdatum);
    		$uid = $urow->id;
    		
    	    if ( $usergbdate == $akdate AND db_count_query("SELECT COUNT(ID) FROM `prefix_birthdaymail` WHERE `userid` = $uid AND `arge` = $arge") == false ) {
    	  	      db_query("INSERT INTO `prefix_birthdaymail` VALUES ('','".$urow->id."','".$urow->name."','".getAlter($urow->gebdatum)."')");     
    			  $mailtitle = $allgAr['birthdaymail_title'];
    			  $mailtitleaus = str_replace('#NAME#',$urow->name,$mailtitle);
    			  $mailtitleaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailtitleaus);			  
    			  
    			  $mailtext = $allgAr['birthdaymail_text'];
    			  $mailaus = str_replace('#NAME#',$urow->name,$mailtext);
    			  $mailaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailaus);			  
    			  $html = true;
    			  icmail($urow->email,$mailtitleaus,$mailaus,'',$html);
    			  
    	    }
     
    	}  
    
    }
    // $datum im Format YYYY-MM-DD
    function getAlter($datum){
       $age = preg_split('/\-/', $datum);
       $alter = date("Y",time())-$age[0];
       if (mktime(0,0,0,date("m",time()),date("d",time()),date("Y",time())) < mktime(0,0,0,$age[1],$age[2],date("Y",time())))
          $alter--;
          $return = $datum == '0000-00-00' ? false : $alter;
       return ($return);
    }
    function birthdaymail() {
        global $allgAr;
        $userabf = "SELECT `id`, `name`, `gebdatum` FROM `prefix_user` WHERE '".$allgAr['birthdaymail_recht']."' >= `recht` ORDER BY `id` DESC";
        $usererg = db_query($userabf);
        while ($urow = db_fetch_object($usererg)) {
            $ugbdex = explode("-",$urow->gebdatum);
            $usergbdate = $ugbdex[1].'-'.$ugbdex[2];
            $akdate = date('m-d', time());
            $arge = getAlter($urow->gebdatum);
            $uid = $urow->id;
              
            if ( $usergbdate == $akdate AND db_count_query("SELECT COUNT(ID) FROM `prefix_birthdaymail` WHERE `userid` = $uid AND `arge` = $arge") == false ) {
                  db_query("INSERT INTO `prefix_birthdaymail` VALUES ('','".$urow->id."','".$urow->name."','".getAlter($urow->gebdatum)."')");   
                   
                  $mailtitle = $allgAr['birthdaymail_title'];
                  $mailtitleaus = str_replace('#NAME#',$urow->name,$mailtitle);
                  $mailtitleaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailtitleaus);            
                   
                  $mailtext = $allgAr['birthdaymail_text'];
                  $mailaus = str_replace('#NAME#',$urow->name,$mailtext);
                  $mailaus = str_replace('#ALTER#',getAlter($urow->gebdatum),$mailaus);
                   
                  sendpm (1,$uid,$mailtitleaus,$mailaus,-1);
            }
       
        }
      
    }
    ?>



    sry bin ein schwieriger Fall sry

    LG
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Dir ist aber schon aufgefallen, dass Du die Funktion doppelt drin hast ^^
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Hallo Lord ,

    also es scheint zu gehen lächeln
    gesperrtes Bild

    Vielen Vielen Dank dafür , echt KLasse und sry bin manchmal etwas schwer ^^

    Vielen Dank :))))
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Na Hauptsache es funzt ...
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    ja sogar jetzt auf meiner richtigen Hp

    Vielen Dank lächeln schöne Nachtruhe wünsche ich

    Doch noch eine Frage ,
    da ich ja zum testen, so machen musste das ich Geb habe , habe ich ja meine Pm schon bekommen .

    Wenn ich es jetzt wieder richtig stelle und dann wieder falsch bekomme ich keine PM mehr

    Wie regelt er das eigentlich :?

    Also bekomm ich da ich jetzt meine PM bekommen habe keine mehr im April?

    LG


    Zuletzt modifiziert von QuantumTecstar am 28.02.2012 - 00:22:29
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.635
    Beitragswertungen
    1193 Beitragspunkte
    Die Funktion birthdaymail() speichert jeweils ID, NAME und ALTER unter prefix_birthdaymail in deiner Datenbank. Wenn also deine ID und das Alter schonmal gespeichert wurde, wird das Script bei gleichem Alter nicht mehr reagieren, sondern erst zum nächsten Geburtstag.

    Also am Besten in die Datenbank gehen und die unerwünschten Einträge mit deiner ID entfernen.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    alles klaro , habs verstanden

    vielen Dank dafür

    LG
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    Sry für nun Doppelpost ^^

    Halli Hallo ,

    und zwar wollte ich nun die Profilansicht von Whazza installieren , habe alles hochgeladen und eingeführt und nun sagt er aber wegen meiner Geb PM

    Fatal error: Call to undefined function birthdaymail() in /var/www/vhosts/nftb-clan.de/httpdocs/demo/index.php on line 43

    wenn ich dieses aber aus der Index lösche komme ich wieder auf meine DemoSeite

    Ich möchte die Funktion aber gerne benutzen

    Könnte mir dabei jmd helfen oder sagen was ich tun muss

    ach ja in Zeile 43 steht

    if ($allgAr['birthdaymail_status'] == 1 ) { birthdaymail(); }



    edit : ich habe die Funktion in der user.php eingefügt doch nun sagt er mir
    Fatal error: Call to undefined function getAlter() in /var/www/vhosts/nftb-clan.de/httpdocs/demo/include/includes/func/user.php on line 358


    LG

    ERLEDIGT HABE ES SELBST GEFUNDEN die Funktionen in der User.php waren nicht mehr da , falls ich noch was finden sollte meld ich mich nochmal Danke
    Zuletzt modifiziert von QuantumTecstar am 08.02.2013 - 11:42:57
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten