Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Fragen zu Chat

Diskussion: Fragen zu Chat im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Ich habe einige Fragen ich habe mir eine art shoutbox programmiert und habe nun einige fragen: 1.) Ich habe ...

Antwort
Alt 10.09.07, 22:33   #1 (permalink)
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard Fragen zu Chat

Anzeige

Ich habe einige Fragen ich habe mir eine art shoutbox programmiert
und habe nun einige fragen:
1.) Ich habe alle nick names + pw's in der php datei gespeichert welche testet ob name + pw stimmen, wie kann ich das ganze mit einer mysql datenbank verknüpfen dass nick + pw gelesen wird (aus der datenbank)und dass jeder user dann eine bestimmte seite geleitet wird?

2.) Wie funktionieren überhaupt sessions also wie mache ich dass ein user angemeldet bleibt?

3.) Ich speichere alle eingaben immoment in ein textfile wie schaffe ich es dass sie in die MYSQl Datenbank kommen und dass das letzte immer wieder gelöscht wird

4.) wie erstelle ich eine liste wer online ist (wenn das mit den sessions klapppt?!)

ich erwarte keine vollstänigen lösungen sonder eher hilfen..
im voraus danke
mfg virus

edit: ich kann das ganze mal hochladen dass ihr es euch durchschaut aber nur wenn jemand daran intresse hat...

Virus ist offline   Mit Zitat antworten
Alt 10.09.07, 22:44   #2 (permalink)
 
Registriert seit: 25.07.06
valenterry Leistung: Facit NTK
Likes: 0
Standard RE: Fragen zu Chat

Zitat:
Original von Virus
Ich habe einige Fragen ich habe mir eine art shoutbox programmiert
und habe nun einige fragen:
1.) Ich habe alle nick names + pw's in der php datei gespeichert welche testet ob name + pw stimmen, wie kann ich das ganze mit einer mysql datenbank verknüpfen dass nick + pw gelesen wird (aus der datenbank)und dass jeder user dann eine bestimmte seite geleitet wird?
Da solltest du alles finden: http://tut.php-quake.net/

Zitat:
2.) Wie funktionieren überhaupt sessions also wie mache ich dass ein user angemeldet bleibt?
Sessions findest du auf der oben angegebenen Seite. Du solltest die Session allerdings in cookies speichern.

Zitat:
4.) wie erstelle ich eine liste wer online ist (wenn das mit den sessions klapppt?!)
Das geht nicht mit HTML und PHP alleine.
valenterry ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 10.09.07, 22:48   #3 (permalink)
 
Registriert seit: 08.11.05
Manuel Leistung: Facit NTK
Manuel eine Nachricht über ICQ schicken
Likes: 0
Standard RE: Fragen zu Chat

Zitat:
Original von valenterry
Zitat:
Original von Virus
4.) wie erstelle ich eine liste wer online ist (wenn das mit den sessions klapppt?!)
Das geht nicht mit HTML und PHP alleine.
Naja indirekt gehts schon: Ich machs zB so, dass ich einfach immer wenn wer mit seiner Session irgendeine Seite aufruft wird der aktuelle Timestamp in die Datenbank zusammen mit dem Namen des Users geschrieben. Und auf der Hauptseite werden einfach alle als Online angezeigt, deren Timestamp größer als die aktuelle zeit - 5 Minuten ist, folglich alle die innerhalb der letzten 5 Mins on waren.

So funktioniert das auch im phpBB, deswegen steht da auch immer "User, die in den letzten 5 Minuten aktiv waren"

Manuel
Manuel ist offline   Mit Zitat antworten
Alt 10.09.07, 22:49   #4 (permalink)
ba2
Guest
 
Likes:
Standard

Zitat:
4.) wie erstelle ich eine liste wer online ist (wenn das mit den sessions klapppt?!)
Das geht nicht mit HTML und PHP alleine.
warum soll das mit PHP nicht gehen

mann kann ganz einfach in einer Datenbank die letzte Aktivität des Users speichern und alle User die zB in den letzten 5 Minuten Aktiv waren per DB Abfrage ausgeben

EDIT:
Manuel war schneller ^^
  Mit Zitat antworten
Alt 10.09.07, 22:52   #5 (permalink)
 
Registriert seit: 25.07.06
valenterry Leistung: Facit NTK
Likes: 0
Standard

Ja, man kann gucken, ob der User in den _letzten 5 Minuten_ aktiv _war_, aber _nicht_, ob er _im moment_ gerade aktiv _ist_ und sich gerade etwas durchliest.
Dafür ist HTTP nunmal nicht geschaffen.

PS: Ja, ich mag _Unterstriche_
valenterry ist offline   Mit Zitat antworten
Alt 11.09.07, 14:06   #6 (permalink)
 
Registriert seit: 06.08.07
jumpa Leistung: Facit NTK
Likes: 0
Standard

Pass auf

PHP-Code:

<?php
    
//mysql verbindung aufbauen
    
    //name = name des users
    
$name "Jumpa";
    
//pass = passwort des users
    
$pass "Test";
    
$users mysql_query("SELECT * FROM users WHERE name = '$name'") or         die(mysql_error());
    while(
$fetch mysql_fetch_assoc($select)) {
        if(
$fetch["pass"] != $pass) {
            echo 
"<p>Das angegebene Passwort stimmt nicht</p>";
         } else {
            
session_start();
            
//auf eine Seite weiterleiten
            
header("location: index.php");
         }
     }
?>
jumpa ist offline   Mit Zitat antworten
Alt 11.09.07, 15:01   #7 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Zitat:
Original von jumpa
Pass auf

PHP-Code:

<?php
    
//mysql verbindung aufbauen
    
    //name = name des users
    
$name "Jumpa";
    
//pass = passwort des users
    
$pass "Test";
    
$users mysql_query("SELECT * FROM users WHERE name = '$name'") or         die(mysql_error());
    while(
$fetch mysql_fetch_assoc($select)) {
        if(
$fetch["pass"] != $pass) {
            echo 
"<p>Das angegebene Passwort stimmt nicht</p>";
         } else {
            
session_start();
            
//auf eine Seite weiterleiten
            
header("location: index.php");
         }
     }
?>
Also das ist ja mal gar nicht schön! So sollte man das auf keinen Fall machen.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 11.09.07, 15:13   #8 (permalink)
 
Registriert seit: 08.11.05
Manuel Leistung: Facit NTK
Manuel eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von BasicAvid
Also das ist ja mal gar nicht schön! So sollte man das auf keinen Fall machen.
Dann hätteste wenigstens gleich dazuschreiben können was verbesserungsfähig ist:
1. da is SQL Injection möglich
2. das PW is unverschlüsselt in der DB

macht man
PHP-Code:


<?php
    
//mysql verbindung aufbauen
    
    //name = name des users
    
$name mysql_escape_string("Jumpa");
    
//pass = passwort des users
    
$pass =  md5("Test");
    
$users mysql_query("SELECT * FROM users WHERE name = '$name'") or         die(mysql_error());
    while(
$fetch mysql_fetch_assoc($select)) {
        if(
$fetch["pass"] != $pass) {
            echo 
"<p>Das angegebene Passwort stimmt nicht</p>";
         } else {
            
session_start();
            
//auf eine Seite weiterleiten
            
header("location: index.php");
         }
     }
?>
draus isses doch annehmbar
Manuel ist offline   Mit Zitat antworten
Alt 11.09.07, 17:06   #9 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Dazu hatte ich keine Zeit. Ist aber immer noch nicht die feine Englische Art.

1) Der User sollte keine direkten mysql_error Meldungen bekommen

und

2) Eine Schleife zu benutzen um zu sehen ob das Passwort stimmt ist nicht gerade schön.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 11.09.07, 17:37   #10 (permalink)
 
Registriert seit: 08.11.05
Manuel Leistung: Facit NTK
Manuel eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von BasicAvid
Dazu hatte ich keine Zeit. Ist aber immer noch nicht die feine Englische Art.

1) Der User sollte keine direkten mysql_error Meldungen bekommen

und

2) Eine Schleife zu benutzen um zu sehen ob das Passwort stimmt ist nicht gerade schön.
Zu 1.: Stimmt, aber die groben Sicherheitsprobleme sind damit schonmal gelößt
Hab ja auch geschrieben dass es ganz annehmbar is..

Zu 2: Kommt drauf an ob Doppelbelegung des Loginnamens möglich is, wenns jetzt mehrere Jumpas gibt, die aber eine verschiedene ID haben, ist die Schleife auf jedenfall notwendig.

Manuel
Manuel ist offline   Mit Zitat antworten
Alt 11.09.07, 18:11   #11 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

Danke mit so viel hilfe hab ich net gerechnet ihr habt mir SEHR viel weitergeholfen
aber jetzt hab ich schon wieder ein prob

Code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="chat.css">
</head>
<body>
<h3>NAME/h3>
<?php
/* Datei mit chat Daten auslesen */
mysql_connect("localhost", "*******", "*********");
mysql_select_db("********");
$res = mysql_query("select * from daten
	order by zeit desc");

if(mysql_num_rows($res)>0)
	echo "<table>";
	echo "<tr><td><b>Zeit</b></td>";
	echo "<td><b>Name</b></td>";
	echo "<td><b>Beitrag</b></td></tr>";

	while($dsatz = mysql_fetch_assoc($res))
{
	$z = $dsatz["zeit"];
	$zs = substr($z,6,2) . "."
 	 . substr($z,4,2) . "."
	 . substr($z,2,2) . " "
	 . substr($z,8,2) . ":"
	 . substr($z,10,2) . ":"
	 . substr($z,12,2);
	echo "<tr>";
	echo "<td>$zs</td>";
	echo "<td>" . $dsatz["nick"] . "</td>";
	echo "<td>" . $dsatz["beitrag"] . "</td>";
	echo "</tr>";
}
	echo "</table>";

?>
</body>
</html>
was mache ich falsch???

mfg virus
PS: nochma danke
Virus ist offline   Mit Zitat antworten
Alt 11.09.07, 18:52   #12 (permalink)
Moderator
 
Benutzerbild von PuppE
 
Registriert seit: 13.12.04
PuppE Leistung: Facit NTK
Likes: 0
Standard

Wie wärs mal wenn du den Fehler besser beschreiben würdest? Fehlermeldungen etc. wären sicher sehr hilfreich!
__________________
[Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.]
PuppE ist offline   Mit Zitat antworten
Alt 11.09.07, 19:39   #13 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

oh sry also dieses script ist dafür da in einem frame die bisher geposteten meldung auszugeben jedoch tauchen dabei immer fehler mit den angegebenen mysql befehlen auf...

Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/moritzknaut/CLUSTER2/chat_aus.php on line 14

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/moritzknaut/CLUSTER2/chat_aus.php on line 20
gruß virus
Virus ist offline   Mit Zitat antworten
Alt 11.09.07, 20:18   #14 (permalink)
 
Registriert seit: 06.08.07
jumpa Leistung: Facit NTK
Likes: 0
Standard

Füg in Zeile 11, hinter der mysql_query() einfach ein or die(mysql_error()) ein.

Ist zwar nicht sauber, aber du siehst den Fehler, kannst ihn beheben, und dann or die(mysql_error()) wieder rausnehmen.
jumpa ist offline   Mit Zitat antworten
Alt 11.09.07, 20:48   #15 (permalink)
Themenstarter
 
Registriert seit: 16.11.06
Virus Leistung: Facit NTK
Virus eine Nachricht über ICQ schicken
Likes: 0
Standard

danke hat gefunzt...
aber jetzt hab ich schon des nächste problem
und zwar hab ich bei mir bei diesem script

Code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="chat.css">
<script type="text/javascript">
/* Beitrag senden falls Name und Beitrag vorhanden */
function send()
{ 
	if(document.f.nick.value != "" &&
	document.f.beitrag.value != "")
	document.f.submit();
}
/* Chat-Anzeige aktualisieren */
function reload()
{
parent.ausgabe.location = "chat_aus.php";
</script>
</head>
<body>
<?php 
/* Anhängen des neuen Textes, falls vorhanden */
if(isset($beitrag))
{
mysql_connect("*******", "********", "*******");
mysql_select_db("MoritzKnaut");
mysql_query("insert daten (nick, beitrag)
	values ('$nick', '$beitrag')");
/* Chat-Anzeige aktualisieren */
	echo "script type='text/javascript'>";
	echo "reload();</script>";
}
?>
<form name="f" action="chat_ein.php" method="post">
<table>
	<tr>
	<td> Ihr Name:</td>
	<td><input name="nick">
	<?php if(isset($nick))
		echo "value='$nick'"; ?>
	<size="20"></td>
	<td align="center">
	<a href="javascript:reload() ;">Chat laden</a>
	</td>
	<td align="right">
	<a href="javascript:send() ;">Senden</a>
	</td>
	</tr>
	<tr>
	<ts valign="top">Ihr Beitrag:</td>
	<td colspan="3">
	<textarea cols="50" rows="2"
		name="beitrag"></textarea>
	</td>
	</tr>
</table>
</form>
</body>
</html>
und das problem ist wenn ich die java scriptfunfktion send oder reload verwenden will passiert einfach nichts es bleibt alles so wie es war..??
wie kann dass sein ich habe alles überprüft aber finde den fehler mal wieder nicht...
hoffe dass ihr mir helfen könnt..

gruß virus

selber gelöst!!^^ hab nur ne klammer vergessen...
aber jetzt gibts schon wieder ein problem er aktualisiert zwar aber er sendet nicht
er zeigt mir nur über dem eingabe feld für den name
Das
Code:
script type='text/javascript'>reload();"
an?!
was könnte dass jetzt sein?ß
Ich weiß ich bin schwierig aber ich tue was ich kann um meine fehler zu vermeiden jedoch bin ich halt bei php noch nicht so weit...
gruß virus
Virus ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Fragen zu Chat
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einfaches Adressbuch in C++ , Fragen über Fragen ... :) TeeKayo2 Code Kitchen 9 22.10.05 17:06
Chat MrSwissi Windows 2 07.09.04 20:45
chat Hackerstyle Applikationen 0 16.07.04 16:46
Fragen über Fragen Watchme Fun Section 16 21.04.02 05:39
IRC DCC CHAT EMO Die Problemzone 0 04.01.02 04:52


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61