ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Hang-O-Mat für Ilch

Geschlossen
  1. #31
    User Pic
    HolgerNils Mitglied
    Registriert seit
    20.12.2006
    Beiträge
    56
    Beitragswertungen
    0 Beitragspunkte
    Hi Chapter, here we go:

    Code der hangomat.php aus /html/include/admin:
    <?PHP
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    $design = new design ( 'Admins Area', 'Admins Area', 2 );
    $design->header();
    ################################################################################
    ###    Hang-o-Mat v. 2.5   ###   Copyright Jan Erdmann @ http://www.je0.de   ###
    ################################################################################
    
    ################################################# Einstellungen
    $db_link="localhost";           # SQL Server URL
    $db_user="webXXX";               # SQL Username
    $db_pass="YYYYYYYY";            # SQL Passwort
    $db_name="usr_web26_2";         # SQL Datenbankname
    $jetec_Prefix="hangi";          # Prefix für die anzulegende SQL Tabelle (nach dem ersten starten nicht mehr ändern)
    $loeanz=10;                     # Anzahl der Angezeigten Löser
    $szge="include/images/icons/";  # Pfad zu den Grafiken (vom der "hangomat.php" aus gesehen)
    $adminpass="";                  # Das Passwort zum löschen (Unbedingt ändern)
    $Titel="Hang-o-Mat";
    $HEADER="<table cellspacing=1 cellpadding=2 class=\"hmtabelle\">";
    $FOOTER="</table>";
    ################################################# Login / Logout
    
    ################################################# Aufbau (HTML / CSS / JAVASCRIPT)
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head><title>je0.de jetec_Counter</title>
    <style type="text/css">
    .hmfarbe1           {BACKGROUND-COLOR:#7DA8F9; FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000;}
    .hmfarbe2           {BACKGROUND-COLOR:#0444BC; FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000;}
    .hmfarbe3           {BACKGROUND-COLOR:#6589CD; FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000;}
    .hmheader           {BACKGROUND-COLOR:#6589CD; FONT-FAMILY: verdana; FONT-SIZE: 12px; COLOR: #000000; FONT-WEIGHT: bold;}
    .hmtabelle          {BACKGROUND-COLOR:#000000;}
    .hminput            {FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000; BACKGROUND-COLOR: #ffffff; BORDER:1px solid #000000;}
    .hminput1           {FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #777777; BACKGROUND-COLOR: #ffffff; BORDER:1px solid #999999;}
    }
    </style>
    <script type="text/javascript">
    
    function jehmloesch(id) {
    var box=confirm("Wirklich löschen?");
    if (box==true)
    location.href="admin.php?hangomat&Hangodel="+id;
    }
    
    function jehmlogin(mto){
    if (mto==1) {
    jehmlog=prompt("Bitte das Adminpasswort eingeben");
    if (jehmlog!="" && jehmlog!=null)
    document.forms.hmform.elements.hmcook.value=jehmlog;
    } else {
    document.forms.hmform.elements.hmcook.value="Logout";
    }
    document.forms.hmform.submit();
    }
    
    </script>
    </head><body bgcolor="#000000"><center>
    <?
    ##################################################################################################
    $verbindung = mysql_connect($db_link, $db_user, $db_pass);
    $datenbank = mysql_select_db($db_name);
    $jetec_Zeit=time();
    $jetec_Ip=$_SERVER['REMOTE_ADDR'];
    $Text="";
    
    ################################################# SQL Tabelle erstellen, wenn nicht vorhanden
    $erstell="CREATE TABLE IF NOT EXISTS ".$jetec_Prefix."_Hangomat(
      Id int(10) unsigned NOT NULL auto_increment,
      Buchstaben varchar(26) NOT NULL default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
      Wort varchar(255) NOT NULL default '',
      SWort varchar(255) NOT NULL default '',
      Last char(1) NOT NULL default '',
      Tag varchar(15) NOT NULL default '',
      Anzahl int(10) NOT NULL default '0',
      LWort varchar(200) NOT NULL default '',
      A int(10) NOT NULL default '0',
      B int(10) NOT NULL default '0',
      C int(10) NOT NULL default '0',
      D int(10) NOT NULL default '0',
      E int(10) NOT NULL default '0',
      F int(10) NOT NULL default '0',
      G int(10) NOT NULL default '0',
      H int(10) NOT NULL default '0',
      I int(10) NOT NULL default '0',
      J int(10) NOT NULL default '0',
      K int(10) NOT NULL default '0',
      L int(10) NOT NULL default '0',
      M int(10) NOT NULL default '0',
      N int(10) NOT NULL default '0',
      O int(10) NOT NULL default '0',
      P int(10) NOT NULL default '0',
      Q int(10) NOT NULL default '0',
      R int(10) NOT NULL default '0',
      S int(10) NOT NULL default '0',
      T int(10) NOT NULL default '0',
      U int(10) NOT NULL default '0',
      V int(10) NOT NULL default '0',
      W int(10) NOT NULL default '0',
      X int(10) NOT NULL default '0',
      Y int(10) NOT NULL default '0',
      Z int(10) NOT NULL default '0',
      PRIMARY KEY  (Id)
    ) TYPE=MyISAM AUTO_INCREMENT=1;";
    $erstellen = mysql_query($erstell);
    
    $erstell = "CREATE TABLE IF NOT EXISTS ".$jetec_Prefix."_Hangomat_Ip(
      Vote int(10) NOT NULL default '0',
      Try int(10) NOT NULL default '0',
      Ip varchar(20) NOT NULL default '',
      Buch char(1) NOT NULL default ''
    ) TYPE=MyISAM;";
    $erstellen = mysql_query($erstell);
    
    $erstell = "CREATE TABLE IF NOT EXISTS ".$jetec_Prefix."_Hangomat_Liste(
      Id int(10) unsigned NOT NULL auto_increment,
      Zeit int(15) NOT NULL default '0',
      Name varchar(50) NOT NULL default '',
      HP varchar(255) NOT NULL default '',
      Mail varchar(255) NOT NULL default '',
      Wort varchar(255) NOT NULL default '',
      Anzahl int(10) NOT NULL default '0',
      PRIMARY KEY  (Id)
    ) TYPE=MyISAM AUTO_INCREMENT=1;";
    $erstellen = mysql_query($erstell);
    
    $Titel="Hang-o-Mat";
    $hmallbuch="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $hmlaenge=strlen($hmallbuch);
    $hmcount=0;
    $hmhoch=0;
    
    ########################################### Admin
    $stwort="";
    if ($jehmcookie==$adminpass){
    if ($hangowort && (preg_match ("/^[a-zA-Z ]+$/", $hangowort))) {
    $hangowort=trim($hangowort);
    $hangowort=str_replace("  "," ",$hangowort);
    for ($a=0; $a<strlen($hangowort); $a++) {
    
    if (substr($hangowort,$a,1)!=" ")
    $stwort.="_";
    else
    $stwort.=" ";
    }
    $hangowort=strtoupper($hangowort);
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat (Wort, SWort) VALUES ('$hangowort', '$stwort')";
    $eintragen = mysql_query($eintrag);
    }
    if ($Hangodel) {
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    if($dat = mysql_fetch_array($ergebnis)) {
    if ($dat['Id']==$Hangodel) {
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat_Ip";
    $eintragen = mysql_query($eintrag);
    } }
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat Where Id='$Hangodel'";
    $eintragen = mysql_query($eintrag);
    }
    $reihen="&nbsp;&nbsp;&nbsp;(Aktuelles Wort)";
    $Text="<tr class=\"hmheader\"><td align=\"center\">Neues Wort</td></tr>";
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    while ($dat = mysql_fetch_array($ergebnis)) {
    if ($col=="hmfarbe1")
    $col="hmfarbe2";
    else
    $col="hmfarbe1";
    $Text.="<tr class=\"".$col."\"><td><a href=\"javascript:jehmloesch('".$dat['Id']."')\"><img src=\"".$szge."/del.gif\" alt=\"löschen\" border=0></a>&nbsp;&nbsp;&nbsp;".$dat['Wort'].$reihen."</td></tr>";
    if ($reihen!="")
    $reihen="";
    }
    $Text.="<tr class=\"hmfarbe1\"><td><input type=\"text\" name=\"hangowort\" value=\"\" style=\"width:200px;\" class=\"hminput\">&nbsp;<input type=\"submit\" value=\"schreiben\" name=\"hangwort\" class=\"hminput\"></td></tr>";
    echo "<form action=\"admin.php?hangomat\" method=\"post\" name=\"hango\">";
    echo $HEADER;
    echo $Text;
    echo $FOOTER;
    echo "</form>";
    }
    $Text="";
    
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    if($dat = mysql_fetch_array($ergebnis)) {
    ########################################### Tagwechsel
    if ($dat['Tag']!=date("l")) {
    for ($a=0; $a<$hmlaenge; $a++) {
    if ($dat[$hmallbuch[$a]]>$hmhoch) {
    $hmhoch=$dat[$hmallbuch[$a]];
    $hmmaxx=$hmallbuch[$a];
    }
    if ($dat[$hmallbuch[$a]]==$hmhoch) {
    srand((double) microtime() * time());
    $hm=rand(1, 2);
    if ($hm==1) {
    $hmmaxx=$hmallbuch[$a];
    $hmhoch=$dat[$hmallbuch[$a]];
    } } }
    for ($a=0; $a<strlen($dat['Wort']); $a++) {
    if ($dat['Wort'][$a]==$hmmaxx)
    $dat['SWort'][$a]=$dat['Wort'][$a];
    $hmbuch=str_replace($hmmaxx,"",$dat['Buchstaben']);
    }
    if ($hmhoch!=0)
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set Buchstaben='$hmbuch', Tag='".date("l")."' , SWort='".$dat['SWort']."', Last='$hmmaxx', Anzahl=Anzahl+1, A=0 , B=0 , C=0 , D=0 , E=0 , F=0 , G=0 , H=0 , I=0 , J=0 , K=0 , L=0 , M=0 , N=0 , O=0 , P=0 , Q=0 , R=0 , S=0 , T=0 , U=0 , V=0 , W=0 , X=0 , Y=0 , Z=0 WHERE Id='".$dat['Id']."'";
    else
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set Tag='".date("l")."', Anzahl=Anzahl+1, A=0 , B=0 , C=0 , D=0 , E=0 , F=0 , G=0 , H=0 , I=0 , J=0 , K=0 , L=0 , M=0 , N=0 , O=0 , P=0 , Q=0 , R=0 , S=0 , T=0 , U=0 , V=0 , W=0 , X=0 , Y=0 , Z=0 WHERE Id='".$dat['Id']."'";
    $eintragen = mysql_query($eintrag);
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat_Ip";
    $eintragen = mysql_query($eintrag);
    }
    
    ########################################### Lösen
    if ($Loesungswort && !$Buchstabe) {
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip' AND Try=1";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1)) {
    $Text="<tr class=\"hmfarbe1\"><td colspan=2 align=\"center\">Du hast Heute schon versucht zu lösen, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    } else {
    if (strtoupper($Loesungswort)==$dat[Wort]) {
    if ($hm_name) {
    $hm_name=trim($hm_name);
    $hm_mail=trim($hm_mail);
    $hm_url=trim($hm_url);
    $hm_name=htmlentities($hm_name,ENT_QUOTES);
    $hm_mail=htmlentities($hm_mail,ENT_QUOTES);
    $hm_url=htmlentities($hm_url,ENT_QUOTES);
    $hm_name=addslashes($hm_name);
    $hm_mail=addslashes($hm_mail);
    $hm_url=addslashes($hm_url);
    $hm_anzahl=$dat['Anzahl'];
    if($hm_mail && !eregi("^"."[a-z0-9]+([_\\.-][a-zA-Z0-9]+)*"."@"."([a-zA-Z0-9]+([\.-][a-zA-Z0-9]+)*)+"."\\.[A-Za-z]{2,}"."$", $hm_mail, $regs))
    $Text="<tr class=\"hmfarbe1\"><td align=\"center\">Die angegebene Mail Adresse ist falsch.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    if ($hm_url && !preg_match("/^[a-zA-Z0-9-_.:\/]+$/", $hm_url))
    $Text="<tr class=\"hmfarbe1\"><td align=\"center\">Bitte nur 'A-Z', '0-9' und ':/-_.' bei 'Homepage' benutzen.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    if (substr($hm_url,0,4)!="http")
    $hm_url="http://".$hm_url;
    
    
    if (!$Text) {
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat WHERE Id='".$dat['Id']."'";
    $eintragen = mysql_query($eintrag);
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat_Ip";
    $eintragen = mysql_query($eintrag);
    if($dat=mysql_fetch_array($ergebnis)) {
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set LWort='$Loesungswort', Tag='".date("l")."' WHERE Id='".$dat['Id']."'";
    $eintragen = mysql_query($eintrag);
    }
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Liste (Zeit, Name, HP, Mail, Wort, Anzahl) VALUES ('$jetec_Zeit','$hm_name','$hm_url','$hm_mail','$Loesungswort','$hm_anzahl')";
    $eintragen = mysql_query($eintrag);
    $dat['LWort']=$Loesungswort;
    $Text="<tr class=\"hmfarbe1\"><td colspan=2 align=\"center\">Du wurdest in die Liste eingetragen.<br><a href=\"hangomat.php\">zurück</a></td></tr>";
     } } else {
    $Text="
    <tr class=\"hmfarbe1\"><td colspan=2>Die Antwort ist Richtig, das gesuchte Wort ist \"<b>".$dat[Wort]."</b>\".<br>Du kannst dich in die Liste eintragen.</td></tr>
    <tr class=\"hmfarbe2\"><td align=\"right\">Name:&nbsp;</td><td><input type=\"text\" name=\"hm_name\" style=\"width:300;\" maxlength=50 class=\"hminput\"></td></tr>
    <tr class=\"hmfarbe2\"><td align=\"right\">Homepage:&nbsp;</td><td><input type=\"text\" name=\"hm_url\" style=\"width:300;\" maxlength=255 class=\"hminput\"></td></tr>
    <tr class=\"hmfarbe2\"><td align=\"right\">E-Mail:&nbsp;</td><td><input type=\"text\" name=\"hm_mail\" style=\"width:300;\" maxlength=50 class=\"hminput\"></td></tr>
    <tr class=\"hmfarbe1\"><td align=\"center\" colspan=2>
    <input type=\"hidden\" name=\"Loesungswort\" value=\"".$dat[Wort]."\">
    <input type=\"submit\" value=\"&nbsp;Eintragen&nbsp;\" class=\"hminput\"></td></tr>";
    } } else {
    $Text="<tr class=\"hmfarbe1\"><td colspan=2 align=\"center\">Leider ist der eingegeben Begriff falsch, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip'";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1))
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat_Ip Set Try='1' WHERE Ip='$jetec_Ip'";
    else
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Ip (Try, Ip) VALUES ('1','$jetec_Ip')";
    $eintragen = mysql_query($eintrag);
    } }
    echo "<form method=\"POST\" action=\"admin.php?hangomat\" name=\"loesen\">".$HEADER;
    echo "<tr class=\"hmheader\"><td align=\"center\" colspan=2>".$Titel."</td></tr>
    ".$Text.$FOOTER."</form>";
    }
    
    ########################################### Vote
    $vote=9;
    if ($Buchstabe && (preg_match ("/^[A-Z]+$/", $Buchstabe))) {
    $abfrage8 = "SELECT * FROM ".$jetec_Prefix."_Hangomat WHERE Buchstaben NOT LIKE '%$Buchstabe%' AND Id=".$dat['Id'];
    $ergebnis8 = mysql_query($abfrage8);
    if($dat8 = mysql_fetch_array($ergebnis8))
    $Text="Der Buchstabe \"<b>".$Buchstabe."</b>\" steht nichtmehr zur Auswahl.<br><a href=\"javascript:history.go(-1)\">zurück</a>";
    
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip'";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1))
    $vote=$dat1['Vote'];
    if ($vote==1)
    $Text="Du hast Heute bereits für den Buchstaben \"<b>".$dat1['Buch']."</b>\" gevotet, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a>";
    if (!$Text) {
    $dat[$Buchstabe]++;
    if ($vote==0)
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat_Ip Set Vote='1', Buch='$Buchstabe' WHERE Ip='$jetec_Ip'";
    if ($vote==9)
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Ip (Vote, Ip, Buch) VALUES ('1','$jetec_Ip','$Buchstabe')";
    $eintragen = mysql_query($eintrag);
    
    if (!strstr($dat['SWort'], $Buchstabe)) {
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set ".$Buchstabe."=".$Buchstabe."+1 WHERE Id=".$dat['Id']."";
    $eintragen = mysql_query($eintrag);
    } } }
    
    ########################################### Anzeige
    if (!$Text) {
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    if($dat = mysql_fetch_array($ergebnis)) {
    if ($jehmcookie==$adminpass)
    $jehmtt="<input type=\"button\" value=\"Adminlogout\" onclick=\"jehmlogin(0)\" class=\"hminput\">";
    else
    $jehmtt="<input type=\"button\" value=\"Adminlogin\" onclick=\"jehmlogin(1)\" class=\"hminput\">";
    $Text="<table cellpadding=5 cellspacing=1 class=\"hmtabelle\"><tr align=\"center\" class=\"hmfarbe2\">
    <td class=\"hmfarbe3\" rowspan=2>Buchstaben:</td>";
    
    for ($a=0; $a<$hmlaenge; $a++) {
    if ($dat[$hmallbuch[$a]]>0) {
    $W1[$a]=$dat[$hmallbuch[$a]];
    $W2[$a]=$hmallbuch[$a];
    }
    if ($dat['Buchstaben'][$hmcount]==$hmallbuch[$a]) {
    $Text.="<td align=\"center\"><input type=\"submit\" value=\"".$hmallbuch[$a]."\" name=\"Buchstabe\" class=\"hminput\" style=\"width:25; height:25;\"></td>";
    $hmcount++;
    } else {
    $Text.="<td align=\"center\"><input type=\"button\" value=\"".$hmallbuch[$a]."\" class=\"hminput1\" style=\"width:25; height:25;\"></td>";
    }
    if ($a==12)
    $Text.="</tr><tr class=\"hmfarbe2\">";
    }
    $Text2="";
    $Text3="";
    
    if ($W1 && $W2)
    array_multisort ($W1,SORT_NUMERIC,SORT_DESC,$W2);
    for ($a=0; $a<count($W1); $a++) {
    $Text2.="<td align=\"center\"><b>".$W2[$a]."</b></td>";
    $Text3.="<td align=\"center\">".$W1[$a]."</td>";
    }
    $hmswort="";
    for ($a=0; $a<strlen($dat['SWort']); $a++)
    $hmswort.="&nbsp;".$dat['SWort'][$a];
    $Text.="</tr></table>";
    $Text.="<br><table cellpadding=5 cellspacing=1 class=\"hmtabelle\"><tr align=\"center\" class=\"hmfarbe2\"><td align=\"center\" class=\"hmfarbe3\">Buchstaben:</td>".$Text2."</tr><tr align=\"center\" class=\"hmfarbe2\"><td align=\"center\" class=\"hmfarbe3\">Stimmen:</td>".$Text3."</tr></table>
    <br><span style=\"FONT-SIZE:20px; FONT-WEIGHT: bold;\">".$hmswort."</span><br><br>
    Das Wort läuft seit <b>&nbsp;".$dat['Anzahl']."&nbsp;</b> Tag".($dat['Anzahl']!=1 ? "en" : "")."<br>
    Letzter gelöster Begriff: <b>&nbsp;".$dat['LWort']."</b>&nbsp;<br>
    Letzter bewerteter Buchstabe: <b>&nbsp;".$dat['Last']."&nbsp;</b><br>
    <input type=\"text\" name=\"Loesungswort\" style=\"width:300;\" class=\"hminput\">&nbsp;<input type=\"submit\" value=\"&nbsp;Lösen&nbsp;\" class=\"hminput\"><br><br>".$jehmtt;
    } } } else {
    $Text="Kein Wort in der Datenbank.<br><br>".$jehmtt;
    }
    if (!$Loesungswort) {
    
    echo "<form method=\"POST\" action=\"admin.php?hangomat\" name=\"hmform\"><input type=\"hidden\" value=\"\" name=\"hmcook\">".$HEADER;
    echo "<tr class=\"hmheader\"><td align=\"center\">".$Titel."</td></tr>
    <tr class=\"hmfarbe1\"><td align=\"center\">".$Text."</td></tr>";
    echo $FOOTER."</form>";
    $Text="
    <tr align=\"center\" class=\"hmheader\"><td colspan=4>Die letzten ".$loeanz." Löser</td></tr>
    <tr align=\"center\" class=\"hmfarbe1\"><th>Gelöst:</th><th>Name:</th><th>Wort:</th><th>Tage:</th></tr>";
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Liste ORDER BY Id DESC LIMIT $loeanz";
    $ergebnis1 = mysql_query($abfrage1);
    while($dat1 = mysql_fetch_array($ergebnis1)) {
    if ($col=="hmfarbe1")
    $col="hmfarbe2";
    else
    $col="hmfarbe1";
    if ($dat1['Mail'])
    $dat1['User']="<a href=\"mailto:".$dat1['Mail']."\">".$dat1['User']."</a>";
    if ($dat1['HP'])
    $dat1['HP']="<a href=\"".$dat1['HP']."\" target=\"NEU\"><img src=\"".$szge."/home.gif\" alt=\"HP\" border=0></a>";
    $Text.="<tr class=\"".$col."\"><td>".date("d.m.Y", $dat1['Zeit'])."</td><td>".$dat1['HP']."".$dat1['Name']."</td><td align=\"center\">".$dat1['Wort']."</td><td align=\"center\">".$dat1['Anzahl']."</td></tr>";
    }
    echo $HEADER;
    echo $Text;
    echo $FOOTER;
    }
    ?>
    <br><table cellpadding=3 cellspacing=1 style="BORDER:1px solid #000000;"><tr class="hmfarbe3"><td><span style="FONT-SIZE:10px">Hang-o-Mat v2.5 von Jan Erdmann - <a href="http://www.je0.de">www.je0.de</a></span></td></tr></table>
    </center>
    </body></html>
    <?php
    $design->footer();
    ?>


    Und nü die hangomat.php aus /html/include/contents:
    <?PHP
    defined ('main') or die ( 'no direct access' );
    $title = $allgAr['title'].' :: Galgenmännchen';
    $hmenu = 'Galgenmännchen';
    $design = new design ( $title , $hmenu );
    $design->header();
    ################################################################################
    ###    Hang-o-Mat v. 2.5   ###   Copyright Jan Erdmann @ http://www.je0.de   ###
    ################################################################################
    
    ################################################# Einstellungen
    $db_link="localhost";          # SQL Server URL
    $db_user="webXXX";            # SQL Username
    $db_pass="YYYYYYYY";           # SQL Passwort
    $db_name="usr_web26_2";      # SQL Datenbankname
    $jetec_Prefix="hangi";         # Prefix für die anzulegende SQL Tabelle (nach dem ersten starten nicht mehr ändern)
    $loeanz=25;                    # Anzahl der Angezeigten Löser
    $szge="include/images/icons";  # Pfad zu den Grafiken (vom der "hangomat.php" aus gesehen)
    $adminpass="";                 # Das Passwort wird nicht benötigt da es über den admin läuft
    $Titel="Galgenmännchen";
    $HEADER="<table cellspacing=1 cellpadding=2 class=\"hmtabelle\">";
    $FOOTER="</table>";
    ################################################# Login / Logout
    ################################################# Aufbau (HTML / CSS / JAVASCRIPT)
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head><title>Galgenmännchen</title>
    <style type="text/css">
    .hmfarbe1           {BACKGROUND-COLOR:#9E9E9E; FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000;}
    .hmfarbe2           {BACKGROUND-COLOR:#0444BC; FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000;}
    .hmfarbe3           {BACKGROUND-COLOR:#9E9E9E; FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000;}
    .hmheader           {BACKGROUND-COLOR:#6589CD; FONT-FAMILY: verdana; FONT-SIZE: 12px; COLOR: #000000; FONT-WEIGHT: bold;}
    .hmtabelle          {BACKGROUND-COLOR:#000000;}
    .hminput            {FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #000000; BACKGROUND-COLOR: #ffffff; BORDER:1px solid #000000;}
    .hminput1           {FONT-FAMILY: verdana; FONT-SIZE: 10px; COLOR: #777777; BACKGROUND-COLOR: #9E9E9E; BORDER:1px solid #999999;}
    }
    </style>
    <script type="text/javascript">
    
    function jehmloesch(id) {
    var box=confirm("Wirklich löschen?");
    if (box==true)
    location.href="hangomat.php?Hangodel="+id;
    }
    
    function jehmlogin(mto){
    if (mto==1) {
    jehmlog=prompt("Bitte das Adminpasswort eingeben");
    if (jehmlog!="" && jehmlog!=null)
    document.forms.hmform.elements.hmcook.value=jehmlog;
    } else {
    document.forms.hmform.elements.hmcook.value="Logout";
    }
    document.forms.hmform.submit();
    }
    
    </script>
    </head><body bgcolor="#000000"><center>
    <?
    ##################################################################################################
    $verbindung = mysql_connect($db_link, $db_user, $db_pass);
    $datenbank = mysql_select_db($db_name);
    $jetec_Zeit=time();
    $jetec_Ip=$_SERVER['REMOTE_ADDR'];
    $Text="";
    ################################################# SQL Tabelle erstellen, wenn nicht vorhanden
    $erstell="CREATE TABLE IF NOT EXISTS ".$jetec_Prefix."_Hangomat(
      Id int(10) unsigned NOT NULL auto_increment,
      Buchstaben varchar(26) NOT NULL default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
      Wort varchar(255) NOT NULL default '',
      SWort varchar(255) NOT NULL default '',
      Last char(1) NOT NULL default '',
      Tag varchar(15) NOT NULL default '',
      Anzahl int(10) NOT NULL default '0',
      LWort varchar(200) NOT NULL default '',
      A int(10) NOT NULL default '0',
      B int(10) NOT NULL default '0',
      C int(10) NOT NULL default '0',
      D int(10) NOT NULL default '0',
      E int(10) NOT NULL default '0',
      F int(10) NOT NULL default '0',
      G int(10) NOT NULL default '0',
      H int(10) NOT NULL default '0',
      I int(10) NOT NULL default '0',
      J int(10) NOT NULL default '0',
      K int(10) NOT NULL default '0',
      L int(10) NOT NULL default '0',
      M int(10) NOT NULL default '0',
      N int(10) NOT NULL default '0',
      O int(10) NOT NULL default '0',
      P int(10) NOT NULL default '0',
      Q int(10) NOT NULL default '0',
      R int(10) NOT NULL default '0',
      S int(10) NOT NULL default '0',
      T int(10) NOT NULL default '0',
      U int(10) NOT NULL default '0',
      V int(10) NOT NULL default '0',
      W int(10) NOT NULL default '0',
      X int(10) NOT NULL default '0',
      Y int(10) NOT NULL default '0',
      Z int(10) NOT NULL default '0',
      PRIMARY KEY  (Id)
    ) TYPE=MyISAM AUTO_INCREMENT=1;";
    $erstellen = mysql_query($erstell);
    
    $erstell = "CREATE TABLE IF NOT EXISTS ".$jetec_Prefix."_Hangomat_Ip(
      Vote int(10) NOT NULL default '0',
      Try int(10) NOT NULL default '0',
      Ip varchar(20) NOT NULL default '',
      Buch char(1) NOT NULL default ''
    ) TYPE=MyISAM;";
    $erstellen = mysql_query($erstell);
    
    $erstell = "CREATE TABLE IF NOT EXISTS ".$jetec_Prefix."_Hangomat_Liste(
      Id int(10) unsigned NOT NULL auto_increment,
      Zeit int(15) NOT NULL default '0',
      Name varchar(50) NOT NULL default '',
      HP varchar(255) NOT NULL default '',
      Mail varchar(255) NOT NULL default '',
      Wort varchar(255) NOT NULL default '',
      Anzahl int(10) NOT NULL default '0',
      PRIMARY KEY  (Id)
    ) TYPE=MyISAM AUTO_INCREMENT=1;";
    $erstellen = mysql_query($erstell);
    
    $Titel="Galgenmännchen";
    $hmallbuch="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $hmlaenge=strlen($hmallbuch);
    $hmcount=0;
    $hmhoch=0;
    
    ########################################### Admin
    $stwort="";
    if ($jehmcookie==$adminpass){
    if ($hangowort && (preg_match ("/^[a-zA-Z ]+$/", $hangowort))) {
    $hangowort=trim($hangowort);
    $hangowort=str_replace("  "," ",$hangowort);
    for ($a=0; $a<strlen($hangowort); $a++) {
    
    if (substr($hangowort,$a,1)!=" ")
    $stwort.="_";
    else
    $stwort.=" ";
    }
    $hangowort=strtoupper($hangowort);
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat (Wort, SWort) VALUES ('$hangowort', '$stwort')";
    $eintragen = mysql_query($eintrag);
    }
    if ($Hangodel) {
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    if($dat = mysql_fetch_array($ergebnis)) {
    if ($dat['Id']==$Hangodel) {
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat_Ip";
    $eintragen = mysql_query($eintrag);
    } }
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat Where Id='$Hangodel'";
    $eintragen = mysql_query($eintrag);
    }
    $reihen="&nbsp;&nbsp;&nbsp;(Aktuelles Wort)";
    $Text="<tr class=\"hmheader\"><td align=\"center\">Neues Wort</td></tr>";
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    while ($dat = mysql_fetch_array($ergebnis)) {
    if ($col=="hmfarbe1")
    $col="hmfarbe2";
    else
    $col="hmfarbe1";
    $Text.="<tr class=\"".$col."\"><td><a href=\"javascript:jehmloesch('".$dat['Id']."')\"><img src=\"".$szge."/muell.gif\" alt=\"löschen\" border=0></a>&nbsp;&nbsp;&nbsp;".$dat['Wort'].$reihen."</td></tr>";
    if ($reihen!="")
    $reihen="";
    }
    $Text.="<tr class=\"hmfarbe1\"><td><input type=\"text\" name=\"hangowort\" value=\"\" style=\"width:200px;\" class=\"hminput\">&nbsp;<input type=\"submit\" value=\"schreiben\" name=\"hangwort\" class=\"hminput\"></td></tr>";
    echo "<form action=\"index.php?hangomat\" method=\"post\" name=\"hango\">";
    echo $HEADER;
    echo " ";
    echo "Und so funktionierts: Vote täglich für den nächsten Lösungsbuchstaben. Der Buchstabe mit den meisten Votes wird als Tipp genommen. Wenn dieser Buchstabe passt wird er an allen vorkommenden Stellen in das gesuchte Wort eingefügt. Jeden Tag kannst Du versuchen das Rätsel zu lösen, sobald Du eine Idee hast, wie es lauten könnte. Der erfolgreiche Lösungsversuch sichert Dir einen Platz in der Hall-of-Fame.<br><br>";
    echo " ";
    //echo $Text;
    echo $FOOTER;
    echo " ";
    echo "Script von Jan Erdmann";
    echo "</form>";
    }
    $Text="";
    
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    if($dat = mysql_fetch_array($ergebnis)) {
    ########################################### Tagwechsel
    if ($dat['Tag']!=date("l")) {
    for ($a=0; $a<$hmlaenge; $a++) {
    if ($dat[$hmallbuch[$a]]>$hmhoch) {
    $hmhoch=$dat[$hmallbuch[$a]];
    $hmmaxx=$hmallbuch[$a];
    }
    if ($dat[$hmallbuch[$a]]==$hmhoch) {
    srand((double) microtime() * time());
    $hm=rand(1, 2);
    if ($hm==1) {
    $hmmaxx=$hmallbuch[$a];
    $hmhoch=$dat[$hmallbuch[$a]];
    } } }
    for ($a=0; $a<strlen($dat['Wort']); $a++) {
    if ($dat['Wort'][$a]==$hmmaxx)
    $dat['SWort'][$a]=$dat['Wort'][$a];
    $hmbuch=str_replace($hmmaxx,"",$dat['Buchstaben']);
    }
    if ($hmhoch!=0)
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set Buchstaben='$hmbuch', Tag='".date("l")."' , SWort='".$dat['SWort']."', Last='$hmmaxx', Anzahl=Anzahl+1, A=0 , B=0 , C=0 , D=0 , E=0 , F=0 , G=0 , H=0 , I=0 , J=0 , K=0 , L=0 , M=0 , N=0 , O=0 , P=0 , Q=0 , R=0 , S=0 , T=0 , U=0 , V=0 , W=0 , X=0 , Y=0 , Z=0 WHERE Id='".$dat['Id']."'";
    else
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set Tag='".date("l")."', Anzahl=Anzahl+1, A=0 , B=0 , C=0 , D=0 , E=0 , F=0 , G=0 , H=0 , I=0 , J=0 , K=0 , L=0 , M=0 , N=0 , O=0 , P=0 , Q=0 , R=0 , S=0 , T=0 , U=0 , V=0 , W=0 , X=0 , Y=0 , Z=0 WHERE Id='".$dat['Id']."'";
    $eintragen = mysql_query($eintrag);
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat_Ip";
    $eintragen = mysql_query($eintrag);
    }
    
    ########################################### Lösen
    if ($Loesungswort && !$Buchstabe) {
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip' AND Try=1";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1)) {
    $Text="<tr class=\"hmfarbe1\"><td colspan=2 align=\"center\">Du hast Heute schon versucht zu lösen, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    } else {
    if (strtoupper($Loesungswort)==$dat[Wort]) {
    if ($hm_name) {
    $hm_name=trim($hm_name);
    $hm_mail=trim($hm_mail);
    $hm_url=trim($hm_url);
    $hm_name=htmlentities($hm_name,ENT_QUOTES);
    $hm_mail=htmlentities($hm_mail,ENT_QUOTES);
    $hm_url=htmlentities($hm_url,ENT_QUOTES);
    $hm_name=addslashes($hm_name);
    $hm_mail=addslashes($hm_mail);
    $hm_url=addslashes($hm_url);
    $hm_anzahl=$dat['Anzahl'];
    if($hm_mail && !eregi("^"."[a-z0-9]+([_\\.-][a-zA-Z0-9]+)*"."@"."([a-zA-Z0-9]+([\.-][a-zA-Z0-9]+)*)+"."\\.[A-Za-z]{2,}"."$", $hm_mail, $regs))
    $Text="<tr class=\"hmfarbe1\"><td align=\"center\">Die angegebene Mail Adresse ist falsch.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    if ($hm_url && !preg_match("/^[a-zA-Z0-9-_.:\/]+$/", $hm_url))
    $Text="<tr class=\"hmfarbe1\"><td align=\"center\">Bitte nur 'A-Z', '0-9' und ':/-_.' bei 'Homepage' benutzen.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    if (substr($hm_url,0,4)!="http")
    $hm_url="http://".$hm_url;
    
    
    if (!$Text) {
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat WHERE Id='".$dat['Id']."'";
    $eintragen = mysql_query($eintrag);
    $eintrag =  "DELETE FROM ".$jetec_Prefix."_Hangomat_Ip";
    $eintragen = mysql_query($eintrag);
    if($dat=mysql_fetch_array($ergebnis)) {
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set LWort='$Loesungswort', Tag='".date("l")."' WHERE Id='".$dat['Id']."'";
    $eintragen = mysql_query($eintrag);
    }
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Liste (Zeit, Name, HP, Mail, Wort, Anzahl) VALUES ('$jetec_Zeit','$hm_name','$hm_url','$hm_mail','$Loesungswort','$hm_anzahl')";
    $eintragen = mysql_query($eintrag);
    $dat['LWort']=$Loesungswort;
    $Text="<tr class=\"hmfarbe1\"><td colspan=2 align=\"center\">Du wurdest in die Liste eingetragen.<br><a href=\"index.php?hangomat\">zurück</a></td></tr>";
     } } else {
    $Text="
    <tr class=\"hmfarbe1\"><td colspan=2>Die Antwort ist Richtig, das gesuchte Wort ist \"<b>".$dat[Wort]."</b>\".<br>Du kannst dich in die Liste eintragen.</td></tr>
    <tr class=\"hmfarbe2\"><td align=\"right\">Name:&nbsp;</td><td><input type=\"text\" name=\"hm_name\" value=\"$uname\" style=\"width:300;\" maxlength=50 class=\"hminput\"></td></tr>
    <tr class=\"hmfarbe2\"><td align=\"right\">Homepage:&nbsp;</td><td><input type=\"text\" name=\"hm_url\" style=\"width:300;\" maxlength=255 class=\"hminput\"></td></tr>
    <tr class=\"hmfarbe2\"><td align=\"right\">E-Mail:&nbsp;</td><td><input type=\"text\" name=\"hm_mail\" style=\"width:300;\" maxlength=50 class=\"hminput\"></td></tr>
    <tr class=\"hmfarbe1\"><td align=\"center\" colspan=2>
    <input type=\"hidden\" name=\"Loesungswort\" value=\"".$dat[Wort]."\">
    <input type=\"submit\" value=\"&nbsp;Eintragen&nbsp;\" class=\"hminput\"></td></tr>";
    } } else {
    $Text="<tr class=\"hmfarbe1\"><td colspan=2 align=\"center\">Leider ist der eingegeben Begriff falsch, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a></td></tr>";
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip'";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1))
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat_Ip Set Try='1' WHERE Ip='$jetec_Ip'";
    else
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Ip (Try, Ip) VALUES ('1','$jetec_Ip')";
    $eintragen = mysql_query($eintrag);
    } }
    echo "<form method=\"POST\" action=\"index.php?hangomat\" name=\"loesen\">".$HEADER;
    echo "<tr class=\"hmheader\"><td align=\"center\" colspan=2>".$Titel."</td></tr>
    ".$Text.$FOOTER."</form>";
    }
    
    ########################################### Vote
    $vote=9;
    if ($Buchstabe && (preg_match ("/^[A-Z]+$/", $Buchstabe))) {
    $abfrage8 = "SELECT * FROM ".$jetec_Prefix."_Hangomat WHERE Buchstaben NOT LIKE '%$Buchstabe%' AND Id=".$dat['Id'];
    $ergebnis8 = mysql_query($abfrage8);
    if($dat8 = mysql_fetch_array($ergebnis8))
    $Text="Der Buchstabe \"<b>".$Buchstabe."</b>\" steht nichtmehr zur Auswahl.<br><a href=\"javascript:history.go(-1)\">zurück</a>";
    
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip'";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1))
    $vote=$dat1['Vote'];
    if ($vote==1)
    $Text="Du hast Heute bereits für den Buchstaben \"<b>".$dat1['Buch']."</b>\" gevotet, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a>";
    if (!$Text) {
    $dat[$Buchstabe]++;
    if ($vote==0)
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat_Ip Set Vote='1', Buch='$Buchstabe' WHERE Ip='$jetec_Ip'";
    if ($vote==9)
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Ip (Vote, Ip, Buch) VALUES ('1','$jetec_Ip','$Buchstabe')";
    $eintragen = mysql_query($eintrag);
    
    if (!strstr($dat['SWort'], $Buchstabe)) {
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat Set ".$Buchstabe."=".$Buchstabe."+1 WHERE Id=".$dat['Id']."";
    $eintragen = mysql_query($eintrag);
    } } }
    
    ########################################### Anzeige
    if (!$Text) {
    $abfrage = "SELECT * FROM ".$jetec_Prefix."_Hangomat ORDER BY Id";
    $ergebnis = mysql_query($abfrage);
    if($dat = mysql_fetch_array($ergebnis)) {
    if ($jehmcookie==$adminpass)
    $jehmtt="";
    else
    $jehmtt="";
    $Text="<table cellpadding=5 cellspacing=1 class=\"hmtabelle\"><tr align=\"center\" class=\"hmfarbe2\">
    <td class=\"hmfarbe3\" rowspan=2></td>";
    
    for ($a=0; $a<$hmlaenge; $a++) {
    if ($dat[$hmallbuch[$a]]>0) {
    $W1[$a]=$dat[$hmallbuch[$a]];
    $W2[$a]=$hmallbuch[$a];
    }
    if ($dat['Buchstaben'][$hmcount]==$hmallbuch[$a]) {
    $Text.="<td align=\"center\"><input type=\"submit\" value=\"".$hmallbuch[$a]."\" name=\"Buchstabe\" class=\"hminput\" style=\"width:25; height:25;\"></td>";
    $hmcount++;
    } else {
    $Text.="<td align=\"center\"><input type=\"button\" value=\"".$hmallbuch[$a]."\" class=\"hminput1\" style=\"width:25; height:25;\"></td>";
    }
    if ($a==12)
    $Text.="</tr><tr class=\"hmfarbe2\">";
    }
    $Text2="";
    $Text3="";
    
    if ($W1 && $W2)
    array_multisort ($W1,SORT_NUMERIC,SORT_DESC,$W2);
    for ($a=0; $a<count($W1); $a++) {
    $Text2.="<td align=\"center\"><b>".$W2[$a]."</b></td>";
    $Text3.="<td align=\"center\">".$W1[$a]."</td>";
    }
    $hmswort="";
    for ($a=0; $a<strlen($dat['SWort']); $a++)
    $hmswort.="&nbsp;".$dat['SWort'][$a];
    $Text.="</tr></table>";
    $Text.="<br><table cellpadding=5 cellspacing=1 class=\"hmtabelle\"><tr align=\"center\" class=\"hmfarbe2\"><td align=\"center\" class=\"hmfarbe3\">Buchstaben:</td>".$Text2."</tr><tr align=\"center\" class=\"hmfarbe2\"><td align=\"center\" class=\"hmfarbe3\">Stimmen:</td>".$Text3."</tr></table>
    <br><span style=\"FONT-SIZE:20px; FONT-WEIGHT: bold;\">".$hmswort."</span><br><br>
    Das Wort läuft seit <b>&nbsp;".$dat['Anzahl']."&nbsp;</b> Tag".($dat['Anzahl']!=1 ? "en" : "")."<br>
    Letzter gelöster Begriff: <b>&nbsp;".$dat['LWort']."</b>&nbsp;<br>
    Letzter bewerteter Buchstabe: <b>&nbsp;".$dat['Last']."&nbsp;</b><br>
    <input type=\"text\" name=\"Loesungswort\" style=\"width:300;\" class=\"hminput\">&nbsp;<input type=\"submit\" value=\"&nbsp;Lösen&nbsp;\" class=\"hminput\"><br><br>".$jehmtt;
    } } } else {
    $Text="Kein Wort in der Datenbank.<br><br>".$jehmtt;
    }
    if (!$Loesungswort) {
    
    echo "<form method=\"POST\" action=\"index.php?hangomat\" name=\"hmform\"><input type=\"hidden\" value=\"\" name=\"hmcook\">".$HEADER;
    echo "<tr class=\"hmheader\"><td align=\"center\">".$Titel."</td></tr>
    <tr class=\"hmfarbe1\"><td align=\"center\">".$Text."</td></tr>";
    echo $FOOTER."</form>";
    $Text="
    <tr align=\"center\" class=\"hmheader\"><td colspan=4>Die letzten ".$loeanz." Löser</td></tr>
    <tr align=\"center\" class=\"hmfarbe1\"><th>Gelöst:</th><th>Name:</th><th>Wort:</th><th>Tage:</th></tr>";
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Liste ORDER BY Id DESC LIMIT $loeanz";
    $ergebnis1 = mysql_query($abfrage1);
    while($dat1 = mysql_fetch_array($ergebnis1)) {
    if ($col=="hmfarbe1")
    $col="hmfarbe2";
    else
    $col="hmfarbe1";
    if ($dat1['Mail'])
    $dat1['User']="<a href=\"mailto:".$dat1['Mail']."\">".$dat1['User']."</a>";
    if ($dat1['HP'])
    $dat1['HP']="<a href=\"".$dat1['HP']."\" target=\"NEU\"><img src=\"".$szge."/page.gif\" alt=\"HP\" border=0></a>";
    $Text.="<tr class=\"".$col."\"><td>".date("d.m.Y", $dat1['Zeit'])."</td><td>".$dat1['HP']."".$dat1['Name']."</td><td align=\"center\">".$dat1['Wort']."</td><td align=\"center\">".$dat1['Anzahl']."</td></tr>";
    }
    echo $HEADER;
    echo $Text;
    echo $FOOTER;
    }
    $design->footer();
    ?>
    </center>
    </body></html>
    <?php
    $design->footer();
    ?>


    Ich war mal so frei den User und Passwort zu entfremden, aber ich verbürge mich dafür, daß sie in den Versionen auf unserem Server übereinstimmen; habe ich sogar per copy-paste übertragen, um auszuschliessen, daß sich da Leerzeichen oder sonstwas eingeschlichen hat, was man - je nach editor - nicht sofort sieht.

    Thanks für Deine Hilfe !
    Holgi
    0 Mitglieder finden den Beitrag gut.
  2. #32
    User Pic
    Kai0570 Mitglied
    Registriert seit
    15.01.2008
    Beiträge
    3
    Beitragswertungen
    0 Beitragspunkte
    Hallo

    Gibt es eine Möglichkeit bei dem script die IPSperre abzuschalten?
    Der Grund ist einfach der wir haben viele User die sich einen Internetzugang teilen und durch die IP des Routers ja nur einmal gevotet werden kann.

    Mfg
    0 Mitglieder finden den Beitrag gut.
  3. #33
    User Pic
    HolgerNils Mitglied
    Registriert seit
    20.12.2006
    Beiträge
    56
    Beitragswertungen
    0 Beitragspunkte
    @kai
    Du wirst im Script ne Stelle finden die versucht in der DB die ermittelte IP des Benutzer (steht in '$jetec_Ip') zu lesen, ist dies erfolgreich und die ermittelte IP ist schon vorhanden für diesen Tag, dann verweigert das Script ein weiteres Voting; beim Datumswechsel hingegen löscht es alle vorhandenen Einträge und gibt die Blockade sozusagen auf.

    ########################################### Vote
    $vote=9;
    if ($Buchstabe && (preg_match ("/^[A-Z]+$/", $Buchstabe))) {
    $abfrage8 = "SELECT * FROM ".$jetec_Prefix."_Hangomat WHERE Buchstaben NOT LIKE '%$Buchstabe%' AND Id=".$dat['Id'];
    $ergebnis8 = mysql_query($abfrage8);
    if($dat8 = mysql_fetch_array($ergebnis8))
    $Text="Der Buchstabe \"<b>".$Buchstabe."</b>\" steht nichtmehr zur Auswahl.<br><a href=\"javascript:history.go(-1)\">zurück</a>";
    
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='$jetec_Ip'";
    $ergebnis1 = mysql_query($abfrage1);
    if($dat1 = mysql_fetch_array($ergebnis1))
    $vote=$dat1['Vote'];
    if ($vote==1)
    $Text="Du hast Heute bereits für den Buchstaben \"<b>".$dat1['Buch']."</b>\" gevotet, versuche es Morgen noch einmal.<br><a href=\"javascript:history.go(-1)\">zurück</a>";
    if (!$Text) {
    $dat[$Buchstabe]++;
    if ($vote==0)
    $eintrag =  "UPDATE ".$jetec_Prefix."_Hangomat_Ip Set Vote='1', Buch='$Buchstabe' WHERE Ip='$jetec_Ip'";
    if ($vote==9)
    $eintrag = "INSERT INTO ".$jetec_Prefix."_Hangomat_Ip (Vote, Ip, Buch) VALUES ('1','$jetec_Ip','$Buchstabe')";
    $eintragen = mysql_query($eintrag); ;


    Jedem Coder wird es jetzt kalt den Rücken runterlaufen, aber Du erreichst das gewünschte Feature ohne den Quelltext grossartig ändern zu müssen, indem Du die in der Variable '$jetec_Ip' gespeicherte IP z. B. durch eine nicht existente Fix-IP ersetzt: Das Script würde dann die ermittelte IP nicht mehr finden, obwohl das Script zu zum Zwecke der Verhinderung eines Doppelvotings gespeichert hat, weil in dem Suchbefehl nicht die ermittelte sondern eine künstliche IP eingetragen ist.

    z. B.
    $abfrage1 = "SELECT * FROM ".$jetec_Prefix."_Hangomat_Ip WHERE Ip='1.1.1.1'";


    Ob das jetzt mit oder ohne dem ' geklammert funktioniert einfach mal ausprobieren zwinker
    0 Mitglieder finden den Beitrag gut.
  4. #34
    User Pic
    HolgerNils Mitglied
    Registriert seit
    20.12.2006
    Beiträge
    56
    Beitragswertungen
    0 Beitragspunkte
    @mwbvb09

    ich konnte durch ein wenig surfen und daddeln unser Problem lösen und evt. kann Chapter das in die nächste Version einbauen.

    Durch Testen mit ECHO und fixen Werten ($hangowort="TEST") habe ich rausgefunden, daß die von der Site übermittelten Daten der Felder nicht im Script ankommen und daher reagiert es lediglich mit einer Neuanzeige der Seite.

    Das Problem, warum das Script bei uns nach dem Umzug nicht mehr funzte - und ich nehme an bei Dir mwbvb09 besteht dasselbe Problem - ist eine dusselige Servervariable, die seit PHP 4.2 standardmässig auf "off" steht:

    register_globals=off

    In neueren PHP-Versionen welche den o. g. Parameter auf "off" stehen haben müssen die Felder einer Seite explizit ausgelesen werden, während in PHP 4.x noch ein direkter Zugriff durch die reine Erwähnung möglich ist; die obige Servervariable erhöht die Sicherheit, verhindert aber halt diese bisherige Vorgehensweise und erfordert das namentliche Auslesen der Formularfelder:

    $_POST



    Daher habe ich hinter $hmcount=0 im Code beider PHP-Dateien folgendes eingefügt - und dann geht das Script auch bei uns wieder:

    $hmcount=0;
    $hmhoch=0;
    
    $hangowort=$_POST['hangowort'];
    $hm_name=$_POST['hm_name'];
    $hm_url=$_POST['hm_url'];
    $hm_mail=$_POST['hm_mail'];
    $Buchstabe=$_POST['Buchstabe'];
    $hm_Loesungswort=$_POST['Loesungswort'];
    $hangwort=$_POST['hangwort'];
    $hango=$_POST['hango'];
    $hmcook=$_POST['hmcook'];
    $loesen=$_POST['loesen'];


    Ich hoffe, es hilft auch bei Dir!
    Holgi
    0 Mitglieder finden den Beitrag gut.
  5. #35
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    @Holger
    jo werd das script wieder komplett überarbeiten wenn ich zeit hab und bau das dann auch ein. aber hast du auch mal probiert ob das script so wie du es umgebaut hast auch läuft wenn register_globals=on sind ???
    weil wenn nicht mach ich direkt zwei versionen...


    Zuletzt modifiziert von Chapter am 30.01.2008 - 18:23:20
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  6. #36
    User Pic
    HolgerNils Mitglied
    Registriert seit
    20.12.2006
    Beiträge
    56
    Beitragswertungen
    0 Beitragspunkte
    Ausprobiert nicht wirklich, aber in der Doku nachgelesen: wenn der Parameter auf "on" müsste die jetzige Version funzen, weil dann sind die (sicherheitserhöhenden) expliziten Auslesebefehle nicht notwendig. Unser Provider - wir sind ja nicht allein auf dem Server - möchte das "off" belassen, da es sicherheitsrelevant ist und mit 4.2 extra eingebaut wurde.

    Die Frage wäre, wär das explizite Auslesen kompatibel auch für die Version vor 4.2, dann wäre das die All-Round-Lösung.

    Holgi
    0 Mitglieder finden den Beitrag gut.
  7. #37
    User Pic
    HolgerNils Mitglied
    Registriert seit
    20.12.2006
    Beiträge
    56
    Beitragswertungen
    0 Beitragspunkte
    Ohje, da ist ein Fehler in meinen hinzugefügten Variabelauslesungen:

    $hm_Loesungswort=$_POST['Loesungswort'];


    muss heissen:
    $Loesungswort=$_POST['Loesungswort'];


    also ohne das hm_ davor!

    Holgi
    0 Mitglieder finden den Beitrag gut.
  8. #38
    User Pic
    Nexilis Mitglied
    Registriert seit
    07.12.2006
    Beiträge
    51
    Beitragswertungen
    0 Beitragspunkte
    Also irgendwie funktioniert das Teil gar nicht.
    Die hier besprochenen Änderungen habe ich gemacht.

    In meinem Wort kommen 2x E vor.
    Wenn ich E Vote bleibt trotzdem _ _ _ _ _ _ stehen und die erratenen E werden nicht angezeigt.

    Löschen kann man die Wörter im Admin bereich auch nicht.
    Die Seite wird einfach neu geladen...

    Ich weis nicht warum hier Module zum DL angeboten werden die in keinster weise funktionieren :/
    Gruß Alex

    externer Link
    0 Mitglieder finden den Beitrag gut.
  9. #39
    User Pic
    RaChEeNgEl_0605 Mitglied
    Registriert seit
    21.04.2008
    Beiträge
    16
    Beitragswertungen
    0 Beitragspunkte
    Hi, nach dem ich das alles so eingetragen habe wie beschrieben bekomm ich auf der seite folgende Meldung.

    Warning: Cannot modify header information - headers already sent by (output started at /usr/export/www/hosting/racheengel0605/include/includes/class/design.php:91) in /usr/export/www/hosting/racheengel0605/include/contents/hangomat.php on line 29

    Kann mir bitte jmnd sagen was ich falsch gemacht habe und wie kann ich diesen fehler beheben?
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten