phpbar.de logo

Mailinglisten-Archive

AW: [php] [php]nochmal sessions

AW: [php] [php]nochmal sessions

tobias php_(at)_phpcenter.de
Wed, 11 Apr 2001 09:47:41 +0200


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_001_01C0C25B.AFE05D00
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hallo,

ich habe folgendes Problem:

Ich versuche auf eine mySQl-Datenbank zuzugreifen. Dies ist der
Quelltext meiner Abfrage:

<html><body><div align=3D"center">
<?
$db =3D mysql_connect("localhost","root");
mysql_select_db("mailconfig",$db);
$result =3D mysql_query("SELECT * FROM kunden",$db);
?>
<table border=3D"1" cellspacing=3D"0" cellpadding=3D"3" =
align=3D"center">
<tr>
<td><b>ID</b></td>
<td><b>Name</b></td>
<td><b>Firma</b></td>
<td><b>Herr(0)/Frau(1)</b></td>
<td><b>e-mail</b></td>
<td><b>Tel</b></td>
<td><b>Strasse</b></td>
<td><b>Handy</b></td>
<td><b>PLZ</b></td>
<td><b>Ort</b></td>
</tr>
<? while ($daten =3D mysql_fetch_array($result)) { ?>
<tr>
<td><? echo $daten[KID]; ?></td>
<td><? echo $daten[name]; ?></td>
<td><? echo $daten[firma]; ?></td>
<td><? echo $daten[anrede]; ?></td>
<td><? echo '<a =
href=3D"mailto:'.$daten[email].'">'.$daten[email].'</a>';
?></td>
<td><? echo $daten[tel]; ?></td>
<td><? echo $daten[strasse]; ?></td>
<td><? echo $daten[mobil]; ?></td>
<td><? echo $daten[plz]; ?></td>
<td><? echo $daten[ort]; ?></td>
</tr>
<? } ?>
</table></div></body></html>

Doch dann kommt folgende Ausgabe:

Warning: Supplied argument is not a valid MySQL result resource in
/customer/websites/mailconfig/htdocs/dev/uebersicht.php on line 25

Woran mags liegen?

W=FCrde mich =FCber eine Antwort freuen.

Mit freundlichen Gr=FC=DFen

Tobias Pusch


-----Urspr=FCngliche Nachricht-----
Von: Thomas Beckmann [mailto:beckmann_(at)_gis.de]
Gesendet: Mittwoch, 11. April 2001 09:22
An: php_(at)_phpcenter.de
Betreff: Re: [php] [php]nochmal sessions


>> > Mach' einen logout-Knopf, mit dem Du den Eintrag in der DB wieder
>> > l=F6scht. Wenn der user sich einloggt, pr=FCfst Du, ob ein =
DB-Eintrag
>> > vorhanden ist, wenn ja, verweigerst Du das login, bzw. zwingst =
ihn,
>> > sich erst auszuloggen.
>> >=20
>> Mein Ansatz war schon so =E4hnlich. Hatte allerdings meine Zweifel =
weil
ich
>> nicht wei=DF, wie man den db-Eintrag mit der session-id wieder =
l=F6schen
kann, wenn
>> der user den Browser einfach per X-klick verl=E4sst statt den
logout-button zu
>> klicken! Meinst Du das er f=FCr den Fall einfach in der =
login-tabelle
stehen
>> bleibt und beim n=E4chsten login gezwungen wird sich erstmal
auzuloggen?=20
Ja, das meine ich.
>
>Im PHP Manual ist die ignore_user_abort() Funktion (bei Misc zu=20
>finden) beschrieben und im Features Teil gibts ein Kapitel zu
"Connection
>Handling". Vielleicht gehts damit? Ich selber hatte noch nicht die =
Zeit

>damit rumzuspielen.
Ja, Egon, das hab' ich auch, als Claudia gefragt hat, sofort gedacht,
ich hab' selber auch noch nichts damit gemacht, mir scheint aber, da=DF
das nur bedeutet, da=DF das *laufende* script zuende abgearbeitet wird,
nicht, da=DF bei einem abort ein anderes script angestossen werden kann
(das die db aufr=E4umt). Die Diskussion gab' hier in Variationen ja
schon mehrfach.
Was man anscheinend machen kann, ist die session zu modifizieren, da
gibt's doch session_set_save_handler(), wo man eine garbage-collection
machen kann, wenn die session zerst=F6rt wird. Im Zusammenspiel mit
session.gc_maxlifetime sollte dann ein automatisches Ausloggen nach
einiger Zeit m=F6glich sein.
Wenn Du das timeout aber zu knapp setzt, wird die session uU noch "im
Betrieb" zerst=F6rt, wenn Du's zu lang setzt, n=FCtzt's nix, und =
au=DFerdem
hast Du immer noch das Problem der gleichzeitigen Einlogger - der
Aufwand scheint mir ungerechtfertig - soll'n dann doch die user sich
erst einmal ausloggen - das k=F6nnte man bei einem erneuten login ja
auch automatisch machen (allerdings w=FCrde das dann eventuell zu
erstaunten Gesichtern f=FChren, wenn pl=F6tzlich die session auf dem
anderen task tot ist, und man seine =C4nderungen in die FAQ schreiben
will ...)
>
>--=20
>LinuxTag, Stuttgart, Germany: July 5-8 2001: http://www.linuxtag.de/
>All known books about PHP and related books: http://php.net/books.php=20
>Concert Band of the University of Hohenheim:
http://www.concert-band.de/
>First and second bestselling book in German: http://www.php-buch.de/


---
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de
--=20
** http://www.php-center.de **
Die PHP-Liste: mailto: php_(at)_phpcenter.de
http://lists.phpcenter.de/mailman/listinfo/php

------ =_NextPart_001_01C0C25B.AFE05D00
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.1960.3">
<TITLE>AW: [php] [php]nochmal sessions</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2>Hallo,</FONT>
</P>

<P><FONT SIZE=3D2>ich habe folgendes Problem:</FONT>
</P>

<P><FONT SIZE=3D2>Ich versuche auf eine mySQl-Datenbank zuzugreifen. =
Dies ist der Quelltext meiner Abfrage:</FONT>
</P>

<P><FONT SIZE=3D2>&lt;html&gt;&lt;body&gt;&lt;div =
align=3D&quot;center&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;?</FONT>
<BR><FONT SIZE=3D2>$db =3D =
mysql_connect(&quot;localhost&quot;,&quot;root&quot;);</FONT>
<BR><FONT SIZE=3D2>mysql_select_db(&quot;mailconfig&quot;,$db);</FONT>
<BR><FONT SIZE=3D2>$result =3D mysql_query(&quot;SELECT * FROM =
kunden&quot;,$db);</FONT>
<BR><FONT SIZE=3D2>?&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;table border=3D&quot;1&quot; =
cellspacing=3D&quot;0&quot; cellpadding=3D&quot;3&quot; =
align=3D&quot;center&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;tr&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;ID&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;Firma&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT =
SIZE=3D2>&lt;td&gt;&lt;b&gt;Herr(0)/Frau(1)&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT =
SIZE=3D2>&lt;td&gt;&lt;b&gt;e-mail&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;Tel&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT =
SIZE=3D2>&lt;td&gt;&lt;b&gt;Strasse&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;Handy&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;PLZ&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;b&gt;Ort&lt;/b&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;/tr&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;? while ($daten =3D mysql_fetch_array($result)) =
{ ?&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;tr&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[KID]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[name]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[firma]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[anrede]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo '&lt;a href=3D&quot;<A =
HREF=3D"mailto:'.$daten" =
TARGET=3D"_blank">mailto:'.$daten</A>[email].'&quot;&gt;'.$daten[email].=
'&lt;/a&gt;'; ?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[tel]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[strasse]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[mobil]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[plz]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;td&gt;&lt;? echo $daten[ort]; =
?&gt;&lt;/td&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;/tr&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;? } ?&gt;</FONT>
<BR><FONT =
SIZE=3D2>&lt;/table&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</FONT>
</P>

<P><FONT SIZE=3D2>Doch dann kommt folgende Ausgabe:</FONT>
</P>

<P><FONT SIZE=3D2>Warning: Supplied argument is not a valid MySQL =
result resource in =
/customer/websites/mailconfig/htdocs/dev/uebersicht.php on line =
25</FONT></P>

<P><FONT SIZE=3D2>Woran mags liegen?</FONT>
</P>

<P><FONT SIZE=3D2>W=FCrde mich =FCber eine Antwort freuen.</FONT>
</P>

<P><FONT SIZE=3D2>Mit freundlichen Gr=FC=DFen</FONT>
</P>

<P><FONT SIZE=3D2>Tobias Pusch</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>-----Urspr=FCngliche Nachricht-----</FONT>
<BR><FONT SIZE=3D2>Von: Thomas Beckmann [<A =
HREF=3D"mailto:beckmann_(at)_gis.de" =
TARGET=3D"_blank">mailto:beckmann_(at)_gis.de</A>]</FONT>
<BR><FONT SIZE=3D2>Gesendet: Mittwoch, 11. April 2001 09:22</FONT>
<BR><FONT SIZE=3D2>An: php_(at)_phpcenter.de</FONT>
<BR><FONT SIZE=3D2>Betreff: Re: [php] [php]nochmal sessions</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>&gt;&gt; &gt; Mach' einen logout-Knopf, mit dem Du =
den Eintrag in der DB wieder</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; &gt; l=F6scht. Wenn der user sich einloggt, =
pr=FCfst Du, ob ein DB-Eintrag</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; &gt; vorhanden ist, wenn ja, verweigerst Du =
das login, bzw. zwingst ihn,</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; &gt; sich erst auszuloggen.</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; &gt; </FONT>
<BR><FONT SIZE=3D2>&gt;&gt; Mein Ansatz war schon so =E4hnlich. Hatte =
allerdings meine Zweifel weil ich</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; nicht wei=DF, wie man den db-Eintrag mit =
der session-id wieder l=F6schen kann, wenn</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; der user den Browser einfach per X-klick =
verl=E4sst statt den logout-button zu</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; klicken! Meinst Du das er f=FCr den Fall =
einfach in der login-tabelle stehen</FONT>
<BR><FONT SIZE=3D2>&gt;&gt; bleibt und beim n=E4chsten login gezwungen =
wird sich erstmal auzuloggen? </FONT>
<BR><FONT SIZE=3D2>Ja, das meine ich.</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt;Im PHP Manual ist die ignore_user_abort() =
Funktion (bei Misc zu </FONT>
<BR><FONT SIZE=3D2>&gt;finden) beschrieben und im Features Teil gibts =
ein Kapitel zu &quot;Connection</FONT>
<BR><FONT SIZE=3D2>&gt;Handling&quot;. Vielleicht gehts damit? Ich =
selber hatte noch nicht die Zeit </FONT>
<BR><FONT SIZE=3D2>&gt;damit rumzuspielen.</FONT>
<BR><FONT SIZE=3D2>Ja, Egon, das hab' ich auch, als Claudia gefragt =
hat, sofort gedacht,</FONT>
<BR><FONT SIZE=3D2>ich hab' selber auch noch nichts damit gemacht, mir =
scheint aber, da=DF</FONT>
<BR><FONT SIZE=3D2>das nur bedeutet, da=DF das *laufende* script zuende =
abgearbeitet wird,</FONT>
<BR><FONT SIZE=3D2>nicht, da=DF bei einem abort ein anderes script =
angestossen werden kann</FONT>
<BR><FONT SIZE=3D2>(das die db aufr=E4umt). Die Diskussion gab' hier in =
Variationen ja</FONT>
<BR><FONT SIZE=3D2>schon mehrfach.</FONT>
<BR><FONT SIZE=3D2>Was man anscheinend machen kann, ist die session zu =
modifizieren, da</FONT>
<BR><FONT SIZE=3D2>gibt's doch session_set_save_handler(), wo man eine =
garbage-collection</FONT>
<BR><FONT SIZE=3D2>machen kann, wenn die session zerst=F6rt wird. Im =
Zusammenspiel mit</FONT>
<BR><FONT SIZE=3D2>session.gc_maxlifetime sollte dann ein automatisches =
Ausloggen nach</FONT>
<BR><FONT SIZE=3D2>einiger Zeit m=F6glich sein.</FONT>
<BR><FONT SIZE=3D2>Wenn Du das timeout aber zu knapp setzt, wird die =
session uU noch &quot;im</FONT>
<BR><FONT SIZE=3D2>Betrieb&quot; zerst=F6rt, wenn Du's zu lang setzt, =
n=FCtzt's nix, und au=DFerdem</FONT>
<BR><FONT SIZE=3D2>hast Du immer noch das Problem der gleichzeitigen =
Einlogger - der</FONT>
<BR><FONT SIZE=3D2>Aufwand scheint mir ungerechtfertig - soll'n dann =
doch die user sich</FONT>
<BR><FONT SIZE=3D2>erst einmal ausloggen - das k=F6nnte man bei einem =
erneuten login ja</FONT>
<BR><FONT SIZE=3D2>auch automatisch machen (allerdings w=FCrde das dann =
eventuell zu</FONT>
<BR><FONT SIZE=3D2>erstaunten Gesichtern f=FChren, wenn pl=F6tzlich die =
session auf dem</FONT>
<BR><FONT SIZE=3D2>anderen task tot ist, und man seine =C4nderungen in =
die FAQ schreiben</FONT>
<BR><FONT SIZE=3D2>will ...)</FONT>
<BR><FONT SIZE=3D2>&gt;</FONT>
<BR><FONT SIZE=3D2>&gt;-- </FONT>
<BR><FONT SIZE=3D2>&gt;LinuxTag, Stuttgart, Germany: July 5-8 2001: <A =
HREF=3D"http://www.linuxtag.de/" =
TARGET=3D"_blank">http://www.linuxtag.de/</A></FONT>
<BR><FONT SIZE=3D2>&gt;All known books about PHP and related books: <A =
HREF=3D"http://php.net/books.php" =
TARGET=3D"_blank">http://php.net/books.php</A> </FONT>
<BR><FONT SIZE=3D2>&gt;Concert Band of the University of Hohenheim: <A =
HREF=3D"http://www.concert-band.de/" =
TARGET=3D"_blank">http://www.concert-band.de/</A></FONT>
<BR><FONT SIZE=3D2>&gt;First and second bestselling book in German: <A =
HREF=3D"http://www.php-buch.de/" =
TARGET=3D"_blank">http://www.php-buch.de/</A></FONT>
</P>
<BR>

<P><FONT SIZE=3D2>---</FONT>
<BR><FONT SIZE=3D2>Thomas Beckmann, Kiel, Germany</FONT>
<BR><FONT SIZE=3D2>beckmann_(at)_gis.de</FONT>
<BR><FONT SIZE=3D2>-- </FONT>
<BR><FONT SIZE=3D2>** <A HREF=3D"http://www.php-center.de" =
TARGET=3D"_blank">http://www.php-center.de</A> **</FONT>
<BR><FONT SIZE=3D2>Die PHP-Liste: mailto: php_(at)_phpcenter.de</FONT>
<BR><FONT SIZE=3D2><A =
HREF=3D"http://lists.phpcenter.de/mailman/listinfo/php" =
TARGET=3D"_blank">http://lists.phpcenter.de/mailman/listinfo/php</A></FO=
NT>
</P>

</BODY>
</HTML>
------ =_NextPart_001_01C0C25B.AFE05D00--


php::bar PHP Wiki   -   Listenarchive