php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.06.2008, 14:13  
Neuer Benutzer
 
Registriert seit: 08.03.2008
Beiträge: 25
areUkidding befindet sich auf einem aufstrebenden Ast
Standard Update - Sperre funktioniert nicht

Das Update wird trotz Sperre weiterhin vorgenommen wenn timestamp > '".(time()-86400)."'") <= 1) und überhaupt nicht mehr wenn timestamp > '".(time()-86400)."'") < 1).

Normalerweise sollte das abschicken des Formulars 1 mal am Tag möglich sein und das Update dann dem entsprechend nur 1 mal am Tag.
Wäre schön, wenn jemand eine Idee hätte, wie ich das Problem lösen kann.


PHP-Code:
<?php
    session_start
();
    if(isset(
$_SESSION["login"])) { // Wenn eingeloggt..
        
include("header.php");
        include(
"db.php");
        include(
"functions.inc.php");
        
refresh($_SESSION["login"]); // refresht
        
if(anzahl("mitglieder WHERE id = '".$_SESSION["login"]."' AND timestamp > '".(time()-86400)."'") < 1) {
            if(isset(
$_REQUEST["submit"])) { 
                           
$update mysql_query("UPDATE mitglieder Set konto = konto + 2, timestamp = '".time()."' WHERE id = '".$_SESSION["login"]."' AND zahl = 1");
                    
$update mysql_query("UPDATE mitglieder Set konto = konto + 4, timestamp = '".time()."' WHERE id = '".$_SESSION["login"]."' AND zahl = 2");
                    
$update mysql_query("UPDATE mitglieder Set konto = konto + 6, timestamp = '".time()."' WHERE id = '".$_SESSION["login"]."' AND zahl = 3");
                    
$update mysql_query("UPDATE mitglieder Set konto = konto + 8, timestamp = '".time()."' WHERE id = '".$_SESSION["login"]."' AND zahl = 4");
                    
$update mysql_query("UPDATE mitglieder Set konto = konto + 10, timestamp = '".time()."' WHERE id = '".$_SESSION["login"]."' AND zahl = 5");
        }
        }
        
$abfrage "SELECT * FROM mitglieder WHERE id = '".$_SESSION["login"]."' LIMIT 0,1";
        
$ergebnis mysql_query($abfrage);
        while(
$row mysql_fetch_object($ergebnis))
        { 
// Formular ->0
    
?>
            <font style="font-size: 8pt;">
<p align="center">                
Klicke auf den Button um dir das Guthaben gutzuschreiben.<br><br>
<img border="0" src="Grafiken/trennlinie.png" width="400" height="20">
<form action=aktualisieren.php method=post>
<table width=90%><font style=\"font-size: 8pt;\">
                    <tr>
                            <input type="hidden" name="name" value="<?= $row->name ?>">
                    </tr>


                </table>
<p align="center"><input type="submit" value="abspeichern" name="submit"></font><br><br>
            </form><br /><br />
    <?php
        
}
        include(
"footer.php");
        }
?>
Funktions

PHP-Code:
<?php
    
function exist($abfrage) { // Funktion um Eintrag auf Existenz zu prüfen!
        
$ergebnis3 mysql_query("SELECT id FROM ".$abfrage);
        if (
mysql_fetch_object($ergebnis3)) {
            return 
true;
        } else {
            return 
false;
        }
    }
    function 
anzahl($abfragez) { // Gibt Anzahl zurück
        
$ergebnis mysql_query("SELECT COUNT(*) AS anzahl FROM ".$abfragez);
        
$row mysql_fetch_array($ergebnis);
        return 
$row['anzahl']; 
    }
    function 
refresh($user) { // Refresht refresh. Wichtig bei Wer-ist-eingeloggt!
        
$update mysql_query("UPDATE mitglieder Set refresh = '".time()."' WHERE id = '".$user."'"); 
    }
    function 
endung($filename) { // Gibt endung der Datei zurück z.B. .gif
        
$end explode(".",$filename);
        return 
".".$end[(count($end)-1)];
    }
    function 
post($string) { // Macht den String sicher und macht \n in <br>
        
$string strip_tags($string);
        return 
str_replace("\n""<br>",$string);;
    }
    function 
postback($string) { // <br> in \n für textarea
        
return str_replace("<br>""\n",$string);;
    }
    function 
zahl($zahl) { // Zahlenschutz wegen Seitenfunktion
        
$zahl round($zahl,0);
        
$zahl str_replace("-"""$zahl);
        return 
$zahl;
    }
?>

Geändert von areUkidding (26.06.2008 um 11:35 Uhr).
areUkidding ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.06.2008, 14:16  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Irgendwie will in letzter Zeit jeder seine Sachen einmalig oder einmal am Tag machen... und auf "es funktioniert nicht so ganz" kann man auch nur "dann tu was dagegen" antworten. Sorry aber dein Post hier kannst du dir so auch sparen
cycap ist offline  
Alt 25.06.2008, 14:19  
Neuer Benutzer
 
Registriert seit: 08.03.2008
Beiträge: 25
areUkidding befindet sich auf einem aufstrebenden Ast
Standard

danke... das war jetzt eine sehr konstruktive antwort...

Ich könnte das Problem ja auch beheben wenn eine Fehlermeldung kommen würde! Tut es aber nicht! Stattdessen wird jedes mal die Tabelle aktualisiert beim abschicken des Formulars
areUkidding ist offline  
Alt 25.06.2008, 14:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Genau diese Aussage wurde erwartet.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 25.06.2008, 14:20  
Neuer Benutzer
 
Registriert seit: 08.03.2008
Beiträge: 25
areUkidding befindet sich auf einem aufstrebenden Ast
Standard

entfernt

Geändert von areUkidding (25.06.2008 um 16:02 Uhr).
areUkidding ist offline  
Alt 25.06.2008, 14:21  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich hab das schon ein paarmal gesehen:
refresh($_SESSION["login"]);
Was bedeutet das?

In der Zeile darunter rufst du eine Funktion anzahl() auf. Was macht die?


Wolla ist offline  
Alt 25.06.2008, 14:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
PHP-Code:
if(anzahl("tabelle WHERE id = '".$_SESSION["login"]."' AND timestamp > '".(time()-84600)."'") <= 1) { 
Und warum kleiner gleich 1 ? Wenn die Funktion das tut was wir alle nur vermuten können, dann müßte es doch wohl < 1 heißen.

@Wolla: Wahrsch. wird hier der timeout verlängert.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (25.06.2008 um 14:25 Uhr).
nikosch ist gerade online  
Alt 25.06.2008, 14:24  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Stattdessen wird jedes mal die Tabelle aktualisiert beim abschicken des Formulars
Mit der Aussage lässt sich schonmal mehr anfangen als mit "es funktioniert nicht so ganz"

So und was bitte steckt hinter der Funktion anzahl? Überhaupt solltest du mal genauer deine Problemstelle beschreiben. Offensichtlich liegt es an dem if in dem auch anzahl() steht, das solltest du mal auseinander nehmen
cycap ist offline  
Alt 25.06.2008, 14:27  
Neuer Benutzer
 
Registriert seit: 08.03.2008
Beiträge: 25
areUkidding befindet sich auf einem aufstrebenden Ast
Standard

das problem mit der Zeile ist, dass ich im anderen Code die Zeilen zähle der Tabelle und in diesem nur wissen möchte, ob der timestamp größer ist als der heutige Tag minus einem ganzen Tag. Und die <= soll die Anzahl der möglichen Absendungen des Formulars begrenzen.

Da ich aber PHP Neuling bin weiß ich nicht ob ich das gleiche Prinzip auch bei Spalteneinträgen anwenden kann.

Das komische ist, das ganze hatte erst funktioniert und dann am nächsten Tag nicht mehr.
areUkidding ist offline  
Alt 25.06.2008, 14:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
soll die Anzahl der möglichen Absendungen des Formulars begrenzen.
Aber wenn die Funktion 1 liefert (bei funktionierendem System dürfte sie nicht einmal 2 liefern können) ist das Update doch schon verboten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Weder Update noch Insert funktioniert... MessengerNews! Datenbanken 3 31.07.2006 08:39
[Erledigt] [erledigt] IP Sperre funktioniert nicht wie sie soll Charokee PHP Tipps 2006 2 19.04.2006 22:04
Update funktioniert nicht Sachse PHP Tipps 2007 6 14.12.2005 08:46
Update funktioniert nicht wizzardxx PHP Tipps 2005-2 12 13.08.2005 21:17
UPDATE Datenbank funktioniert nicht??!! c-bass PHP Tipps 2005-2 23 01.08.2005 15:12
SQL Update funktioniert lokal aber auf dem Server nicht Datenbanken 1 22.07.2005 09:35
UPDATE funktioniert nicht... PHP Tipps 2005-2 2 12.07.2005 10:56
Update in mysql funzt nicht maeck PHP Tipps 2005-2 4 27.06.2005 22:52
MySQL UPDATE Befehl funktioniert nicht PHP Tipps 2005 6 24.01.2005 15:03
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
update von Bildern funktioniert nicht PHP Tipps 2004 1 05.10.2004 08:39
Insert und Update Befehl funktioniert nicht Anuschka Datenbanken 2 03.09.2004 00:38
UPDATE funktioniert irgendwie nicht yoshy PHP Tipps 2004 5 26.07.2004 10:51
UPDATE funktioniert nicht PHP Tipps 2004 4 08.06.2004 17:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php $_session[\'zeit\'] = time() dieselbe wie in input hidden

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:51 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