-
Gesamte Inhalte
619 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von DanielH
-
-
Hi,
über eine Datenbank ist es eigentlich recht einfach.
Du generierst eine Sessionid und speicherst diese zusammen mit userdaten in der Datenbank ab. Genauso wie du es auch mit den sessions machst.
<?PHP
function userauth($sid){
global $db;
global $auth;
$db->query("SELECT id, name, sessid, lastvisit, lastactive FROM user_online WHERE sessid = '$sid'");
$row=$db->fetch();
$db->free();
if(!empty($row["id"])){
$i=0;
$i++;
$auth["user"][$i]["lastvisit"] = $row["lastvisit"];
$auth["user"][$i]["id"] = $row["id"];
$auth["user"][$i]["name"] = $row["name"];
$auth["user"][$i]["sessid"] = $row["sessid"];
$auth["user"][$i]["check"] = 1;
$db->query("INSERT INTO user_online (id,name,sessid,lastvisit,lastactive) VALUES ('".$row["id"]."','".$row["name"]."','".$row["sessid"]."','".$auth["user"][$i]["lastvisit"]."','".time()."'");
$db->free();
} else {
//User noch nicht online
//existiert ein Cookie ?
if(isset($User)){
//User automatisch einloggen
$db->query("SELECT id, name, sessid FROM any_user_table WHERE sessid = ".$HTTP_COOKIE_VARS["sessid"]."");
$row=$db->fetch();
$db->free();
//Prüfen, ob sessid aus Cookie auch existiert
if(!empty($row["id"])){
$i=0;
$i++;
$auth["user"][$i]["lastvisit"] = $User["lastvisit"];
$auth["user"][$i]["id"] = $row["id"];
$auth["user"][$i]["name"] = $row["name"];
$auth["user"][$i]["sessid"] = $row["sessid"];
$auth["user"][$i]["check"] = 1;
$db->query("INSERT INTO user_online (id,name,sessid,lastvisit,lastactive) VALUES ('".$row["id"]."','".$row["name"]."','".$row["sessid"]."','".$HTTP_COOKIE_VARS["lastvisit"]."','".time()."'");
setcookie ("User[sessid]", $row["sessid"], time()+31536000);
setcookie ("User[lastvisit]",time(), time()+31536000);
} else {
//User ist "Gast"
$i=0;
$i++;
$auth["user"][$i]["check"] = 0;
}
} else {
//User ist "Gast"
$i=0;
$i++;
$auth["user"][$i]["check"] = 0;
}
}
//Alle rausschmeissen, die länger als 10 Min inaktiv waren.
$past = time()-600;
$db->query("DELETE FROM user_online WHERE lastactive < $past");
}
?>
[/PHP]Hier mal eine Userauthentifizierung mit MySQL-Datenbank (über Abstraction-Layer)
MfG
-
Ein Login per FTP sollte da klarheit verschaffen. Bei manchen, stellenweise eigenartigen Konfigurationen ist der root dann z.B. "htdocs" und muss dann von PHP so angesprochen werden.
Schau mal nach, ob du nach dem login noch eine ebene höher gehen kannst.
Ansonsten "./" oder garnix.
(wenn es danach noch weiter geht, solltest du deinen Provider vielleicht darauf hinweisen)
MfG
-
@Jaraz
ist richtig, ich wollte aber den Quelltext leicht verständlich halten. Optimieren kann man da natürlich noch eine Menge. Mann könnte das ganze in eine Funktion auslagern, die nur das Blättern organisiert und so weiter.
Aber trotzdem muss man erstmal verstehen wie es geht. Und das geht am einfachsten mit leichtem Quelltext, finde ich.
MfG
-
Hi,
du musst die aktuelle position an die nächste bzw. vorherige Seite übergeben:
Beispiel dafür:
<?php
mysql_connect("host","username","password");
mysql_select_db("database");
$select = mysql_query("select * from tabelle");
$reihen = mysql_num_rows($select);
$zeigen = floor($reihen / 5);
if(!$start) { $start = 0.1; }
$result = mysql_query("select * from tabelle limit $start,5");
echo "<table>";
while ($zeile = mysql_fetch_array($result)) {
echo "<tr><td>$zeile[3]</td></tr>";
}
echo "</table>";
if($start > 0.1) {
$zurueck = $start - 5;
echo "<a href=\"$PHP_SELF?start=$zurueck\"><< Zurück</a>";
}
for($i = 0; $i <= $zeigen; $i++) {
echo " <a href=\"$PHP_SELF?start=$n\">$i</a> ";
$n += 5;
}
$weiter = $start + 5;
if($reihen > $weiter) {
echo "<a href=\"$PHP_SELF?start=$weiter\">Weiter >></a>";
}
?>
[/PHP]MfG
-
Hi,
ich würde es auf mal auf den Pfad schieben, das es nicht geht. Zeigt denn das document root auf das verzeichniss unterhalb von /www ?
-
Oi da war ja jemand schneller...
-
$_SERVER, $_GET usw. sind arrays und werden per eckigen Klammern angesprochen. bei getenv('REMOTE_ADDR') kannst du runde Klammern nehmen.
MfG
-
Gehts um PDF mit PHP ? Dann ist doch das, was im Handbuch mehr als ausreichend.
Einfach die aktuellste PDFlib besorgen, in der ini bei der entsprechenden dll den Kommentar entfernen und schon kann es losgehen. Das extension-dir findest du in der ini und da muss dann die PDFlib rein.
Ich denke mal nicht das hier jemand alle pdf-funktionen im Kopf hat. Aber im Handbuch steht dann auch der weg zum PDF-Dokument beschrieben.
MfG
-
Mit den einstellungen ist soweit alles i.Ordnung.
Ausser:
den Safemode solltest du gerade bei NT vielleicht doch einschalten...
Schau doch mal in deinen Temporary Internet Files, ob da überhaupt Cookies vom Board gelandet sind.
Die einstellungen für die Cookies müssen heissen:
cookie domain: aloka.dyndns.org
cookie path: pfad/zum/forum ab dem docroot.
MfG
-
Werden sessions verwendet zur User-Identifizierung ?
wenn ja, checke in der ini mal die Einstellungen für session_save_path und enable_trans_sid
Andernfalls ist es auch noch möglich, das die Cookieeinstellungen des Forums selbst noch nicht in ordnung sind.
MfG
-
Und welche PHP-Version ist nun bei Foxserv dabei ?
Kenne das nicht weil mein Server ein Apache 1.3.wasweissich ist und unter FreeBSD 4.6 läuft.
PHP hat seit Version 4.2.x die Änderung, wie es oben im Link beschrieben ist.
Und dort kann man globale Variablen standardmäßig nur über das entsprechende array ansprechen. Wenn dann auch noch die debug-Variante der ini unter Windows genutzt wird, nützt das ändern von register_globals nur im Zusammenhang mit einer Reihe anderen Variablen etwas. Aber wie gesagt, was Foxserv da so treibt weiss ich nicht.
MfG
-
...
...
oder versuche $HTTP_POST_VARS["username"] um den Spass auszugeben
oder $_POST["username"]
wobei ersteres wegen der Abwärtskompatibilität zu empfehlen wäre. Viele Hoster nutzen noch 4.06 bzw. 4.1.x
MfG
-
Kann auch mit der PHP-Version register_globals zusammenhängen. (Version > 4.2)
MfG
-
Original geschrieben von nic_power
Warum sollte das auf PCs anders sein? Der Sprachstandard ist (oder sollte zumindest) identisch sein. Gerade bei Cobol wird darauf Wert gelegt, dass der Standard von den Implementierungen eingehalten wird. Zustaendig ist das COBOL Technical Committee innerhalb von NCITS.
Nic
Nun ja für unsere Kiste gibt es z.B kein Objectcobol, das würde mich aber schonmal interessieren.
Der IBM-Dialekt weicht wirklich stark von dem ab, was man in den Referenzen lesen kann.
MfG
-
PERFORM TEST AFTER UNTIL *Buääähhh* = 15
ADD 1 TO *Buääähhh*
END-PERFORM
Ich mag COBOL nicht nicht so besonders. Programmiert das auch jemand nicht auf dem Großrechner ? Wüsste gerne mal ob die Sprache auf PC genauso unflexibel ist.
MfG
-
Hi,
funktioniert es, wenn du das als reines HTML verwendest ?
Ups hab es schon entdeckt:
onClick='Hinzufuegendi('BiH')' da ist der Fehler. Funktionsaufruf hört hier schon nach "Klammer auf" auf. ( Grammatik... )
besser so: onClick=\"Hinzufuegendi('BiH')\" die Funktionsaufrufe schreiben. Bei den anderen ist das einfache ' ok.
MfG
-
Hi.
2 mal mit fopen arbeiten.
$doc1 = fopen("text1.txt","w");
$doc2 = fopen("text2.txt","w");
fwrite($doc1, $was_in_die_Datei_soll);
fwrite($doc2, $was_in_die_Datei_soll);
Zwei mit einmal öffnen dürfte mit fopen nicht gehen.
MfG
-
Na da kannst du dann eine Funktion einbauen, um das um 10 zu erhöhen.
<script>
function plus10(){
var a;
a = window.document.Test.vorname.value;
a = a + 10;
window.document.Test.vorname.value = a;
}
</script>
Und dei OnClick kommt jetzt "plus10()" rein.
MfG:)
-
a = window.document.formularname.textarea.value;
a.replace("regexp","ersatz");
http://www.galileocomputing.de/openbook/javascript/javascript12.htm
Hier findest du eine Abhandlung über Reguläre Ausdrücke unter JavaScript.
Läuft alles aber erst ab IE 5.5 und NS 4.0
Mit Post und der Anweisung document.formularname.submit() in deiner Senden() Funtion wäre es einbfacher.
MfG
-
Dann versuch mal die Zeilenumbrüche in Javascript durch andere Zeichen zu erstezen, die du dann mit übergibst. Im PHP-Script kannst du dann ja <br> einfügen.
MfG
-
Textareainhalte sind eigentlich bei einer Übergabe per POST besser aufgehoben.
Hast du schon mal das auf der index.php3 versucht:
echo nl2br($HTTP_GET_VARS['beitrag']);
MfG
-
Hi,
hier findest du ein gutes Tutorial, wie man dieses Problem mit Hilfe von PHP, Session und MySQL lösen kann.
http://www.xtreme-php.de/tutorials/index.php?category=1&file=3&page=1
Wobei man die Session auch durch eine Datenbank ersetzen kann, die dann die Userdaten bis zum logout oder einem benutzerdefiniertem Timeout speichert.
Ich hoffe das hilft dir weiter.
MfG
-
Hi,
ich hab da ein kleines Problem mit dem Bootmanager unter FreeBSD 4.6.
Zur Konfiguration:
1. Platte (Primary Master), DOS
2. Platte (Primary Slave), UFS
DOS starten, alles IO und der Bootmanger stellt mir die Laufwerksauswahl bei jedem Start des Rechners zur Verfügung.
Wenn aber FreeBSD gelaufen ist, und der Rechner neu gestartet wurde, findet er keine Boot-Partition mehr. Mit Windows-Startdiskette rein, aktives Laufwerk auf Laufwerk 1 gestellt und neustart und siehe da der Bootmanager läuft wieder und weiss sogar noch was zuvor gestartet war. Ist zwar ne Lösung, aber keine besonders gute
Hab da schon alles Mögliche ausprobiert: Bootmanager auf:
- Platte 1
- Platte 2
- beide Platten
- keine (was ziemlich dumm war denn da lief nur noch DOS )
Aber jedes mal das selbe Theater nach dem FreeBSD gelaufen ist.
Hat jemand eine Idee, was da falsch konfiguriert sein könnte ?
Danke schonmal.
MfG
-
http://www.rz.uni-hohenheim.de/www/html/muenz/html-4.0/te.htm
Ne gute Objekt-Übersicht aus SelfHTML findet sich dort. Wenn man einmal die Objekt Hirarchie vestanden hat, ist alles ziemlich einfach, was die Zuordnung von werten innerhalb eines Dokumentes angeht.
Und hier noch ein komplettes Buch zum Thema:
http://www.galileocomputing.de/openbook/javascript/ wobei das
http://www.galileocomputing.de/openbook/javascript/javascript07.htm#Xxx613560
in dem Zusammenhang am Interesantesten sein sollte.
MfG
Sessions mit PHP
in Skript- und Webserverprogrammierung
Geschrieben
Das Cookie liegt auf dem Client. Es wird zum automatischen Login benutzt. Dürfte hier im Board auch so oder ähnlich laufen.
MfG