Hi!
Eine Abfrage wie:
<?php
...
$passwort = "testpw";
$ergebnis = mysql_query ("select kdnr from testtab where passwort like '$passwort' ");
...
(es folgt die while-Schleife)
echo $row->kdnr;
?>
funktioniert nicht mehr. Warum auch immer.
Beschreibe bitte "funktioniert nicht mehr" exakter, sonst kann man damit nichts anfagen.
Nun habe ich in der Abfrage lediglich das "kdnr" gegen "nick" ausgetauscht, und das klappt. Es scheint so, als ob - nach dem Löschen der 1. Spalte (id) - auf die neue 1. Spalte (kdnr) kein Zugriff mehr erfolgt. Keine Ahnung.
Du fragst im Beispiel lediglich eine Spalte ab und verwendest augenscheinlich die Funktion mysql_fetch_object(). Positionen im Abfrageergebnis spielen nur bei mysql_fetch_row() und mysql_fetch_array() eine Rolle.
Das war aber das einzigste, was nicht ging. Alle anderen Kombinationen mit Abfragen und Ausgaben gingen.
Einzig ist schon wenig genug, das kann man sinnvollerweise nicht steigern.
Eine session darf, solange ein Kunde online ist, nicht ablaufen. Auch nicht bei Inaktivität. Es kann ja sein, dass er gerade einen längeren Text liesst und anschliessend ein Formular ausfüllt. Und beim Absenden bekommt er dann die Nachricht, sich neu einzuloggen, da die Zeit abgelaufen ist. Nervig, weil die eingegebenen Daten weg sind.
Dann konfiguriere doch das Session-System so, dass der Garbage Collector nicht oder deutlich später zuschlägt, als die Default-Zeit ist.
Darum ein session-handler, der etwa so aussieht:
$konstante = $nickname; ($konstante wird von Skript zu Skript weitergegeben, entweder per input-hidden oder an links angehängt)
Du brauchst keine Zusatzkonstrukte, die Session-ID ist schon eindutig genug. Konfiguriere die Session einfach nach deinen Bedürfnissen. Beachte, dass du den session.save_path auf ein separates Verzeichnis stellst, wenn auf dem Server mehrere Anwendungen mit Sessions arbeiten, denn bei einem gemeinsamen Verzeichniss räumen die Garbage Collectoren mit anders eingestellten Werten auch deine Sessions vorzeitig weg.
Lo!