Hi Terra,
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
Sie sind nicht angemeldet. Bitte melden Sie sich an oder registrieren Sie sich.
devshare.de » Beiträge von Tink
Hi Terra,
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
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
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
Hey Hannes,
nö, man landet dort: http://devshare.de/index.php
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
setz das Passwort halt zur Sicherheit gleich zurück, dann bist Du auch sicher, welches Du vergeben hast ![]()
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
**THEMA NACH CSS VERSCHOBEN**
h1,h2 {
font: 12px Verdana, Geneva, Arial, Helvetica, sans-serif;
color: #000000;
}
...
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:
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
auch gut... zumindest die erste Hälfte meiner Antwort schien zumindest richtig zu sein ![]()
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" ![]()
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
...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.
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 ![]()
tink
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
(meine Firma ist vor Kurzem von eZpublish zu Typo3 gewechselt)
Schönen Gruß,
tink
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
Trenne PHP und HTML Code, davor guck ich mir den Code nicht an ![]()
(das ist einfach zu hässlich)
tink
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
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 ![]()
Schönen Gruß,
tink
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ß ![]()
Schönen Gruß,
tink
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
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
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 ![]()
HTH,
tink
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 ![]()
- 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
devshare.de » Beiträge von Tink
Powered by PunBB, unterstützt von Informer Technologies, Inc.
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.