51

(11 Antworten, geschrieben in System)

Hi Terra,

terra schrieb:

vielen dank beiden für die hilfe.
an was kann es denn dann noch liegen wenn meine überlegungen eigentlich richtig waren?

hmmm... am PHP-Code vielleicht? Loopst Du über Deine Ergebnisse?
Zeig mal Deinen Code.

tink

52

(11 Antworten, geschrieben in System)

Hi terra,

ich denke, ich würde es so machen:
Zuerst einen Array aller Userids erzeugen, die auf "aktiv=ja" stehen.
Dann aus dem Array per Zufall eine bestimmte Anzahl von Userids laden und zu diesen dann die Daten anzeigen.

Hier ist eine Funktion, die als Parameter die Anzahl der Elemente und den Array erwartet und dann einen Array der zufällig ausgewählten Elements zurückliefert:

<pre>
<?
# Array anlegen als Test (wird durch DB-Abfrage ersetzt
for ( $i=1; $i<=100; $i++ )
{
  $liste[$i-1] = "User ".$i;
}

function getRandomEntries($number=6, $list)
{
    $entrycount = count($list);
    $i=1;
    while ( $i<=$number )
    {
      $rnd = rand(1,$entrycount);
      $element = $list[$rnd];
      if ( !in_array($element,$retlist) )
      {
        $retlist[$i-1] = $element;
        $i++;
      }
    }
    return $retlist;
}
$randentries = getRandomEntries(7,$liste);
print_r($randentries);
?>
</pre>

HTH,

tink

53

(2 Antworten, geschrieben in System)

Hi terra,

dieses "if ($result)" prüft wohl nur ab, ob der SELECT erfolgreich abgefragt werden konnte.
Guck doch einfach über:
SELECT COUNT(*) FROM users WHERE (unickname = '$unickname')

Dann holst Du Dir die Zahl in eine Variable und fragst ab:
if ( $count == 0 )
{
  echo "Username noch frei";
}
else
{
  echo "Username schon vergeben!";
}

HTH,

tink

54

(10 Antworten, geschrieben in Devshare Plausch)

Hey Hannes,

nö, man landet dort: http://devshare.de/index.php

55

(1 Antworten, geschrieben in Ajax)

Moin,

wenn die JSP-Seite einen Session-Cookie (mit Session-ID) setzt, hast Du ja auf dem Server die Session.
Alle AJAX-Requests können dann jeweils einer Session zugeordnet werden, oder nicht?

HTH,

tink

56

(5 Antworten, geschrieben in System)

setz das Passwort halt zur Sicherheit gleich zurück, dann bist Du auch sicher, welches Du vergeben hast smile

57

(5 Antworten, geschrieben in System)

Hi Robert,

ich weiß nicht, welche Version von MySQL Du laufen hast, aber guck Dir doch mal das an:
http://dev.mysql.com/doc/refman/5.0/en/ … sions.html
...funktioniert wohl sowohl für 4.x als auch für 5.

HTH,

tink

58

(17 Antworten, geschrieben in CSS)

**THEMA NACH CSS VERSCHOBEN**

59

(17 Antworten, geschrieben in CSS)

h1,h2 {
  font: 12px Verdana, Geneva, Arial, Helvetica, sans-serif;
  color: #000000;
}

...

60

(2 Antworten, geschrieben in HTML/XHTML)

Das hat nix mit den Feldern im HTML zu tun, sondern mit aktiven Optionen im FireFox.
Der IE und Mozilla haben sowas auch.
Workaround:
Im FireFox musst Du den Passwort-Manager deaktivieren:
http://tink.de/firefox.png

Ansonsten würde mir nur einfallen, den Login über ein Java-Applet zu machen, welches ein Fenster (kein HTML) öffnet und dann login-Daten abfragt und an irgendeine Seite zurückgibt.

Schönen Gruß,

tink

61

(3 Antworten, geschrieben in JavaScript - Hilfe)

auch gut... zumindest die erste Hälfte meiner Antwort schien zumindest richtig zu sein smile

62

(3 Antworten, geschrieben in JavaScript - Hilfe)

Hi und willkommen auf Devshare,

zu Deiner Frage:
"Keine oder?  Die Pfeile an Anfang und Ende machen es doch unbrauchbar?"

Hier ein Zitat von http://de.selfhtml.org/javascript/intro … ptbereiche
Gewisse besonders alte Browser, zum Beispiel Netscape 1 und Internet Explorer 2, wissen nichts von JavaScript und kennen daher das script-Element nicht. Wenn diese Browser auf einen JavaScript-Bereich treffen, stellen sie irrtümlicherweise dessen Inhalt so dar, als handelte es sich um normalen Text in der HTML-Datei. Dadurch bekommt der Anwender den Code zu Gesicht. Wenn Sie dies verhindern möchten, sollten Sie den JavaScript-Code zwischen <script type="text/javascript"> und </script> in einen Seite HTML-Kommentar einschließen. In der Zeile nach dem Start-Tag öffnen Sie den Kommentar mit <!--. In der Zeile vor dem End-Tag des JavaScript-Bereich notieren Sie einen einzeiligen Seite JavaScript-Kommentar //, gefolgt vom schließenden HTML-Kommentar -->.

<script type="text/javascript">
<!--
alert("Hallo Welt!");
//-->
</script>


...

So, also: Der Code ist "aktiv" smile

Was der Code macht:
Siehe dazu die Funktionsbeschreibung für blur() auf SelfHTML:
http://de.selfhtml.org/javascript/objek … s.htm#blur

... d.h. sie entfernt den Focus von allen Links, sobald das Dokument geladen wird, damit also "initial" (bei ersten Betrachten einer Seite) kein Link vorausgewählt ist... was das bringt? Keine Ahnung... aber "bösartig" ist das Skript wohl nicht..


Schönen Gruß,

tink

63

(2 Antworten, geschrieben in System)

...wenn ich mich jetzt nicht irre, zählt "COUNT(*)" (oder "COUNT(rank_id)") nur die Anzahl der Spiele pro User...
Wenn überhaupt, sollte daher "ORDER BY MAX(rank_score)" sortiert werden und nicht nach der Anzahl...

HTH,

Tink

P.S. Poste mal ein paar Beispiel-Einträge, dann kann ich Dir evtl. leichter helfen.

64

(2 Antworten, geschrieben in PHP)

Hi,

ich tippe mal darauf, dass fpdf (kenne dieses Teil nicht) schon Header sendet, bevor mit session_start() Header gesendet werden und sich dadurch die Session verabschiedet...
Versuch mal die Output-Bufferung einzuschalten (ob_start()) oder wie sich dieses Ding nochmal nennt...

Just a wild ass guess smile

tink

65

(6 Antworten, geschrieben in Interaktion & Dialog)

Hi Robert,

also die Migration Deiner aktuellen Seite in ein CMS wird mit Sicherheit recht aufwändig werden.
Allerdigs haben CMS den Vorteil, dass man wie gesagt die meisten Änderungen online durchführen kann und zum Teil auch noch gewisse Logiken (best. Seiten/Bereiche nur für best. Leute freischalten) einbauen kann, deren Grundsteine bereits im CMS enthalten sind.

Kleiner Tip noch: Nimm nich eZpublish, das ist ein Monster smile (meine Firma ist vor Kurzem von eZpublish zu Typo3 gewechselt)

Schönen Gruß,

tink

66

(1 Antworten, geschrieben in Interaktion & Dialog)

Hi Robert,

meinst Du sowas hier?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

HTH, tink

67

(4 Antworten, geschrieben in PHP)

Kann es sein, dass Deine IF-.Klammer bei

if($op == "send"){

nicht zugeht??

Auch schon der Code der HTML-Datei ist viel zu viel! Guck Dir doch nur mal an, was für Arbeit das ist, die " -Zeichen zu maskieren...
Benutz ne Template-Engine, um Texte mit "variablen" Werten zu erzeugen.

Schönen Gruß,

tink

68

(4 Antworten, geschrieben in PHP)

Trenne PHP und HTML Code, davor guck ich mir den Code nicht an smile
(das ist einfach zu hässlich)

tink

69

(1 Antworten, geschrieben in PHP)

Hi Bernie,

die Antwort dürfte wohl die Server-Einstellung "register_globals" sein.
In Deinem Skript schreibst Du nur:

if ($action == "loeschen") {

Aber dieser Code klappt nur bei Servern, deren PHP mit registrierten Globalen läuft.
Alle anderen Server (und das wird immer die Mehrheit sein, denn das ist sicherer und ab 4.2.irgendwas auch Standard der PHP-Installation) werden nicht korrekt arbeiten.

In Deinem Fall dürfte dann $action in $_GET["action"] zu finden sein...
Bevor Du Deine Skripte an Leute verteilst, tu Dir und den Leuten, die Deine Skripte einsetzen,
den Gefallen und lies die Doku.
Ein wenig googlen un prüfen hätte da schon geholfen.

Schönen Gruß und viel Erfolg,

tink

70

(10 Antworten, geschrieben in PHP)

Hi Volker,

was Du da brauchst, ist wohl ein Array mit mehreren Dimensionen.
In etwa sowas:
Array 1. Dimension: Jahre
2. Dimension: Monate
3. Dimension: Tage

Und dann loopst Du darüber. Innerhalb der einzelnen Loops muss dann entsprechend das <tr> oder <td> auf- bzw. zugemacht werden.

Aber wie gesagt: Trenne bitte HTML und PHP! Verwende ein Template Modul dafür.
Z.B.: http://www.nierlein.org/pub/template/

Hier kannst Du den gesamten Kalender in einen Multidimensionalen-Array packen und dann bequem
anzeigen lassen.
Ich schau mal, ob ich heut abend daheim sowas kurz code, falls Du mit den Tips noch nich weiter kommst wink

Schönen Gruß,

tink

71

(10 Antworten, geschrieben in PHP)

Hi Sense,

jetzt denk mal durch, wie Dein Skript reagieren würde, wenn Du diese Schleife einbaust.
Es würde (je nachdem an welcher Stelle Du das Ding einbaust) so aussehen, als wäre die Seite
noch nicht fertig geladen.
Traffic erzeugt diese Schleife auf keinen Fall, da ja effektiv keine Daten an den Client übertragen werden.

In meinen Augen ist diese Schleifen-Sache sowas wie eine ABM für den Web-Server:
Jedesmal, wenn ein User ne Seite anfordert, wird die Schleife gestartet und der Server macht nix anderes, als irgendwas zu zählen.
Ganz zu schweigen von dem "Erneuern des Timestamps".
Willst Du da nen Timestamp in der DB erneuern? D.h. alle paar Milisekunden einen UPDATE auf die DB fahren?
Dann viel Spaß, ich seh da schon einiges an Performance-Einbußen.

Aber wenn Du das mal versuchen willst, viel Spaß wink

Schönen Gruß,

tink

72

(10 Antworten, geschrieben in PHP)

Hoi Sense,

find ich nicht gut.
Um das Skript andauernd laufen zu lassen, müsstest Du mind. mal die "max execution time" in der
php.ini ändern und den Web-Server durchstarten bzw. über die Funktion dieses Zeitlimit ändern.

Außerdem kannst Du den Fall, dass ein User das Browser-Fenster zu macht, nicht richtig abfangen. (Zumindest sehe ich das als viel unsicherer an, als den o.g. Weg über die Aktionen,
die ein User selbst anklickt).

Schönen Gruß,

tink

73

(10 Antworten, geschrieben in PHP)

Hi zusammen,

eine Session ist ja Benutzer-bezogen. Also ich denke nicht, dass PHP es ermöglicht "Session-übergreifende" Daten auszulesen. Das wäre IMHO eine recht nette Sicherheitslücke.
Ich würde auch eher den Weg nehmen, den Sense schon begeht:
Die letzte Aktion der Benutzer speichern und dann alle <15min. auslesen. Klingt gut würde ich sagen.

Schönen Gruß,

tink

74

(10 Antworten, geschrieben in PHP)

Moin Volker,

also wenn, dann evtl. so:

<?
$stamp = mktime(0,0,0,1,1,2006);
$Jahr = 2006;
while($Jahr < 2007)
    {
    $datum = date("d.m.Y",$stamp);
    $Jahr = date("Y",$stamp);
    $alter_monat = date("m",$stamp);
    $stamp = $stamp + 86400;
    $neuer_monat = date("m",$stamp);
    if ( $alter_monat != $neuer_monat )
    {
      print "<hr>";
    }
    print $datum;
    }
?>

Schnellschuß, ungetestet wink

HTH,
tink

75

(2 Antworten, geschrieben in PHP)

Moin,

kann es sein, dass Deine Tabelle einige Spalten enthält, die als "NOT NULL" eingestellt sind?
In diesem Falle würde natürlich dieses Ding hier:

INSERT INTO $tabellenname () VALUES () ";

ständig fehlschlagen und ein späterer UPDATE wäre vollkommen sinnlos....
Mein Rat (auch wenn ich mir Deinen weiteren Code ansehe):
- trenne PHP und HTML voneinander... in einer Schleife "echo <td>..." zu machen wird Dich in Teufelsküche bringen smile
- Wenn Du einen INSERT machst, stelle sicher, dass bei dem INSERT auch sofort alle Werte eingetragen werden, die Du zur Verfügung hast und lass die Spalten als "NOT NULL" wenn sie wirklich nötig sind.
- schalte "register_globals" auf off! ($sent z.b. scheint bei Dir ein Parameter zu sein, welches über den Request reinkommt. Wenn Du das so einfach ungeprüft übernimmst, forderst Du Fehler geradezu heraus.)
- Mach für die unterschiedlichen Aktionen eigene PHP-Dateien und include die. So mache ich das immer. Der Vorteil: Du hast übersichtlichere Dateien, die gezielt eine Aktion durchführen.

Viel Erfolg noch,

tink