Shoutbox adminfunktionen erstellen



  • Hallo,

    zwutz schrieb:

    derdefeckter schrieb:

    [php]<?php

    $dbresult = mysql_query("SELECT * FROM dbtableORDERBYIDDESCLIMIT0,dbtable ORDER BY ID DESC LIMIT 0,messages_count");[/code]

    warst es nicht sogar du, dem ich gesagt hab, dass "SELECT *" in Produktivcode nichts zu suchen hat?

    Ich lese ,frage und beantworte täglich posts da weiss ich das jetzt nicht mehr 🤡

    Wie müsste die Abfrage denn lauten?

    mfg



  • So leute jetzt habe ich wirklich wieder ein Problem!

    code:

    <?php
    session_start();
    ?> 
    <?php
    if(!isset($_SESSION["username"]))
       {
       echo "Bitte erst <a href=\"index.php\">einloggen</a>";
       exit;
       }
    else 
    
    require ('config.php');
    
    $username = $_SESSION["username"];
    
    $abfrage = "SELECT username, userlevel FROM login WHERE username ='".mysql_real_escape_string($username)."' LIMIT 1";
    $ergebnis = mysql_query($abfrage);
    $row = mysql_fetch_array($ergebnis);
    
        if($row['userlevel'] == 'admin')
        {
         echo 'Adminbereich folgt!';
        }
        elseif($row['userlevel'] == 'moderator')
        {
        echo 'Der Moderatoren bereich folgt!';
        }
        elseif($row['userlevel'] == 'user')
        {
        $abfrage = "SELECT username, chatbann FROM login WHERE username ='".mysql_real_escape_string($username)."' LIMIT 1";
    $ergebnis = mysql_query($abfrage);
    $row = mysql_fetch_array($ergebnis);
    
    if($row['chatbann'] == '1')
        {
         $chat = 'Sie wurden vom Chat geblockt! Falls sie zu Unrecht geblockt wurden kontaktieren sie uns bitte!';
        }
        elseif($row['chatbann'] == '0')
        {
        $chat = "<div id=\"asb_container\">
     <div id=\"asb_contentwrap\">
      <div id=\"asb_content\">
       Shoutbox wird geladen ...
      </div>
     </div>
     <div id=\"asb_inputwrap\">
      <div id=\"asb_input\">
    
       <form action=\"\" name=\"frmshoutbox\" onsubmit=\"saveData(); return false;\">
        <b><font color=\"#66FF00\">Nachricht:</font></b><br /><input class=\"text\" type=\"text\" name=\"txtmessage\" value=\"\" /><br />
        <input class=\"button\" type=\"submit\" name=\"btnsend\" value=\"Senden\" />
       </form>
       </div>
     </div>
    </div>";
        }
        echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
    <html xmlns=\"http://www.w3.org/1999/xhtml\">
    <head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
    <link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />
    <link href=\"styles.css\" rel=\"stylesheet\" type=\"text/css\" />
    <script type=\"text/javascript\" src=\"shoutbox.js\" ></script>
    <title>KIMSERVER-Game</title>
    </head>
    
    <body>
    <div id=\"container\">
    	<div id=\"header\">
    		<!--marquee--> 
    	</div>
    	<div id=\"content\">
    		<div id=\"left\">
    			<div class=\"menu\">
    				<div class=\"menuheader\"><h3>Menu</h3></div>
    				<div class=\"menucontent\">
    					<ul>
    						<li><a href=\"gindex.php\">Start</a></li>
    						<li><a href=\"ggame.php\">Zum Spiel</a></li>
    						<li><a href=\"gscore.php\">Highscore</a></li>
    						<li><a href=\"gbeta.php\">Open Beta</a></li>
    						<li><a href=\"http://kimserver.bplaced.net/kimserver-game/kontakt.php\">Kontakt</a></li>
    						<li><a href=\"gchat.php\">Chat</a></li>
    					</ul>
    				</div>
    				<div class=\"menufooter\"></div>
    			</div>
    			<div class=\"menuheader\"><h3>Logout</h3></div>
    				<div class=\"menucontent\">
    				 <center>
            <p><a href=\"logout.php\">Logout</a></p>
            </center>
    				</div>
    				<div class=\"menufooter\"></div>
    		</div>
    
    		<div id=\"right\">
    			<div class=\"menu\">
    				<div class=\"menuheader\"><h3>Die besten:</h3></div>
    				<div class=\"menucontent\">";
    			?>	
            <?php
    require ('config.php');
    error_reporting(E_ALL); 
    
    $abfrage = "SELECT username,score AS highscore FROM login ORDER BY score DESC LIMIT 0,3";
    $end = mysql_query($abfrage);
    
    while( $row = mysql_fetch_assoc( $end ))
    {
         echo "<center>";
         echo "<p>".$row['username'].":</p>";
         echo "<p>".$row['highscore']."</p>";
         echo "</center>";
    }     
    ?>
    <?php	
    echo " <div class=\"clear\"></div>
    				</div>
    				<div class=\"menufooter\"></div>
    			</div>
    		</div>
    
    		<div id=\"middle\">
    			<div class=\"post\">
    				<div class=\"postheader\"><h1>Chat</h1></div>
    				<div class=\"postcontent\">";
            ?>
            <?php
    			 echo "$chat";
           ?>	
           <?php
          echo "</div>
    				<div class=\"postfooter\"></div>
    			</div>
    			<div class=\"post\">
    
    			</div>
    		</div>
    	</div>
    	<div id=\"footer\">
    
    	<span>All rights reserved.</span>	</div>	
    </div>
    </body>
    </html>";
        }
    ?>
    

    Nicht aufregen falls irgendwie man das einfacher machen könnte!
    zu meinem problem:

    Die js datei wurde in diesem thread schon gepostet
    so wenn ich da jetzt was eintragen möchte denn möchte er das via get machen was nicht geht weil mit post abgefragt wird jetzt werden einige sagen das method noch da hin muss allerdings erledigt das die js datei!
    ich habe genau die selben datein für meine index.html benutzt und da funktionierts einwandfrei (also nur shoutboxcode)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <title>ajax</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="styles.css" type="text/css" />
    <script type="text/javascript" src="shoutbox.js" ></script>
    </head>
    <body>
    
    <div id="asb_container">
     <div id="asb_contentwrap">
      <div id="asb_content">
       Shoutbox wird geladen ...
      </div>
     </div>
     <div id="asb_inputwrap">
      <div id="asb_input">
       <form action="" name="frmshoutbox" onsubmit="saveData(); return false;">
        <b>Nachricht:</b><br /><input class="text" type="text" name="txtmessage" value="" /><br />
        <input class="button" type="submit" name="btnsend" value="Senden" />
       </form>
      </div>
     </div>
    </div>
    
    </body>
    </html>
    

    hoffe ihr könnt mir da mal eben weiterhelfen mfg



  • derdefeckter schrieb:

    ...

    fehlt da nicht in z. 10 ne { klammer



  • soweit ich gelernt habe
    muss bei else keine klammer hin

    mfg



  • falsch gelernt! es muß nur keine klammer hin wenn danach nur ein statement folgt bei dir sind es aber mehr z.14 soll doch auch noch mindestens mit rein...



  • allerdings hatt das voher auch geklappt ohne die klammern

    also auf meinen anderen seiten klappt das genau so

    nur jetzt hier und ich denke das er die js datei nicht ricjtih mit rein nimmt

    mfg



  • denk doch was du willst...



  • sicher? Kann ich grad nicht verstehen. Was man aber machen kann ist..

    if ($foo == $bar):
     echo 'lustig lustig';
    else:
     echo 'trotzdem lustig';
    endif;
    


  • ja also es ist so ne sache es ist nicht direkt falsch aber nur solange das exit() da ist sobald einer auf die idee kommt das raus zu nehmen hast den fehler. also kann das für mich zu folge fehlern führen und sollte ausgebessert werden.



  • Hallo,

    Zeile 10:
    Bereits angesprochen. Entweder du setzt die Klammern, dann kannst du dir exit sparen, oder du lässt exit stehen und entfernst das else. Deine Variante verwirrt nur den Leser nur weil das else unsinnig ist.

    Zeile 12:
    Kein Fehler, aber schöner wäre die Verwendung von require_once. Bei require_once wird geprüft ob die Datei bereits eingebunden ist. Wenn ja, wird sie kein zweites mal dazugeholt.

    Zeile 18/33:
    Was ist wenn die Ergebnismengen leer sind? Erweitere den Code besser um

    if (!$row) exit;
    

    Zeile 50:
    <form action="" ...> verweist auf die im Verzeichnis liegende index-Datei und nicht zwangsläufig auf sich selbst. Soll das passieren, lass action="" weg, oder nutz $_SERVER['script_name'].

    Zeile 117/118:
    Du machst den PHP-Tag zu um ihn direkt danach wieder zu öffnen. Wieso?

    2-3 kleine Anmerkungen und Fragen:

    1. Wieso wechselst du zwischen mysql_fetch_array und mysql_fetch_assoc?
    Wenn du sowieso nur auf die assoziativen Indizes zurückgreifst verwendet doch gleich mysql_fetch_assoc oder mysql_fetch_array($result, MYSQL_ASSOC).

    2. Nutzt du persitente Verbindungen? Wenn nicht, vermisse ich mysql_free_result um den Speicher wieder für neue Daten frei zu machen. Ein fehlendes mysql_free_result verursacht allerdings auch nur ein Warning im Log (sofern Warnings aktiviert sind)

    3. Versuche nicht immer die gleichen Variablennamen zu verwenden. Bei der miesen Codeeinrückung erkennt man am Ende nicht mehr, welche du wann verwendest. Noch ist es überschaubar, aber spätestens bei deinem ersten 1000-Zeilen Script wird's kompliziert. Vor allem wächst dann auch die Gefahr, bereits bestehende Ergebnismengen zu überschreiben.

    4. Versuch dich in Zukunft mal ein wenig mit MVC (Model-View-Controlling) auseinander zusetzen. Das Mischen von View und Controlling find ich persönlich grauenvoll.

    LG



  • danke!,

    für die hilfe bis jetzt.

    allerdings läd er mir die shoutbox.js nicht! voran liegt das?

    mfg

    p.s. ich werden denn code nochmal komplett überarbeiten das else ist weg



  • Hallo,

    möglicherweise liegt die shoutbox.js nicht im selben Verzeichnis.

    Btw: Mach deinen Server sicher. Ich sag dir auch wieso:

    Schleifunk-Ostseewelle

    Auch auf diesem Server gibt es, bei den Server-Regeln, merkwürdige Einschränkungen, und basieren nicht auf den FRN-Regeln![...]

    Es klingt nicht so als wäre es geheim, aber genauso schnell wie daran, kommt man auch an andere Dinge.

    LG



  • Hallo,

    Doch die shoutbox.js liegt im selben Verzeichnis ich kann sie sogar abrufen wenn ich direkt denn link oben eingebe

    dann noch ne frage:

    hmmz schrieb:

    Hallo,

    möglicherweise liegt die shoutbox.js nicht im selben Verzeichnis.

    Btw: Mach deinen Server sicher. Ich sag dir auch wieso:

    Schleifunk-Ostseewelle

    Auch auf diesem Server gibt es, bei den Server-Regeln, merkwürdige Einschränkungen, und basieren nicht auf den FRN-Regeln![...]

    Es klingt nicht so als wäre es geheim, aber genauso schnell wie daran, kommt man auch an andere Dinge.

    LG

    Und zwar wo wurde die Datei bzw die Sätze gefunden?
    und wie? mir kommt die Datei bzw die Sätze nicht bekannt vor

    Und wie kann ich denn Server sicherer machen

    mfg



  • Hallo,

    Und zwar wo wurde die Datei bzw die Sätze gefunden?

    da!

    und wie?

    so!

    Einfach mal eine leere index.php in den Stamm legen, oder die "startseite.php" die ja augenscheinlich vorhanden ist, als index eintragen (sofern du an die Config kommst).

    Welchen Link gibst du wo ein um an die Script-Datei zu kommen? Laut deinem Code, müsste sie im selben Verzeichnis liegen, wie die Datei, die den gezeigten Code beinhaltet. Vorausgesetzt, die Datei mit dem gezeigten Code wird nicht irgendwo via include(😉 oder require(😉 eingebunden. Dann wäre der Pfad relativ zur einbindenden Datei.

    LG



  • Danke für den Hinweis!

    ich werde das nacher ändern werde jetzt erstmal schlafen gehen

    mfg



  • derdefeckter schrieb:

    Danke für den Hinweis!

    ich werde das nacher ändern werde jetzt erstmal schlafen gehen

    mfg

    guten Tag.

    ach, btw deine Signatur ist nicht richtig ^^



  • PRIEST schrieb:

    derdefeckter schrieb:

    Danke für den Hinweis!

    ich werde das nacher ändern werde jetzt erstmal schlafen gehen

    mfg

    guten Tag.

    ach, btw deine Signatur ist nicht richtig ^^

    👍 😃

    dumdidum



  • PRIEST schrieb:

    derdefeckter schrieb:

    Danke für den Hinweis!

    ich werde das nacher ändern werde jetzt erstmal schlafen gehen

    mfg

    guten Tag.

    ach, btw deine Signatur ist nicht richtig ^^

    Was ist da denn Falsch? 😃

    also die javascript datei wird in html mit einbezogen mit den css datein geht es ja auch
    mfg

    EDIT:
    Ohh ja es muss heissen "=='True'" und nicht "= True"



  • Hallo,

    was du noch versuchen kannst ist ein vollständiger Tag

    <script type=\"text/javascript\" language=\"javascript\" src=\"shoutbox.js\" ></script>
    

    Wenn das auch nicht klappt, weiß ich nicht mehr weiter. Die Zeile wird im generierten Quellcode aber auch angezeigt? Und die Script-Datei liegt wirklich im selben Verzeichnis wie das aufrufewnde Script? Hast du eventuell einen Fehler in der shoutbox.js? Woher weißt du eigentlich dass sie nicht eingebunden wird?

    LG



  • If (Beitrag.Hilfreich == 'True')

    Also der Vergleich ist unsinnvoll. 😉

    Besser:

    If (Beitrag.Hilfreich == true)

    noch besser:

    If (Beitrag.Hilfreich)


Anmelden zum Antworten