php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.08.2005, 17:06  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard Datenbank prüfen, bitte um Hilfe!

Hi alle zusammen,
also ich habe für meine Page nun ne Buddyliste gemacht. Hier zeige ich euch mal wie ich dei Einträge in die DB schreibe!
PHP-Code:
<?php
## BUDDYLISTE
## Copyright by Dennis Schirra
## [url]http://www.grayhounders.de[/url]  
if($userid=="$myid") {
?>
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="2" style="BORDER-RIGHT: #8D8D8D 1px solid; BORDER-TOP: #8D8D8D 1px solid; PADDING-LEFT: 1px; BACKGROUND: #ffffff; BORDER-LEFT: #8D8D8D 1px solid; BORDER-BOTTOM: #8D8D8D 1px solid;">
  <tr> 
    <td bgcolor="FBFAFB"> [b]Sorry aber du kannst dich nicht in deine eigene Liste einfügen!

      [/b][ [url="index.php?show=users&userid=<?php print $userid?>"]Zur&uuml;ck[/url] ]</td>
  </tr>
  <tr> </tr>
  <tr> </tr>
</table>
<?php } else {
$userid $_GET["userid"];
$add="INSERT INTO buddys(buddy, fromuser) VALUES ('$userid', '$myid')";
$sqlaction=mysql_query($add);  
?>
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="2" style="BORDER-RIGHT: #8D8D8D 1px solid; BORDER-TOP: #8D8D8D 1px solid; PADDING-LEFT: 1px; BACKGROUND: #ffffff; BORDER-LEFT: #8D8D8D 1px solid; BORDER-BOTTOM: #8D8D8D 1px solid;">
  <tr> 
    <td bgcolor="FBFAFB"> [b]Der User 
      <?php 
$sql1
="SELECT * FROM users where id='$userid'";
$data=mysql_query($sql1$db);
while (
$users mysql_fetch_object ($data)) { print $users->nick; } ?>
      wurde erfolgreich in deine Buddyliste eingetragen

      [/b][ [url="index.php?show=users&userid=<?php print $userid?>"]Zur&uuml;ck[/url] ]</td>
  </tr>
  <tr> </tr>
  <tr> </tr>
</table>
Also jemand kann sich nicht in seine eigene Liste eintragen, nun habe ich auch versucht das er einen user nicht 2x eintragen kann. Das wollte ich so realisieren:
PHP-Code:
<?php
$sql23
="SELECT * FROM buddys";
$buddys_1=mysql_query($sql23$db);
$found FALSE;
while (
$buddys mysql_fetch_object ($buddys_1))
{
$buddy_check "$buddys->buddy";
$fromuser_check "$buddys->fromuser";
if(
$buddy.$fromuser == $buddy_check.$fromuser.check)
{
$found TRUE;}
}
if(
$found == FALSE)
print 
"Sorry geht nicht ;)";
{
$sql="INSERT into ...

?>
Aber leider funkt es nicht.. Kann mir vielleicht einer helfen?
Oder habt ihr nenn Tip wie ich es besser machen kann. Würde mich echt freuen!
d4rki ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.08.2005, 17:42  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard

kann mir da keiner helfen?
d4rki ist offline  
Alt 30.08.2005, 17:49  
Gast
 
Beiträge: n/a
Standard

Hab mir keine gedanken über dein script gemacht, aber

1. "$buddys->buddy" gewöhn dir dat mal wieder ab, entweder du hast ein String oder den Ihalt einer Variable
2. machs doch einfacher:
mach ne query mit "SELECT buddy from buddys where buddy='$userid'"
dann überprüfst du mit mysql_num_rows(<query>); ob das was da is, wenn ja -> Fehler

3. Mal ne Frage, weil ich das nich weiß:
PHP-Code:
<?php
if($buddy.$fromuser == $buddy_check.$fromuser.check)

?>
was is das?
was sollen die Punkte? oder tust du nur 2 Variableninhalte aneinander hängen?
 
Alt 30.08.2005, 18:21  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 578
WarrenFaith
WarrenFaith eine Nachricht über ICQ schicken
Standard

bitte deine style="..." in CSS auslagern. dient der übersichtlichkeit
www.css4you.de
__________________
Developers-Guide.net
Senseless
WarrenFaith ist offline  
Alt 31.08.2005, 18:52  
Erfahrener Benutzer
 
Registriert seit: 05.12.2004
Beiträge: 110
d4rki
Standard

hey nochmals..
also Jojo habe nun versucht deinen tip in die tat umzusetzen
aber leider hat es nicht gefunzt
ich wollte das ganze so realisieren:
PHP-Code:


<?php
## BUDDYLISTE
## Copyright by Dennis Schirra
## [url]http://www.grayhounders.de[/url]  
if($userid=="$myid") {
$sql12323="SELECT * FROM buddys where buddy='$userid'";
$data=mysql_query($sql12323$db);
while (
$check mysql_fetch_object ($data2323)) {
print 
$check->fromuser;
if(
$check->fromuser=="$myid") {
?>
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="2" style="BORDER-RIGHT: #8D8D8D 1px solid; BORDER-TOP: #8D8D8D 1px solid; PADDING-LEFT: 1px; BACKGROUND: #ffffff; BORDER-LEFT: #8D8D8D 1px solid; BORDER-BOTTOM: #8D8D8D 1px solid;">
  <tr> 
    <td bgcolor="FBFAFB"> [b]Sorry aber du kannst dich nicht in deine eigene Liste einfügen!

      [/b][ [url="index.php?show=users&userid=<?php print $userid?>"]Zur&uuml;ck[/url] ]</td>
  </tr>
  <tr> </tr>
  <tr> </tr>
</table>
<?php }}} else {
$userid $_GET["userid"];
$add="INSERT INTO buddys(buddy, fromuser) VALUES ('$userid', '$myid')";
$sqlaction=mysql_query($add); 

?>
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="2" style="BORDER-RIGHT: #8D8D8D 1px solid; BORDER-TOP: #8D8D8D 1px solid; PADDING-LEFT: 1px; BACKGROUND: #ffffff; BORDER-LEFT: #8D8D8D 1px solid; BORDER-BOTTOM: #8D8D8D 1px solid;">
  <tr> 
    <td bgcolor="FBFAFB"> [b]Der User 
      <?php 
$sql1
="SELECT * FROM users where id='$userid'";
$data=mysql_query($sql1$db);
while (
$users mysql_fetch_object ($data)) { print $users->nick; } ?>
      wurde erfolgreich in deine Buddyliste eingetragen

      [/b][ [url="index.php?show=users&userid=<?php print $userid?>"]Zur&uuml;ck[/url] ]</td>
  </tr>
  <tr> </tr>
  <tr> </tr>
</table>
<?php 
?>
Aber leider wollte das ganze nicht gehen..
ich versteh nicht waruM

also mit
PHP-Code:
 $sql12323="SELECT * FROM buddys where buddy='$userid'"
nehm ich doch den eintrag von buddys.. der mit der userid genommen wird..

und dann mit
PHP-Code:
if($check->fromuser=="$myid") { 
will ich checken ob der eintrag mit dieser $myid schon besteht..
also das userid wird im link mitgegebn und das $myid steht in den cookies..

ich verstehs nicht
kann mir jemand helfen.. bitte
d4rki ist offline  
Alt 31.08.2005, 20:54  
Gast
 
Beiträge: n/a
Standard

Hi,
also ein paar Punkte (und hoffentlich die Lösung)

  1. Formatiere bitte deinen Code, rücke ihn ein, keine geschweiften Klammern hintereinander, keine while Funktion in nur eine Zeile, sonst ist es sehr schwer, was in deinem Code zu verstehen, ich musste es mirselbst erst aufdröseln :roll:

  2. gewöhn dir bitte ab so was zu schreiben:
    PHP-Code:
    <?php
    if ($userid=="$myid")
    ?>
    schreib lieber so, glaub mir:
    PHP-Code:
    <?php
    if ($userid==$myid)
    ?>
    das selbe gilt, wenn du Variableninhalte kopierst, z.B.

    PHP-Code:
    <?php
    $var1 
    $var2;
    ?>

  3. Irgendetwas hast du falsch überlegt:
    In Zeile 6 vergleichst du den Inhalt von $userid mit dem einer anderen Variable, aber du gibst der Variable erst in Zeile 22 einen Wert? :?

  4. In Zeile 9 machst du ein mysql_fetch_object() aus einer Ressource ($data2323), die gar nicht existiert, ich denke, du meinst $data, oder?

  5. Diese while-Schleife ist vollkommen überflüssig, weil du wahrscheinlich sowieso nur einen EIntrag erhälst.....

  6. Das selbe gilt für die untere while-Schleife

  7. Dieses Verfahren ist absolut unsicher, weil es jedem ermöglicht, zu jeder Buddy-Liste jemanden hinzuzufügen.

Ich werde dir mal zeigen, wie ich das machen würde (auch so unsicher, aber um das sicher zu machen, müsste man sessions anwenden, und das würde zu sehr ausschweifen):

Meine User-Tabelle "user":
ID|Nickname

Meine Buddy-Listen-Tabelle buddies:
ID|BuddyID|UserID|

wobei BuddyID die ID des hinzugefügten Users darstellt und UserID die des Besitzers der Buddy-Liste


Das ist die buddies.php, wo die Buddies angzeigt werden. die UserID wird mal jetzt mal als POST-Variable mitgesandt, wie, is ja jetzt egal.
PHP-Code:
<?php
[...]

$userid trim($_POST['USERID'].$_GET['USERID']);

if (!empty(
POST['add_new_buddy'])) {
   
$newbuddyname $_POST['newbuddyName'];

   
$query_txt "SELECT ID FROM users WHERE Nickname='$newbuddyname'";
   
$query mysql_query($query);
   
$newbuddyid mysql_fetch_object($query);

   
$query_txt "SELECT ID FROM buddies WHERE ID='$newbuddyid->ID'";
   
$query mysql_query($query);
   
$buddyid_inbuddies mysql_fetch_object($query);

   if (empty(
$error_1 = ($userid != $newbuddyid->ID) ? "" "Warum willst du dich selbst hinzuf&uuml;gen?";) and empty($error_2 = (empty($buddyid_inusers->ID)) ? "" "Der is da schon drinne, ok?";) {
      
$query_txt "INSERT INTO buddies BuddyID, UserID VALUES ('$newbuddyid->ID, $userid)";
      
msyql_query($query_txt);
   }
}

$query_txt "SELECT BuddyID FROM buddies where UserID = '$userid'";
$query_buddies mysql_query(query_txt);

while (
$buddy mysql_fetch_assoc($query_buddies)) {
   
$query_txt "SELECT Nickname from users where ID='$buddy[ID]'";
   
$query mysql_query($query);
   
$buddy_name mysql_fetch_object($query)

   
$entries .= "

"
.$buddy_name->Nickname;
}
?>
<html>
<body>
<?=$entries ?>



<?=$error_1 ?><?=$error_2 ?>

<form method=POST>
<input type=hidden name=USERID value=<?=userid ?>>
<input type=text name=newbuddyName>
<input type=submit name=add_new_buddy value=add>
</form>
</body>
</html>
So ungefähr stimmts. Fehler sind möglich!
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
[Erledigt] HILFE HILFE HILFE mysqladmin.exe fehlt Datenbanken 7 20.12.2005 14:00
Hilfe bei Datenbank informationen gesucht. Beitragsarchiv 6 28.11.2005 09:41
HILFE ! Brauche ganz dringend hilfe! PHP Tipps 2005-2 2 10.10.2005 23:08
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
Hilfe!! Datenbank Fehler (glaube ich...) PHP Tipps 2004-2 9 22.12.2004 13:44
[Erledigt] Chat Server mit Datenbank realisieren - - - Hilfe benötigt PHP Tipps 2004-2 3 14.12.2004 18:38
Hilfe - PHP - Mysql - Museum Datenbank Beitragsarchiv 2 07.12.2004 17:44
[Erledigt] tags über datenbank ausgeben , hilfe : ) Datenbanken 1 31.08.2004 17:08
Hilfe bzgl. Datenbank abfrage PHP Tipps 2004 5 24.06.2004 18:21


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.