Verschiedene Fragen

Hallo,

ich habe auf meiner Seite (-> sirzimt.bplaced.net) mehrere Seiten…

Eine davon (sind ja nur 2…) ist die Seite meiner Gilde.
Die will ich jetzt Technisch erneuern…

Da es mir zu blöd jedoch wird mich für meine Seite und die der Gilde in 2 Adminpanels einzuloggen hab ich mir die Idee gefasst beides zusammen zu legen!
Das ist jetzt nicht das eigentliche Problem.

  1. Sondern das Problem liegt in der Sicherheit der eigenen Seiten Funktionen!
    Da ich nicht der einzige bin der an der Gildenpage News usw. schreibt!

Den jenigen soll dann eben nur das Zeug für die Gilde angezeigt werden.

Ich hab mir das mit einem Rechte System überlegt was festlegen sollte was wer sieht…
Dafür hab ich für jeden User die extra Spalte „rechte“ in der Datenbank angelegt…

Nun soll er bei dem Wert „1“ nur das Gildenmenü anzeigen und bei Wert „2“ Alles…

Leider happert es bei mir an der Umsetzung da es nicht so ging wie ich wollte…

  1. Da ich es nervig finde jeden Link eines Bildes Manuell einzustellen würde ich das gerne auch per MySQL regeln! Das Problem dabei ist:

Er würde mir alles auf eine Seite klatschen! Er soll aber z.B immer nach 6 Bildern auf eine neue Seite machen… das heißt eventl. eine neue anlegen!

Aber in diesem Bereich habe ich Null Ahnung… und Tutorials erklären das nie wirklich so richtig verständlich!

  1. Da es auch immer mal wieder Veranstalltungen gibt hats dafür jetzt ne eigene Seite… das Eintragen hier ist nicht mal das Problem! Sondern das Eintrag loswerden!

Das heißt im Adminpanel soll neben dem „Eintragen“ auch das „Löschen“ möglich sein!

  1. Ich würde gerne da es einige Nützlich fänden die News und die Veranstalltungen usw. als Feed anbieten. Dadrin wie der sich aber Automatisch aus MySQL Daten dann erstellt fehlt mir auch das Wissen!

Hoffe hier sind Nette Programmierer die einem Anfänger auf diesem Schritt von PHP weiter Helfen!
Und einem nicht nur Tutorials vorwerfen die man Stundenlang ließt und nur Bahnhof versteht :neutral_face: .

MfG Sir. Zimt und achja: :morgen:

Guten Morgen :wink:

Das ganze sollte nicht wirklich ein Problem darstellen, aber trotzdem recht aufwendig werden…
Sind das vorgefertigte Skripte die du auf den Seiten verwendest?

ad 1.)

[code] <?php if($access > 2): ?>
Irgendein Link den nur Level 2 sieht

Und noch einer

<?php endif; ?>[/code]

das sollte kein Problem sein, du musst nur auf den entsprechenden Seiten auch die Rechte überprüfen

ad 2.)
Da nimmst du einfach einen SQL-Befehl, der so lautet:

WHERE cat = ‘cat’ brauchst du nur für Kategorien
Limit hat vor dem Komma den Start, und danach die anzahl der Werte die zurückgegeben werden

ad 3.)

ad 4.)
phpbuilder.com/board/showthr … t=10356853

Hoffe das hilft dir soweit weiter…

Größtenteils selbst gebastelt.

Das Admin Script habe ich von einem Kumpel was er auf seiner Seite anbietet (-Link-

Ich denke die Codeschnipsel da muss ich an Meine Parameter noch anpassen stimmts? Oder hat das schon seine Richtigkeit o.0

EDIT:

Das RSS Feed hab ich jetzt mal Testweise Ausprobiert… wenn ich jetzt den für mich bekannten weg nutze die Daten aus der DB einzulesen kommt das dabei raus:

sirzimt.bplaced.net/rss.php

Hier mal Quellcode der rss.php:

<?php require_once('Connections/darkevo.php'); ?> 
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_darkevo, $darkevo);
$query_news = "SELECT * FROM news ORDER BY id DESC";
$news = mysql_query($query_news, $darkevo) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);


// THIS IS ABSOLUTELY ESSENTIAL - DO NOT FORGET TO SET THIS
@date_default_timezone_set("GMT");

$writer = new XMLWriter();
// Output directly to the user

$writer->openURI('php://output');
$writer->startDocument('1.0');

$writer->setIndent(4);

// declare it as an rss document
$writer->startElement('rss');
$writer->writeAttribute('version', '2.0');
$writer->writeAttribute('xmlns:atom', 'http://www.w3.org/2005/Atom');


$writer->startElement("channel");
//----------------------------------------------------
//$writer->writeElement('ttl', '0');
$writer->writeElement('title', 'DarkEvolution ::: News');
$writer->writeElement('description', 'News Feed der DarkEvolution');
$writer->writeElement('link', 'http://sirzimt.bplaced.net/?content=darkevolution&page=news');
$writer->writeElement('pubDate', date("D, d M Y H:i:s e"));
    $writer->startElement('image');
        $writer->writeElement('title', 'Latest Products');
        $writer->writeElement('width', '120');
        $writer->writeElement('height', '60');
    $writer->endElement();
//----------------------------------------------------



//----------------------------------------------------
$writer->startElement("item");
$writer->writeElement('title', '$row_news['titel']');
$writer->writeElement('link', '');
$writer->writeElement('description', '$row_news['eintrag']');
$writer->writeElement('guid', 'http://sirzimt.bplaced.net/rss.php');

$writer->writeElement('pubDate', $row_news['datum']);

$writer->startElement('category');
    $writer->text('date("M Y")');
$writer->endElement(); // Category

// End Item
$writer->endElement();
//----------------------------------------------------


// End channel
$writer->endElement();

// End rss
$writer->endElement();

$writer->endDocument();

$writer->flush();

mysql_free_result($news);
?>

Ich geb dir gerne Tipps, aber das Debugging ist deine Sache…
Übrigens wird so:

Die Variable nicht übernommen, da musst du die ’ ’ weglassen…das ist auch dein Fehler :wink:

Zu Punkt 1-3

Das ist nicht so wie ich es gedacht hab…

  1. Das Adminpanel liefert per if schleife mit echo() die Links aus wenn man eingeloggt ist… ich weis blos nicht ob es sehr gut ist eine weitere if schleife in die if schleife zu quetschen :susp:

  2. Er soll ja auch Entsprechend die Seiten erzeugen… das heißt wenn die Seite ihr Limit erreicht hat immer ein Bild weiter schieben damit die neusten immer auf Seite 1 sind :wink:

  3. Dafür müsste ich ja immer jeden Link extra machen :susp:

Es heißt nicht IF-Schleife!!! Und was soll gegen verschachtelte IFs sprechen?

Dann verwendest du eben auch ORDER BY mit DESC

nein, aber was spricht dagegen?

Es heißt nicht IF-Schleife!!! Und was soll gegen verschachtelte IFs sprechen?
[/quote]

if-abfrage ?

ja, klingt viel besser :slight_smile:

eine IF-Goto-Schleife sieht normalerweise so aus (verwendet aber kein mensch):

int i=0;
loop:
  //Do Anything interresting here
if(int i < 10) goto loop;

//Schleife aus

So der RSS Feed klappt mit nur einem Problem :susp: die Seite ist in Westeuropäisch Codiert leider werden dann Zeichen jetzt im Feed wie Ä, Ü, Ö usw. als ? Angezeigt… weis jemand wie ich den Zeichensatz einstelle? :astonished:

Zur Abfrage: Probiere ich morgen !haue

Das Seiten Problem: Ersteller der dann auch seiten in Form von: 01.php 02.php usw. :stress:

Zu den Extra Links: Ich meine wenn man viele News usw. schreibt ich hab nicht immer Zeit nen neuen Link für jede Veranstalltung und News zu machen :motz:

MfG und Frohe Weihnachten :ps: Sir. Zimt

Zeichencodierung kannst du so angeben:

$writer->startDocument('1.0','UTF-8');

startDocument nimmt als 2ten Parameter die Codierung an :wink:

Die Links im Admin-Bereich kannst du ja normal per MySQL-Abgfrage erstellen lassen :ps:

Schade michi7x7 entweder ich hab es am Falschen Ort oder es geht nicht:

Warning: XMLWriter::startDocument() [xmlwriter.startdocument]: xmlTextWriterStartDocument : not allowed in this context! in /users/sirzimt/www/feeds/darkevo/news.php on line 53

Hier mal 50-53 :slight_smile: :

$writer -> startElement ( 'rss' );
$writer -> writeAttribute ( 'version' , '2.0' );
$writer -> writeAttribute ( 'xmlns:atom' , 'http://www.w3.org/2005/Atom' );
$writer -> startDocument('1.0','iso-8859-1');

startDocument, muss logischerweise VOR dem document Element, also vor dem start Element “rss”.

Jetzt ist die Formatierung Futsch :astonished:

sirzimt.bplaced.net/feeds/darkevo/news.php :whata:

Hast du irgendwo noch eine startDocument Anweisung? die XML Deklaration ist zweimal vorhanden (im Seitenquelltext).

Was mich auch stört:

Wieso gibst du rss einen Namespace Deklaration für einen Atom feed? Nicht dass es stören würde, da dieser Namespace während des gesamten Dokuments scheinbar ohnehin nicht verwendet wird.
Das ist also überflüssig, so is richtig(er):

mfg Balmung

@Balmung: Das Script hab ich von dem Tut von michi7x7…

Hier is der Erste teil… ja da is noch ein Start Document :susp:

// THIS IS ABSOLUTELY ESSENTIAL - DO NOT FORGET TO SET THIS
@ date_default_timezone_set ( "GMT" );

$writer = new XMLWriter ();
// Output directly to the user

$writer -> openURI ( 'php://output' );
$writer -> startDocument ( '1.0' );

$writer -> setIndent ( 4 );

// declare it as an rss document
$writer -> startDocument('1.0','UTF-8');
$writer -> startElement ( 'rss' );
$writer -> writeAttribute ( 'version' , '2.0' );
$writer -> writeAttribute ( 'xmlns:atom' , 'http://www.w3.org/2005/Atom' );

dann entfernst du das zweite startDocument, und gibst dem ersten stattdessen den zweiten Parameter (UTF-8/iso-8859-1 oder was immer du da haben wolltest)

So die Feeds gehen !haue

Mein Problem Aktuell: Wie bekomme ich es hin das er mir hinter den Veranstalltungen im ACP einen Löschlink anbietet? Ich lasse sie nach id Aufwärts ordnen das heißt die erste ist immer oben :stress:

Wäre echt toll wenn jemand dazu was sagen könnte… michi7x7 Idee kommt ein STRIN Error dabei raus :susp:

Anhang:

Das mit dem Rechtesystem will auch nicht :susp: Hiermal gezeigt:

<?php
session_start();
include "config.inc.php";
    $sql="SELECT id, username
    FROM admin_users
    WHERE UserSession='".session_id()."'
    LIMIT 1";
    $result= mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    $userid = $row['id'];
    $name = $row['username'];
	$rechte = $row['rechte'];
	
if (mysql_num_rows($result)!=1)   {
echo '&nbsp;';
}else{

if($rechte != 1) {
echo '<a href="?content=admin&main=admin_index">Startseite</a><br />';
echo '<br />';
echo '<strong>DarkEvolution</strong>';
echo '<br />';
echo '<a href="?content=admin&main=evo&evo=news">News Erstellen</a><br />';
echo '<a href="?content=admin&main=evo&evo=events">Veranstalltungen</a><br />';
echo '<br />';
}
if($rechte != 2) {
echo '<strong>[Fg&sup3;] Sir. Zimt</strong><br />';
echo '<a href="?content=admin&main=zimt&zimt=blog">Blog</a><br />';
echo '<a href="?content=admin&main=zimt&zimt=gastebuch">G&auml;stebuch</a><br />';
echo '<br />';
echo '<strong>DarkEvolution</strong>';
echo '<br />';
echo '<a href="?content=admin&main=evo&evo=news">News Erstellen</a><br />';
echo '<a href="?content=admin&main=evo&evo=events">Veranstalltungen</a><br />';
echo '<br />';
}
echo '<a href="page/admin/include/logout.inc.php"><strong>Logout</strong></a>';

}

Er zeigt immer beides an was ich eigentlich nicht wollte… :susp: denn wenn jemand ja keinen Rechte Status 2 hat soll er es auch nicht sehen !haue


[code]
<table>
<?php
$sql = "SELECT * FROM `veranstaltungen` ORDER BY `id` DESC";
$sql = mysql_query($sql);

while( $row = mysql_fetch_assoc($sql))
   echo "<tr><td>$row[name]</td><td><a href="delete_event.php?id={$row[id]}">L&ouml;schen</a></td></tr>";
?>
</table>
[/code]

und die "delete_event.php":

[code]
<?php

if(!empty($_GET['id']))
   mysql_query("DELETE FROM `veranstaltungen` WHERE `id` = '{$_GET[id]}' LIMIT 1");
[/code]

Die Rechte des Benutzers solltest du allerdings auch noch überprüfen :wink:
<table>
<?php
$sql = "SELECT * FROM `veranstaltungen` ORDER BY `id` DESC";
$sql = mysql_query($sql);

while( $row = mysql_fetch_assoc($sql))
   echo "<tr><td>$row[name]</td><td><a href="delete_event.php?id={$row[id]}">L&ouml;schen</a></td></tr>";
?>
</table>

und die “delete_event.php”:

<?php

if(!empty($_GET['id']))
   mysql_query("DELETE FROM `veranstaltungen` WHERE `id` = '{$_GET[id]}' LIMIT 1");

Die Rechte des Benutzers solltest du allerdings auch noch überprüfen :wink:

Also michi7x7 ich weis nicht warum aber nachdem ich 1. Deinen Code Berichtigt habe (die “” mit ‘’ getauscht) kommt folgendes:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /users/sirzimt/www/page/admin/site/dark/events.php on line 96

So Hier mal von 90-100 der Code :wink: :

<p>
<table>
<?php
$sql = "SELECT * FROM `veranstaltungen` ORDER BY `id` DESC";
$sql = mysql_query($sql);

while( $row = mysql_fetch_assoc($sql))
   echo '<tr><td>$row[name]</td><td><a href="delete_event.php?id={$row[id]}">L&ouml;schen</a></td></tr>';
?>
</table>
</p>

Du musst den SQL-Code natürlich anpassen… deine Tabelle wird doch nicht veranstaltungen heißen, oder?

@Berichtigung: sry, mein Fehler, aber deine Berichtigung funktioniert auch nicht…

so funzts :wink: