php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-02-2006, 17:36
7th Freet
 Newbie
Links : Onlinestatus : 7th Freet ist offline
Registriert seit: Feb 2006
Beiträge: 20
7th Freet ist zur Zeit noch ein unbeschriebenes Blatt
Standard 2ter SELECT liefert 0

Moin,
ich habe ein Script geschrieben, dass nach dreimaliger falscher
Eingabe denn Account spert.

Jetzt zu meinem Problem:

PHP-Code:
...
$result mysql_query("SELECT UserName, logtry, time FROM
users WHERE UserName = '"
.$_POST['username']."'");
$row mysql_fetch_assoc($result);
if (
$row['time'] !== '')    {
    
$sql "UPDATE users SET time='', logtry='' WHERE time <= ".$invalidly;
    
mysql_query($sql);
}  
   
if(
$row['logtry'] < '3') {

... 
So klappt mein Script, jedoch ist dort ein Fehler. Wenn time und logtry auf 0 gesetzt werden,
stimmt der Datensatz für die if Abfrage nicht mehr,
da logtry ja schon vor dem Update abgefragt wurde.

Deswegen habe ich es so versucht:
PHP-Code:
...
    
$result mysql_query("SELECT time FROM users
    WHERE UserName = '"
.$_POST['username']."'");
    
$row mysql_fetch_assoc($result);
    if (
$row['time'] !== '')    {
        
$sql "UPDATE users SET time='', logtry='' WHERE time <= ".$invalidly;
        
mysql_query($sql);
    }  
    
$result mysql_query("SELECT UserName, logtry FROM users
WHERE UserName = '"
.$_POST['username']."'");
$row mysql_fetch_assoc($result);

       if(
$row['logtry'] < '3') {
... 
Wenn ich mir $row['logtry'] ausgeben lasse bekomme ich immer 0
auch wenn in der DB z.B. 2 steht. Auch wenn ich andere Variablen
nehme z.B. $result2 ändert sich nichts.

Hat jemand ne Idee. Bin über jede Hilfe dankbar.

7th Freet
Mit Zitat antworten
  #2 (permalink)  
Alt 20-02-2006, 17:44
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: 2ter SELECT liefert 0

Zitat:
Original geschrieben von 7th Freet
Hat jemand ne Idee.
Ja - formuliere bitte erst mal klar und deutlich, was dein Script machen soll.
Zitat:
Bin über jede Hilfe dankbar.
Dann ermögliche uns bitte, dir zu helfen - in dem du erst mal eine Problembeschreibung verfasst, die sich auch für Außenstehende nachvollziehen lässt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-02-2006, 17:55
Daniela
 Registrierter Benutzer
Links : Onlinestatus : Daniela ist offline
Registriert seit: Feb 2006
Beiträge: 327
Daniela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Lass dir mal $_POST['username'] ausgeben... evtl. liegt da der Wurm begraben, weil dein query sollte passen und wenn du sonst allse richtig angelegt hast müsste er dir dann auch deine 2 ausspucken...

falls es das nicht ist, musst nochmal genau erklären was du meinst
Mit Zitat antworten
  #4 (permalink)  
Alt 20-02-2006, 18:28
7th Freet
 Newbie
Links : Onlinestatus : 7th Freet ist offline
Registriert seit: Feb 2006
Beiträge: 20
7th Freet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Ja - formuliere bitte erst mal klar und deutlich, was dein Script machen soll.
Das Script zählt die fehlgeschlagenen Logins und nach drei versuchen
sperrt den Account für eine bestimmte Zeit.

Am anfang des Scriptes (der von mir gepostete Teil) wird geprüft
ob in der Datenbank ein Sperrzeit hinterlegt ist und ob diese noch
gültig ist oder nicht. Wenn nicht wird die Anzahl der Versuche und
die Sperrzeit zurück auf null gesetzt.

Zitat:
Dann ermögliche uns bitte, dir zu helfen - in dem du erst mal eine Problembeschreibung verfasst,
die sich auch für Außenstehende nachvollziehen lässt.
Wenn die SperrZeit nicht mehr Gültig ist wird sie und die Anzahl der
versuche (logtry) zurück auf Null gesetzt. Danach erfolgt eine If
Abfrage die nach dem Wert von logtry fragt, jedoch ist $row['logtry']
nach dem löschen nicht mehr aktuell, da der Select VOR dem Update
stattfindet. Die if abfrage bekommt also immernoch 3 obwohl logtry schon 0 ist.
Was das Script auf die falsche Bahn führt.

Jetzt wollte ich das problem umgehen in dem ich erst nach dem
Löschen das SELECT für logtry mache. Doch dann hat $row['logtry']
denn Wert 0 obwohl in der DB der Wert 2 eintragen ist.

So hoffe das ist jetzt Verständlich, klar, Deutlich und
für Aussenstehende verständlich.

//Edit: Nein an $_POST['username'] liegt es nicht.

Danke

7th Freet

Geändert von 7th Freet (20-02-2006 um 18:38 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 20-02-2006, 18:46
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von 7th Freet
Wenn die SperrZeit nicht mehr Gültig ist wird sie und die Anzahl der versuche (logtry) zurück auf Null gesetzt. Danach erfolgt eine If Abfrage die nach dem Wert von logtry fragt, jedoch ist $row['logtry'] nach dem löschen nicht mehr aktuell, da der Select VOR dem Update
stattfindet. Die if abfrage bekommt also immernoch 3 obwohl logtry schon 0 ist.
Dann gehe doch anders vor ...
Code:
SELECT ...
$logtry = $row['logtry'];

if(bedingung) {
   UPDATE ...
   $logtry = 0;
}
- und arbeite danach mit $logtry weiter ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 20-02-2006, 19:05
7th Freet
 Newbie
Links : Onlinestatus : 7th Freet ist offline
Registriert seit: Feb 2006
Beiträge: 20
7th Freet ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke , funtzt prima.. nachdem ich einen fehler meinerseits behoben
habe. Denn time !== '' ist nicht gleich mit time !== '0' . Das
stach mir plötzlich in die Augen als ich den Code änderte.
Trotzdem find ich deine Lösung komfortabler als meine.

7th Freet
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

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