Benutzerabfrage

webguru2009

Mitglied
Hallo,

ich benutze das Login Script von msxstudion (advanced login) und möchte nun eine Abfrage tätigen.
Ich möchte aus der Datenbank sobald ein User eingeloggt ist seinen Weiterleitungslink anzeigen.
Das funktioniert momentan soweit, bloß das alle Links angezeigt werden und nicht die jeden Nutzers.
Wo ist der Fehler?

Code:
Code:
<?php
$conn = mysql_connect("localhost", "root", "passwort") OR die(mysql_error());
mysql_select_db(mysql) OR die (mysql_error());
$sql = "SELECT adv_h_loginred FROM alogin_user;";
$result = mysql_query($sql) OR die(mysql_error());
echo "Links:<br />\n";
while($row = mysql_fetch_assoc($result)) {
echo $row['adv_uid']." <br></br>".$row['adv_h_loginred']."<br></br>\n"; }
?>

Mfg Webguru
 
Du musst in dein Query eine WHERE Bedingung einbauen, die auf ein einzigartiges Merkmal des Nutzers hinweist, meist ist das die Id.
 
Hey, vielen dank, das brach mich einwenig in meinem Wissen weiter aber leider nicht bei meinem Problem :(

Jetzt wird trotzdem noch von jedem die Url angezeigt.

Hier mein geänderter code:

Code:
<?php
$conn = mysql_connect("localhost", "root", "passwort") OR die(mysql_error());
mysql_select_db(mysql) OR die (mysql_error());
$sql = "SELECT adv_h_loginred FROM alogin_user WHERE adv_uid;";
$result = mysql_query($sql) OR die(mysql_error());
echo "Programme:<br />\n";
while($row = mysql_fetch_assoc($result)) {
echo $row['adv_h_loginred']."<br></br>\n"; }
?>


Vielen dank schoneinmal im Vorraus für die bemühungen.
 
PHP:
$sql = "SELECT adv_h_loginred FROM alogin_user WHERE adv_uid=$id";

$id ist hiermit die ID des users welche über deinen Login eventuell zurück gegeben wird.

PHP:
$id = /* ID des eingeloggten Users*/;
 
PHP:
<?php
$conn = mysql_connect("localhost", "root", "passwort") OR die(mysql_error());

mysql_select_db(mysql) OR die (mysql_error());

$sql = "SELECT adv_h_loginred FROM alogin_user WHERE adv_uid";

$result = mysql_query($sql) OR die(mysql_error());

echo "Programme:<br />\n";

while($row = mysql_fetch_assoc($result)) 
{
        echo $row['adv_h_loginred']."<br></br>\n"; 
}
?>

In der WHERE-Bedingung muss auf eingeloggte User geprüft werden.

PHP:
WHERE adv_uid = $login
 
Vielen dank für eure Antworten aber leider bringt mich es auch nicht weiter.
Ich kann zwar die Id von jedem Benutzer selber bestimmen aber es soll ja automatisch geschehen.
Also sobald ein Benutzer eingeloggt ist soll er seinen Weiterleitungslink sehen.

ZITAT Steusi:
In der WHERE-Bedingung muss auf eingeloggte User geprüft werden.

wie mache ich das?
Das ist ja mein eigentliches Problem das der Schnipsel nicht automatich erkennt welche Id gerade Online ist.

Vielen dank schonmal an euch :)

Mfg Webguru
 
Diese kannst Du entweder von der Datenbank abfragen oder Dir beim einloggen in eine Session schreiben lassen.
Dazu müsste man halt deine Struktur der DB und dein Login-Script wissen.
 
Die Datenbank ist nicht groß. Ich habe sie einmal exportiert.
Hoffe es hilft.
Ich nehme an es ist in alogin_user bei session Id was gesucht wird aber leider weiß ich nichts mit anzufangen :rolleyes:

Code:
-- phpMyAdmin SQL Dump
-- version 3.1.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 07. April 2009 um 18:51
-- Server Version: 5.1.30
-- PHP-Version: 5.2.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `mysql`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `alogin_messages`
--

CREATE TABLE IF NOT EXISTS `alogin_messages` (
  `adv_m_id` int(11) NOT NULL AUTO_INCREMENT,
  `adv_m_from` varchar(50) NOT NULL,
  `adv_m_to` varchar(50) NOT NULL,
  `adv_m_subject` varchar(50) NOT NULL,
  `adv_m_subtitle` varchar(50) NOT NULL,
  `adv_m_message` longtext NOT NULL,
  `adv_m_date` int(11) NOT NULL,
  `adv_m_delto` int(11) NOT NULL,
  `adv_m_delfrom` int(11) NOT NULL,
  `adv_m_sent` tinyint(1) NOT NULL,
  `adv_m_read` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`adv_m_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Daten für Tabelle `alogin_messages`
--


-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `alogin_rights`
--

CREATE TABLE IF NOT EXISTS `alogin_rights` (
  `r_id` tinyint(10) NOT NULL AUTO_INCREMENT,
  `r_bez` varchar(50) NOT NULL,
  `r_groups` text NOT NULL,
  `r_prios` varchar(50) NOT NULL,
  PRIMARY KEY (`r_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Daten für Tabelle `alogin_rights`
--


-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `alogin_user`
--

CREATE TABLE IF NOT EXISTS `alogin_user` (
  `adv_uid` int(11) NOT NULL AUTO_INCREMENT,
  `adv_uname` varchar(50) NOT NULL,
  `adv_h_sessid` varchar(50) NOT NULL,
  `adv_h_secureid` varchar(50) NOT NULL,
  `adv_pass` varchar(50) NOT NULL,
  `adv_email` varchar(50) NOT NULL,
  `adv_nname` varchar(20) NOT NULL,
  `adv_vname` varchar(20) NOT NULL,
  `adv_ort` varchar(40) NOT NULL,
  `adv_plz` varchar(7) NOT NULL,
  `adv_strasse` varchar(40) NOT NULL,
  `adv_telefon` varchar(20) NOT NULL,
  `adv_h_ontime` int(11) NOT NULL,
  `adv_h_lastlogin` int(11) NOT NULL,
  `adv_h_banned` tinyint(1) NOT NULL,
  `adv_h_aktiv` tinyint(1) NOT NULL,
  `adv_group` varchar(50) NOT NULL,
  `adv_h_prio` int(11) NOT NULL,
  `adv_h_admin` tinyint(1) NOT NULL,
  `adv_date` int(15) NOT NULL,
  `adv_h_loginred` varchar(50) NOT NULL,
  `adv_h_logoutred` varchar(50) NOT NULL,
  `adv_h_loginsr` int(11) NOT NULL,
  `adv_h_loginsf` int(11) NOT NULL,
  `adv_admin_pages` text NOT NULL,
  `adv_admin_getmails` tinyint(1) NOT NULL,
  PRIMARY KEY (`adv_uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Daten für Tabelle `alogin_user`
--

INSERT INTO `alogin_user` (`adv_uid`, `adv_uname`, `adv_h_sessid`, `adv_h_secureid`, `adv_pass`, `adv_email`, `adv_nname`, `adv_vname`, `adv_ort`, `adv_plz`, `adv_strasse`, `adv_telefon`, `adv_h_ontime`, `adv_h_lastlogin`, `adv_h_banned`, `adv_h_aktiv`, `adv_group`, `adv_h_prio`, `adv_h_admin`, `adv_date`, `adv_h_loginred`, `adv_h_logoutred`, `adv_h_loginsr`, `adv_h_loginsf`, `adv_admin_pages`, `adv_admin_getmails`) VALUES
(1, 'admin', '', '', 'd6716e7f75779dabeacd008e5339d685', 'dfsdfsdfsdfsdfsdfsdfsdfsdfs@web.de', '', '', '', '', '', '', 0, 0, 0, 1, 'Administrator', 15, 1, 1238758798, '', '', 0, 0, '', 0),
(2, '5023', '', '', 'd41d8cd98f00b204e9800998ecf8427e', 'info@sfsdfsdfsdfsdfs.de', '', '', '', '', '', '', 0, 1239004073, 0, 1, 'User', 0, 0, 1238842417, '', '', 7, 8, '', 0),
(6, 'testklaus', '', '', '74be16979710d4c4e7c6647856088456', 'sdfsdjfhskdf@sdklfjsdfs.de', '', '', '', '', '', '', 0, 0, 0, 1, 'User', 0, 0, 1239003527, 'www.google.de', '', 0, 0, '', 0);

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `alogin_user_groups`
--

CREATE TABLE IF NOT EXISTS `alogin_user_groups` (
  `group_id` int(11) NOT NULL AUTO_INCREMENT,
  `group_beze` varchar(50) NOT NULL,
  `group_bezm` varchar(50) NOT NULL,
  `group_prio` int(11) NOT NULL,
  `group_max` int(11) NOT NULL,
  `group_loginred` varchar(50) NOT NULL,
  `group_logoutred` varchar(50) NOT NULL,
  PRIMARY KEY (`group_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Daten für Tabelle `alogin_user_groups`
--

INSERT INTO `alogin_user_groups` (`group_id`, `group_beze`, `group_bezm`, `group_prio`, `group_max`, `group_loginred`, `group_logoutred`) VALUES
(1, 'User', 'User', 5, 0, '', ''),
(2, 'Moderator', 'Moderatoren', 10, 0, '', ''),
(3, 'Administrator', 'Administratoren', 15, 0, '', '');

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `alogin_user_online`
--

CREATE TABLE IF NOT EXISTS `alogin_user_online` (
  `adv_username` varchar(50) NOT NULL,
  `adv_path` varchar(100) NOT NULL,
  `adv_lastaction` int(20) NOT NULL,
  `adv_alert` text NOT NULL,
  `adv_redirect` varchar(100) NOT NULL,
  `adv_sessionid` varchar(50) NOT NULL,
  `adv_ip` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Daten für Tabelle `alogin_user_online`
--
 
Hier könntest Du zb. eine Abfrage machen ob der User eingeloggt ist:
Dazu muss die Session-ID in der Tabelle gespeichert sein. ICh gehe einfach mal davon aus das diese gespeichert wird im Feld "adv_h_sessid".

PHP:
$abfrage = mysql_query("SELECT `adv_uid` FROM `alogin_user` WHERE `adv_h_sessid`='".session_id()."'  ");
while($res = mysql_fetch_assoc($abfrage))
{
         $id = $res['adv_uid'];
}
// jetzt ist $id definiert und du kannst sie verwenden

Am Anfang der Datei muss dann noch:

PHP:
<?
session_start();
/* restlicher Code */
 
Zuletzt bearbeitet:
Ich habe es gerade ausprobiert und bekommen folgende Fehlermeldung.

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1

Hier ist das komplette Script:

PHP:
<?
session_start();

$conn = mysql_connect("localhost", "root", "password") OR die(mysql_error()); 
mysql_select_db(mysql) OR die (mysql_error());

$sql = mysql_query("SELECT `adv_uid` FROM `alogin_user` WHERE `adv_h_sessid`='".session_id()."'  ");
while($res = mysql_fetch_assoc($sql))
{
         $id = $res['adv_uid'];
}

$result = mysql_query($sql) OR die(mysql_error());

echo "Programme:<br />\n";

while($row = mysql_fetch_assoc($result)) 
{
        echo $row['adv_h_loginred']."<br></br>\n"; 
}
?>

Aber eins vorweg.
Rießen großes Lob das ihr einen so helft.
Das finde ich richtig Stark ! *daume hoch* :)
 
Zurück