Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
eine Seite einbinden nur für registriete ?
#1
Hallo zusammen, ich hätte da mal ... Smile
Ich betreibe ein kleines bescheidenes Forum mit webradio (incl. songs die man sich wünschen kann)
also meine Idee ist es diese wunschseite/archive nur für registrierte Members nutzen zu lassen. Ist da technisch machbar? und wenn wie?

hier mal zum angucken: http://www.krautrock-world.com/samPHPweb/playing.php
diese Seite soll zwar von jedem gesehen werden aber nur forummitglieder sollten sich etwas wünschen dürfen. Wäre super wenn man da eine lösung finden könnte.

Gruss
coma
wer gute "alte" 70er Musik mag ist hier richtig:
http://www.krautrock-world.com/
Kraut/Deutschrock, Psychedelic und Progressive Rock
ENJOY !
Zitieren
#2
Das ist machbar, indem du die global.php des Forums einbindest:
PHP-Code:
define("IN_MYBB"1);
define("NO_ONLINE"1);
require(
"../global.php");
if(
$mybb->user['uid'] == "0") {
    
// Benutzer ist nicht eingeloggt
} else {
    
// Benutzer ist eingeloggt


Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
hmmmm ... was exact muss ich nun machen? sorry aber null ahnung.
ich füge mal die php an um die es geht.
Diese Datei liegt nicht im Forum-Ordner sondern im ordner "samPHPweb"

Gruss
coma

edit! diese Seite soll ja für jeden sichtbar sein ... es soll ja nur das wünschen von songs nur für registrierte sein daher noch ein Attachment nämlich um das es geht d Rolleyes


Angehängte Dateien
.php   playing.php (Größe: 8,87 KB / Downloads: 3)
.php   req.php (Größe: 182 Bytes / Downloads: 5)
wer gute "alte" 70er Musik mag ist hier richtig:
http://www.krautrock-world.com/
Kraut/Deutschrock, Psychedelic und Progressive Rock
ENJOY !
Zitieren
#4
Die Datei req.php verarbeitet die Wünsche? Dann sollte dieser Code am Anfang der Datei funktionieren (ggf. musst du den Pfad zur global.php anpassen):
PHP-Code:
define("IN_MYBB"1);
define("NO_ONLINE"1);
require(
"../global.php");
if(
$mybb->user['uid'] == "0") {
    die(
"Wünsche können nur von angemeldeten Benutzern abgegeben werden.");


Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#5
oops nein ... es sind fürs request 11 dateien hmmm .... das wird kompliziert Rolleyes also, die erste request.php leitet weiter zu dieser:
PHP-Code:
<?
 Def($samhost,$sam["host"]);
 Def($samport,$sam["port"]);
 Def($dedicated,false);
 
 if(empty($samhost)) DoError(800);
 //if(($samhost=="127.0.0.1") OR ($samhost=="localhost")) DoError(801);
 if(empty($songid)) DoError(802);
 
 settype($songid,"integer"); //Make sure songID is an integer to avoid SQL injection
 
 $host = $GLOBALS["REMOTE_ADDR"];
 
 $request = "GET /req/?songID=$songid&host=".urlencode($host)." HTTP\1.0\r\n\r\n";
 
$xmldata = "";
$fd = @fsockopen($samhost,$samport, $errno, $errstr, 30);
//$fd = fopen("http://$samhost:$samport/req/?songID=$songID&host=".urlencode($host),"r");
//echo "fd=$fd";
if(!empty($fd))
{
 fputs ($fd, $request);
$line="";
  while(!($line=="\r\n"))
  { $line=fgets($fd,128); }    // strip out the header
  while ($buffer = fgets($fd, 4096))
 {  $xmldata  .= $buffer; }
 fclose($fd);
}
else DoError(803);

if(empty($xmldata)) DoError(804);
  
 //$xmldata = File2Str($url);
 
 //Header("Content-type:text/xml");
// echo $xmldata;
 
//#################################
//      Initialize data
//#################################
 $tree = XML2Array($xmldata);
 $request = Keys2Lower($tree["REQUEST"]);
 
 $code    = $request["status"]["code"];
 $message = $request["status"]["message"];
 $requestid = $request["status"]["requestid"];
 if(empty($code)) DoError(804);
 
if($requestid>0) 
{
 /*== If your database is located on a remote host, you must specify local SAM login details here ===*/ 
 $db = new DBTable();
 $db->connect($samlogin);
 $db->open("SELECT songlist.*, songlist.ID as songID FROM requestlist, songlist 
           WHERE (songlist.ID = requestlist.songID) AND (requestlist.ID = $requestid)",1);
           
if($song=$db->row())
{        
    if(!isset($song["songid"])) $song["songid"]=0;
    $song["requestid"] = $requestid;
    PrepareSong($song);
}       
 

 

 if($code==200)
  require("req/req.success.html");
 else
  require("req/req.failed.html");
  
function DoError($code)  
{
 global $samhost, $samport, $errno, $errstr;
 
 switch ($code)
 {
  case 800 : $message = "SAM host must be specified"; break;
  case 801 : $message = "SAM host can not be 127.0.0.1 or localhost"; break;
  case 802 : $message = "Song ID must be valid";  break;
  case 803 : $message = "Unable to connect to $samhost:$samport. Station might be offline.<br>The error returned was $errstr ($errno).";  break;
  case 804 : $message = "Invalid data returned!";  break;
 }
 require("req/req.failed.html"); 
 exit;
}
?>

dann gibt es noch 2 html's für erfolgreichen request und/oder failed.

Gruss
coma
wer gute "alte" 70er Musik mag ist hier richtig:
http://www.krautrock-world.com/
Kraut/Deutschrock, Psychedelic und Progressive Rock
ENJOY !
Zitieren
#6
Ich habs mir nicht angesehen, aber du musst dann eigentlich den Code in alle betroffenen Dateien am Anfang einfügen, damit Gäste nicht darauf zugreifen können.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren