Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Probleme mit Nickpage für eine chat db [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Probleme mit Nickpage für eine chat db


 
SirLuce
20-06-2004, 13:07 
 
hallo erstmal,

bin zurzeit an einem projekt beteiligt das aus einem chat( mit db anbindung) besteht, nun arbeite ich gerade an der nickpage von dem chat.
nun gleich zu meinem problem.

wenn ich jetzt hier auf einen der aufgelisteten user klicke dann komm ich sofort zu der nickpage des users (die jeder sehen kann)

http://www.kropik.org/~markus/userliste.php

das problem bei der nickpage ist nun das ich die daten des user "xyz" nicht auslesen kann aus der db.

habe durch zusammenarbeit mit andren diesen code eingebaut in der nickpage



<?
$nick = $_POST["nick"];
$sqlbef = "SELECT * FROM `usertable` WHERE nick=$nick";
$sqlerg = mysql_query($sqlbef)or exit("fehlerhafter mysql befehl");
$anz = mysql_num_rows($sqlerg);


if($anz == 1){
$nick = mysql_result($sqlerg, $i, "nick");
$email = mysql_result($sqlerg, $i, "email");
$passwd = mysql_result($sqlerg, $i, "passwd");

?>
<p></p><p>

<strong>Hallo <? echo"$nick" ?> deine email lautet <? echo"$email" ?>!</strong></p>
<p><strong>dein Passwort lautet <? echo"$passwd" ?>.</strong></p>
<p></p>
<?
}else{

?>

<?php

}
mysql_close();

?>



was haben wir hier falsch gemacht?

mfg. lukas
danke schonmal

 
Coragon Rivito
20-06-2004, 13:15 
 
$sqlbef = ".. WHERE nick = '$nick'";

a) eigentlich müsstest du nen fehler bekommen, oder hast du uns den nur vorenthalten ?
b) passwörter ausgeben solltest du nicht einfach so

 
SirLuce
20-06-2004, 13:20 
 
ja wenn du dir die nickpage ansiehst kommt ein fehler

http://www.kropik.org/~markus/nickpage.php?nick=lukas

ähm das mit dem passwort ist mir schon klar, dies diehnt ja nur zum test.


ist dies falsch ?
$sqlbef = "SELECT * FROM `usertable` WHERE nick=$nick";

??

 
SirLuce
20-06-2004, 13:23 
 

 
Floriam
20-06-2004, 13:26 
 
mysql_error() und mysql_errno() sind dein Freund ;)

Bei Fragen, schau ins Manual :)


Achja: Du solltest eigentlich keine Passwörter ausgeben können, da man alle Passwörter immer mit md5() verschlüsselt in der Datenbank speichert. Damit niemand der deine Datenbank hackt alle Passwörter hat :)

 
SirLuce
20-06-2004, 13:31 
 
kannst du mir das bitte genauer erklären ?

bzw. wo könnte der fehler liegen ?

das passwort ist nicht md5 geschützt da es aus einer chat db ist.

 
Coragon Rivito
20-06-2004, 13:34 
 
genial. uns so aufschlussreich:
=> fehlerhafter mysql befehl

kann niemand behaupten er hätte keine fehlerabfrage ;)

 
SirLuce
20-06-2004, 13:37 
 
du sprichst in rätseln...

 
derHund
20-06-2004, 14:00 
 
Original geschrieben von SirLuce
du sprichst in rätseln... du sollst mysql_error() benutzen, um im fehlerfalle eine aussagekräftige fehlermeldung zu erhalten.

 
SirLuce
20-06-2004, 14:42 
 
habe das jetzt so in der db.php eingetragen



<?
$db="xx";
$server="xx";
$user="xx";
$pass="xx";

$conn_id=mysql_connect($server, $user ,$pass) OR DIE("Die Verbindung zum MySQL-Server ist fehlgeschlagen!!!");
@mysql_select_db($db) OR DIE("Die Datenbank ($db) kann zurzeit nicht erreicht werden! <br>Bitte wenden Sie sich an den Admin unter lukas@kropik.org</br>");
$result = mysql_query("SELECT * FROM usertable"); if($result) { echo mysql_num_rows($result); } else{ echo "Fehler-Nr. " . mysql_errno()." - " .mysql_error(); }
?>


!! usertable !! so heist die tabelle!

was dabei rausgekommen ist sieht man hier!
http://www.kropik.org/~markus/nickpage.php?nick=

und was sagt uns das jetzt ?!

lg. luki

 
derHund
20-06-2004, 14:54 
 
und was sagt uns das jetzt ?!
das sage ich dir nicht, da du sonst beleidigt abziehst ...

nee, im ernst. die 4 scheint vom num_rows zukommen?
machs uns doch nicht so schwer.

poste doch fehlermeldungen und ergebnisse hier im forum. danke.

 
Floriam
20-06-2004, 15:00 
 
Okay, so würde ich es machen:

$query = mysql_query($sql) or die(mysql_errno().': '.mysql_error());

 
TobiaZ
20-06-2004, 15:03 
 
n paar grundlagen brauchts halt schon zum programmieren. wenn ich sehe, dass ich unverschlüsselte Passwörter benutzt, solltet ihr es vielleicht doch besser sein lassen. vorallem, wenn man angeblich "websolutions" vertreibt.

wie siehts jetzt mit dem sql-fehler aus? wurd ja oft genug nach gefragt!

und brecht den code mal bitte um, kann ja nicht sein, dass ich selbst mit ner widescreen-auflösung hier noch scrollen muss.

 
SirLuce
20-06-2004, 15:14 
 
@TobiaZ das ist weder meine db noch meine comm. an der ich arbeite. diese chat db ist eine bestehende datenbank eines chats und daher auch nicht mit einem md5 pw geschützt ... aber ich denke das kann egal sein.

....
also der fehler:
1065: Leere Abfrage.
....

habe mit einem kollegen gesprochen der meinte ebenfalls das dieser datensatz nicht zu erreichen ist.

 
TobiaZ
20-06-2004, 15:39 
 
setzt lukas mal wie es sich gehört in anführungszeichen! logisch.

naja, deinem cheffe und dir mag das mit den passwörtern egal sein. ABER wenn ich ein user wäre, wäre mir das nicht egal. werde also mal ein auge offen halten nach seiten von "kropik "websolutions"". meine pws sollten schließlich geheim bleiben,

 
SirLuce
20-06-2004, 15:44 
 
@TobiaZ irgentwie verstehst du nicht ganz meine worte!
das ist weder mein projekt noch meine comm, ich mache nur aus "spaß und lust" dortn die formulare, ob die eine md5 verschlüsselung haben oder nicht kann mir egal sein, darauf hingewiesen habe ich sie von anfang an. nur ist dies eben mit dem chatsystem kaum möglich. und geht mich auch weiter nichts an!

 
SirLuce
20-06-2004, 15:45 
 
Danke an alle die mir helfen wollten!
habe das Problem selbst lösen können!

lg. lukas

 
TobiaZ
20-06-2004, 15:47 
 
mir solls auch egal sein. nur wenn ich irgendwo die finger drin hab, mach ich meine sachen vernünftig...

darauf hingewiesen habe ich sie von anfang an. was ich bezweifle, wenn ich die sql-anfragen so ansehe...

nur ist dies eben mit dem chatsystem kaum möglich. was ich genauso nicht glaube...

Aber wie gesagt. ist nicht meine sache... <EOT> Meinerseits

 
TobiaZ
20-06-2004, 15:54 
 
Poste doch bitte noch die Lösung für suchende User...

 
Coragon Rivito
20-06-2004, 16:02 
 
@ tobiaz
die lösung steht gleich in meinem ersten post ..
er übergab den $nick in der query ohne anführungszeichen => wird falsch verwertet und kann nicht funktionieren

 
TobiaZ
20-06-2004, 16:06 
 
mir ist das klar:setzt lukas mal wie es sich gehört in anführungszeichen! logisch.

Fnds nur besser, wenn die Threaderöffner nachher auch die Lösung posten wenn sie das Problem selbst lösen konnten...

 
SirLuce
20-06-2004, 16:13 
 
das problem lag ganz wo anderst
sowie hier die `nick`
SELECT * FROM `usertable` WHERE `nick` = '$nick'

@TobiaZ du kannst ganz schön nerfen mit deiner md5 verschlüsselung.
du kannst dich ja gerne bei denen melden und es besser machen!
bis auf unötiges lästern konntest du nichts nützliches rüberbringen ist mir aufgefallen!

danke an die mir geholfen haben!

 
TobiaZ
20-06-2004, 18:01 
 
ob das nick jetzt in backticks steht oder nicht, ist hierbei wohl eher zweitrangig... Der Fehler war der, der von CR in der ersten Antwort genannt wurde.

Rumlästern tu ich mit sicherheit nicht. Aber dass es sich hier um ein potentielles Sicherheitsloch handelt, sollte wohl klar sein.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:25 Uhr.