PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : funktion um zustand auszulesen



Dany
20.06.2007, 23:42
Hi, heute steh ich mal völlig auf dem Schlauch.
ich brauch eine funktion für die funktionslip in der folgendes passiert:

aus den vms_kontodaten - Feld error wird der wert 0 oder 1 für den jeweiligen User ausgelesen,
ist der Wert 1 und die funktion auf einer Seite eingebaut wird der User auf eine Errorseite weitergeleitet, ist der Wert 0 geht es ganz normal weiter.

Irgendwie bin ich zu blöde eine funktionierende funktion hinzubekommen... 8o

Bei den Downloads gibts ja die seitensperre, die nutzt mir aber nicht so viel, bzw garnichts...

Hoffe irgendeiner von den Spezies hier kann mir mal schnell so eine funktion hintackern ;)

Gruß Dany

DimpleX
21.06.2007, 00:43
ich stehe etwas auf demschlauf was du meinst



CREATE TABLE `vms_kontodaten` (
`uid` int(7) NOT NULL default '0',
`passwort` varchar(32) NOT NULL default '',
`status` tinyint(1) NOT NULL default '0',
`hinweis` longtext NOT NULL,
`kontostand` double(100,2) NOT NULL default '0.00',
`login_ip` varchar(15) NOT NULL default '',
`loginzeit` int(11) NOT NULL default '0',
`klicks` bigint(20) NOT NULL default '0',
`kv` double(100,2) NOT NULL default '0.00',
`angebettelt` bigint(20) NOT NULL default '0',
`bv` double(100,2) NOT NULL default '0.00'
) TYPE=MyISAM;



gibt kein errorfeld

möchtest du eine abfrage haben oder eine function?
eine fuction wäre beispiel

function (error=$bla+-xyz)

die dan declariert wird in


function error
if { bla gleich null dann dieses
else wenn feld gleich ein dann das
}
}


eine db abfrage hingegen wäre es


$error = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE errror >='1' or error != '".$_SESSION['uid']."' ORDER BY RAND()");



etc

deine angaben sind leider zu ungenau was du dir vorstellst



DimpleX

Dany
21.06.2007, 00:54
Original von DimpleX
ich stehe etwas auf demschlauf was du meinst........

DimpleX
:D

Also ich habe in meinen kontodaten ein weiteres Feld schon angelegt welches error heißt

und darin ist entweder der wert 0 oder 1 gespeichert

und die function soll halt den Inhalt vom Errorfeld auslesen und dann wie schon geschrieben den user auf z.B. seiten wo die funktion eingebaut ist rauf lassen oder ihn bei einer 1 im Errorfeld auf eine andere Seite z.B. error.php umleiten.

So, hoffe das war nun verständlicher..


Gruß Dany

DimpleX
21.06.2007, 01:01
ja das ist verstämdlicher :)


aber dafür brauchste keine function in der fuction.lib.php da reicht eine db_query mit bedingung

DimpleX

Dany
21.06.2007, 01:14
dachte es währe einfacher per funktion, da es nicht nur eine Seite betrifft, sondern gleich mehrere wo der user dann keinen zugriff haben soll... aber wie ist mir letztendlich dann egal, hauptsache es funzt irgendwie ... aber ich bin wie gesagt zu blöd zu. 8o

Gruß Dany

DimpleX
21.06.2007, 11:52
$errorlesen = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']"");

if ($errorlesen['error'] = 1) {

wert ist 1 dann dieses

} else {

wenn wert nicht 1 dann kommt dieser bereich

}



hoffe hilft dir etwas weiter
mfg
DimpleX

breaker
21.06.2007, 13:53
<?PHP
if(empty($variable)) {
funktion für false ausführen
] else {
function für true ausführen
}

?>

VMS1
21.06.2007, 15:40
Man könnte es so machen, das man beim LogIn gleich eine Session setzt, die den Wert des error-Feldes enthält. Dann hat man diese Variable ohne weitere DB-Adbfrage ständig zur Verfügung.

Ist allerdings ein bißchen Arbeit.

Die Datei session.lib.php wie folgt ändern:


*edit by Gremlin:
Hab den langen php Code mal auf ne Datei ausgelagert... das wbb hat wohl Probleme damit gehabt ;)*

Hier:
http://www.designerscripte.net/downloads/a.phps

Dany
21.06.2007, 21:19
Uff... so viele Vorschläge http://www.designerscripte.net/images/icons/icon1.gif

Ich hab nun den Code von DimpleX genommen aber das will nicht so recht, irgendwie scheint die Variable das error Feld nicht auszulesen ... die Augabe geht immer auf Seite 2 egal ob im Feld error eine 1 oder 0 drin steht

Hie rmal der Code:


<?php

$errorlesen = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']."");

if ($errorlesen['error'] = 1) {

head("Ausgabe Seite 1");
foot();

} else {

head("Ausgabe Seite 2");
foot();

}

?>

Gruß Dany

DimpleX
21.06.2007, 21:24
ja war so gedanglicher ausführung versuche mal die 1 mit hochkomma

also


if ($errorlesen['error'] = 1) {

in


if ($errorlesen['error'] = '1') {


ändern

DimpleX

Dany
21.06.2007, 21:41
Das hatte ich auch schon probiert...
und nun gerade nochmal.. das Ergebnis ist das gleiche... immer nur Seite2

Gremlin
21.06.2007, 22:11
Zahlen sollte man immer ohne '' schreiben, aber DimpleX was du vergessen hast ist einfach zu "fetchen"

Zeile 3 müsste wie folgt aussehen:


$errorlesen = mysql_fetch_assoc(db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

(ohne das <?php ?> ) ;)

Gruß
Gremlin

Dany
21.06.2007, 22:32
Jipppiiii, man war das ne Geburt.. http://www.designerscripte.net/images/icons/icon8.gifLOLLLL
Nun geht es ich danke dann mal allen beteiligten...

Gruß Dany