ilch Forum » Allgemein » HTML, PHP, SQL,... » E-Mail in der Userdetails ab User

Geschlossen
  1. #1
    User Pic
    Galle81 gelöschter User
    Guten Tag,

    ich komme mal wieder nicht weiter und benötige Eure Hilfe lächeln

    Ich möchte gerne in den Userdetails das senden einer E-Mail erst ab dem Recht User zugänglich machen.
    Bei html funktioniert ja bestens dieser Code:
    {_if_{SESSION_AUTHRIGHT}<='-1'}xxx{/_endif}


    Bei php allerdings nicht.
    Denn die Userdetails laufen bei mir zum größten teil über die profilefields.php
    Hier wäre mal der Auszug der E-Mail aus der profilefields.php:
    function profilefields_show_spez_opt_mail ($value,$uid) {
      global $lang;
      return ( profilefields_show_echo_standart ( $lang['mail'], ($value?'<a href="index.php?user-mail-'.$uid.'" title="E-Mail an den User senden">'.$lang['send'].'</a>':'') ) );
    }


    Vielen Dank schon mal lächeln

    Mfg, Galle


    verwendete ilch Version: 1.1 O

    betroffene Homepage: www.fsc-clan.org
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Du könntest vor dem Senden der Mail abfragen, ob der Absender eingeloggt ist.
    if (loggedin() {...}
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Galle81 gelöschter User
    Dies müsste ich denn in die mail.php (include/contents/user) schreiben oder?
    Falls ja, was muss dort genau eingetragen werden?

    Mfg, Galle
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Jens238 Mitglied
    Registriert seit
    20.03.2013
    Beiträge
    404
    Beitragswertungen
    44 Beitragspunkte
    Genau zwinker

    if (loggedin()) { Der Code der mail.php }



    Zuletzt modifiziert von Jens238 am 17.08.2014 - 20:52:34
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Vielleicht noch folgendes unten dran:
    } else {
    echo 'Gäste dürfen keine Mails verschicken';
    $tpl = new tpl ('user/login');
    $tpl->set_out ('WDLINK', 'index.php', 0);
    $design->footer(1);
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Jens238 Mitglied
    Registriert seit
    20.03.2013
    Beiträge
    404
    Beitragswertungen
    44 Beitragspunkte
    Stimmt... Gute Idee...
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Galle81 gelöschter User
    Guten morgen,

    ich bekomme folgenden Fehler:
    Fatal error: Call to a member function footer() on a non-object in /var/www/web711/html/hp/include/contents/user/mail.php on line 103

    Somit denke ich, dass ich mal wieder etwas verkehrt gemacht habe lächeln

    Hier wäre noch mal die originale mail.php
    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $abf = "SELECT * FROM prefix_user WHERE id = ".$menu->get(2);
    $erg = db_query($abf);
    $DA_IS_WAS_FAUL = FALSE;
    if ( @db_num_rows($erg) <> 1 ) {
      $DA_IS_WAS_FAUL = TRUE;
    }
    $row = db_fetch_assoc($erg);
    if ( $row['opt_mail'] == 0 ) {
      $DA_IS_WAS_FAUL = TRUE;
    }
    if ( $DA_IS_WAS_FAUL === TRUE ) {
      header ( 'location: index.php?'.$allAr['smodul'] );
      exit();
    }
    
    $title = $allgAr['title'].' :: Users :: eMail an '.$row['name'];
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="?user">Users</a><b> &raquo; </b> eMail an '.$row['name'].$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    
    if ( ! array_key_exists('klicktime',$_SESSION) ) { 
      $_SESSION['klicktime'] = ''; 
    }
    
    # vars definieren
    $_POST['email'] = ( isset($_POST['email']) ? trim($_POST['email']) : '' );
    $_POST['bet'] = ( isset($_POST['bet']) ? trim($_POST['bet']) : '' );
    $_POST['txt'] = ( isset($_POST['txt']) ? trim($_POST['txt']) : '' );
    
    if ( empty($_POST['bet']) OR empty($_POST['email']) OR empty($_POST['txt']) OR $_SESSION['klicktime'] > (time() - 60) OR !chk_antispam('mail')) {
      
    	if ( !empty($_POST['send']) ) {
    	  $fehler = '<font color="#FF0000">Fehler:</font><br>';
    		if ( $_SESSION['klicktime'] > (time() - 60) ) {
    		  $fehler .= '&nbsp; - Bitte nicht so schnell eMails Schreiben<br>';
    		}
    		if ( trim($_POST['bet']) == '' ) {
    		  $fehler .= '&nbsp; - Bitte einen Betreff angeben<br>';
    		}
        if ( trim($_POST['email']) == '' ) {
    		  $fehler .= '&nbsp; - Bitte eine eMail angeben<br>';
    		}
    		if ( trim($_POST['txt']) == '' ) {
    		  $fehler .= '&nbsp; - Bitte eine Nachricht angeben<br>';
    		}
        if ( !chk_antispam ('mail') ) {
                    $fehler .= '&nbsp; - Bitte Antispam &uuml;berpr&uuml;fen<br>';
        }
    	
    	} else {
    	  $fehler = '';
    	}
    	echo $fehler;
      
      ?>
    	<form action="index.php?user-mail-<?php echo $menu->get(2) ?>" method="POST">
    	<table width="100%" border="0" cellspacing="1" cellpadding="5" class="border">
        <tr class="Fcat">
          <th colspan="2">eMail an Benutzer <?php echo $row['name']; ?></th>
        <tr>
          <td class="Fnorm">Betreff</td>
    			<td class="Cnorm"><input type="text" name="bet" value="<?php echo $_POST['bet']; ?>"></td>
    		</tr><tr class="Cnorm">
    		  <td class="Fnorm">Deine eMail</td>
    			<td class="Cnorm"><input type="text" name="email" value="<?php echo $_POST['email']; ?>"></td>
    		</tr><tr class="Cnorm">
    		  <td class="Fnorm" valign="top">Nachricht</td>
    		  <td class="Cnorm"><textarea cols="40" rows="10" name="txt"><?php echo $_POST['txt']; ?></textarea></td>
    		</tr>
        <?php echo get_antispam('mail',1); ?> 
            <tr class="Cdark">
    		  <td></td>
    			<td><input type="submit" name="send" value="<?php echo $lang['formsub']; ?>"></td>
        </tr>
      </table></form>
      <?php
    } else {
      $_SESSION['klicktime'] = time();
    	if ( 1 == $row['opt_mail'] ) {
        icmail ($row['email'],strip_tags($_POST['bet']),strip_tags($_POST['txt']),'SeitenKontakt (FSC-Clan) <'.escape_for_email($_POST['email']).'>');
    	  wd ('index.php','Die eMail wurde erfolgreich versendet');
    	} else {
        header ( 'location: index.php?'.$allAr['smodul'] );
        exit();
      }
    }
    
    
    $design->footer();
    
    ?>


    Mfg, Galle
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Versuch's mal so:
    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
     
     
    defined ('main') or die ( 'no direct access' );
     
    $abf = "SELECT * FROM prefix_user WHERE id = ".$menu->get(2);
    $erg = db_query($abf);
    $DA_IS_WAS_FAUL = FALSE;
    if ( @db_num_rows($erg) <> 1 ) {
      $DA_IS_WAS_FAUL = TRUE;
    }
    $row = db_fetch_assoc($erg);
    if ( $row['opt_mail'] == 0 ) {
      $DA_IS_WAS_FAUL = TRUE;
    }
    if ( $DA_IS_WAS_FAUL === TRUE ) {
      header ( 'location: index.php?'.$allAr['smodul'] );
      exit();
    }
     
    $title = $allgAr['title'].' :: Users :: eMail an '.$row['name'];
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="?user">Users</a><b> &raquo; </b> eMail an '.$row['name'].$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    if (!loggedin()) {
        echo '<br>Gäste dürfen keine E-Mails Verschicken!';
        $tpl = new tpl ('user/login');
        $tpl->set_out('WDLINK', 'index.php', 0);
        $design->footer(1);
    }
     
    if ( ! array_key_exists('klicktime',$_SESSION) ) {
      $_SESSION['klicktime'] = '';
    }
     
    # vars definieren
    $_POST['email'] = ( isset($_POST['email']) ? trim($_POST['email']) : '' );
    $_POST['bet'] = ( isset($_POST['bet']) ? trim($_POST['bet']) : '' );
    $_POST['txt'] = ( isset($_POST['txt']) ? trim($_POST['txt']) : '' );
     
    if ( empty($_POST['bet']) OR empty($_POST['email']) OR empty($_POST['txt']) OR $_SESSION['klicktime'] > (time() - 60) OR !chk_antispam('mail')) {
       
        if ( !empty($_POST['send']) ) {
          $fehler = '<font color="#FF0000">Fehler:</font><br>';
            if ( $_SESSION['klicktime'] > (time() - 60) ) {
              $fehler .= '&nbsp; - Bitte nicht so schnell eMails Schreiben<br>';
            }
            if ( trim($_POST['bet']) == '' ) {
              $fehler .= '&nbsp; - Bitte einen Betreff angeben<br>';
            }
        if ( trim($_POST['email']) == '' ) {
              $fehler .= '&nbsp; - Bitte eine eMail angeben<br>';
            }
            if ( trim($_POST['txt']) == '' ) {
              $fehler .= '&nbsp; - Bitte eine Nachricht angeben<br>';
            }
        if ( !chk_antispam ('mail') ) {
                    $fehler .= '&nbsp; - Bitte Antispam &uuml;berpr&uuml;fen<br>';
        }
         
        } else {
          $fehler = '';
        }
        echo $fehler;
       
      ?>
        <form action="index.php?user-mail-<?php echo $menu->get(2) ?>" method="POST">
        <table width="100%" border="0" cellspacing="1" cellpadding="5" class="border">
        <tr class="Fcat">
          <th colspan="2">eMail an Benutzer <?php echo $row['name']; ?></th>
        <tr>
          <td class="Fnorm">Betreff</td>
                <td class="Cnorm"><input type="text" name="bet" value="<?php echo $_POST['bet']; ?>"></td>
            </tr><tr class="Cnorm">
              <td class="Fnorm">Deine eMail</td>
                <td class="Cnorm"><input type="text" name="email" value="<?php echo $_POST['email']; ?>"></td>
            </tr><tr class="Cnorm">
              <td class="Fnorm" valign="top">Nachricht</td>
              <td class="Cnorm"><textarea cols="40" rows="10" name="txt"><?php echo $_POST['txt']; ?></textarea></td>
            </tr>
        <?php echo get_antispam('mail',1); ?>
            <tr class="Cdark">
              <td></td>
                <td><input type="submit" name="send" value="<?php echo $lang['formsub']; ?>"></td>
        </tr>
      </table></form>
      <?php
    } else {
      $_SESSION['klicktime'] = time();
        if ( 1 == $row['opt_mail'] ) {
        icmail ($row['email'],strip_tags($_POST['bet']),strip_tags($_POST['txt']),'SeitenKontakt (FSC-Clan) <'.escape_for_email($_POST['email']).'>');
          wd ('index.php','Die eMail wurde erfolgreich versendet');
        } else {
        header ( 'location: index.php?'.$allAr['smodul'] );
        exit();
      }
    }
     
     
    $design->footer();
     
    ?>
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Noch ein kleiner Hinweis am Rande, der einfachste weg, eine Seite ab einem bestimmten Recht nutzbar zu machen ist die Verwendung der Naviationskonfiguration im Adminbereich.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Ja aber einfach kann ja jeder zunge
    Zur Erklärung, falls Interesse:
    In der Navigation zb im Menü 5 (kann auch ein anderes sein) Menüpunkt intern wählen und darunter dann user-mail eingeben. Oben einen Namen vergeben und ganz unten das Recht einstellen, fertig zwinker
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Galle81 gelöschter User
    @ Outi77,
    besten Dank, funktioniert tadellos lächeln

    @ Mairu,
    ja das ist mir bekannt, allerdings ist dies eine spezielle Seite, die man nicht in der Navigation auswählen kann.



    ZitatZitat geschrieben von Outi77
    Ja aber einfach kann ja jeder zunge
    Zur Erklärung, falls Interesse:
    In der Navigation zb im Menü 5 (kann auch ein anderes sein) Menüpunkt intern wählen und darunter dann user-mail eingeben. Oben einen Namen vergeben und ganz unten das Recht einstellen, fertig zwinker


    Darauf kam ich noch gar nicht lachen

    Mfg, Galle


    Zuletzt modifiziert von Galle81 am 18.08.2014 - 13:33:18
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    ZitatZitat geschrieben von Galle81
    ja das ist mir bekannt, allerdings ist dies eine spezielle Seite, die man nicht in der Navigation auswählen kann.

    Das funktioniert tatsächlich mit allen Seiten zwinker
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten