php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.12.2008, 18:13  
Neuer Benutzer
 
Registriert seit: 25.12.2008
Beiträge: 11
Sleazoid befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Zeitsperre ~ Anzeigen von verbleibender Zeit

Hallo alle zusammen. ^_^

Ich programmiere zurzeit eine JS-Spiel, dass man nur alle 30 min. spielen darf. Ich habe dafür eine Zeitsperre programmiert.
Ich habe folgenden Code:

PHP-Code:
<?
$abfrage 
"SELECT timestamp FROM spiele WHERE name = '".$name."' AND spiel = 'zahlenraten' ORDER BY timestamp DESC LIMIT 1";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))
{
         if(
mysql_num_rows($ergebnis) == 0)
         {
                 echo
"   <form>
                         <input type='text' name='Raten' id='Raten' value='' size='5' />
                         <input type='button' name='Raten2' id='Raten2' value='Raten' onclick='generate();' />
                         </form>
                         </center"
;
         }
         else
         {
                 
$zeit time();
                 
$timestamp $row->timestamp;


                 if(
$zeit $timestamp 1800)
                 {
                         
$wartezeit $zeit $timestamp;
                         
$nochwarten date("i",$wartezeit);
                         echo
"Du musst noch ".$nochwarten." Minuten warten, bis du erneut spielen kannst!";
                 }else
                 {

                         echo
"
                         <form>
                         <input type='text' name='Raten' id='Raten' value='' size='5' />
                         <input type='button' name='Raten2' id='Raten2' value='Raten' onclick='generate();' />
                         </form>
                         </center"
;
                 }
         }
}

?>
Das ganze klappt auch, nur bei dem Codeabschnitt

PHP-Code:
$wartezeit $zeit $timestamp;
$nochwarten date("i",$wartezeit);
echo
"Du musst noch ".$nochwarten." Minuten warten, bis du erneut spielen kannst!"
hapert es noch. Ich kriege es einfach nicht hin, anzuzeigen, wie lange man noch warten muss.

Kann mir da jemand helfen?

EDIT: Ich glaube, ich habe das Problem in das falsche Forum gepostet, fortgeschritten ist das Ganze ja wirklich nicht. Kann das ein Mod verschieben? Danke.

Geändert von Sleazoid (25.12.2008 um 18:20 Uhr).
Sleazoid ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.12.2008, 19:22  
Erfahrener Benutzer
 
Benutzerbild von Phoscur
 
Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse:
Fortgeschritten
Phoscur wird schon bald berühmt werdenPhoscur wird schon bald berühmt werden
Standard

Naja mit date('i',$wartezeit) bekommst du nur den Minutenanteil aus $wartezeit.
Ich würde eher round($wartezeit/60) nehmen, weil du ja mit Sekundentimestamps arbeitest.
__________________
Phoscur ist offline   Mit Zitat antworten
Alt 25.12.2008, 22:10  
Neuer Benutzer
 
Registriert seit: 25.12.2008
Beiträge: 11
Sleazoid befindet sich auf einem aufstrebenden Ast
Standard

Der Tipp ist gut, danke. =)

Nur leider wird jetzt, nachdem gespielt wird, angezeigt:
"Du musst noch 0 Minuten warten, bis du erneut spielen kannst!"

Das kann ja nicht stimmen. D.h., der Fehler muss hier

PHP-Code:
$wartezeit $zeit $timestamp
liegen.

Weiß jemand, was ich da rechnen muss?
Sleazoid ist offline   Mit Zitat antworten
Alt 26.12.2008, 11:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Welchen Typ hat das Feld timestamp in der MySQL-Tabelle?
David ist offline   Mit Zitat antworten
Alt 26.12.2008, 12:24  
Neuer Benutzer
 
Registriert seit: 25.12.2008
Beiträge: 11
Sleazoid befindet sich auf einem aufstrebenden Ast
Standard

Der Typ ist int(100).
Sleazoid ist offline   Mit Zitat antworten
Alt 26.12.2008, 12:37  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann versuch es doch bitte mal mit
PHP-Code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'1);

$abfrage "
  SELECT
    `timestamp`
  FROM
    spiele
  WHERE
    name='"
.$name."'
    AND spiel = 'zahlenraten'
  ORDER BY
    `timestamp` DESC
  LIMIT
    1"
;
$ergebnis mysql_query($abfrage) or die(mysql_error());
$row mysql_fetch_array($ergebnisMYSQL_ASSOC);
if ( 
false===$row ) {
  echo 
'
    <form>
      <div>
        <input type="text" name="Raten" id="Raten" value="" size="5" />
        <input type="button" name="Raten2" id="Raten2" value="Raten" onclick="generate();" />
      </div>
    </form>
  '
;
}
else
{
  
$diff time() - $row['timestamp'];
  echo 
'<pre>Debug: zeit='time(), "\ntimestamp="$row['timestamp'], "\ndiff="$diff"</pre>\n";

  
printf('<p>Du musst noch %d:%d Minuten warten</p>', (int)$diff/60$diff%60);
}
?>
David ist offline   Mit Zitat antworten
Alt 26.12.2008, 12:48  
Neuer Benutzer
 
Registriert seit: 25.12.2008
Beiträge: 11
Sleazoid befindet sich auf einem aufstrebenden Ast
Standard

Das habe ich gemacht, jetzt wird jedoch folgendes ausgegeben:


Code:
Warning: ini_set() has been disabled for security reasons in spiel1.php on line 124

Debug: zeit=1230292028
timestamp=1230291633
diff=395

Du musst noch 6:35 Minuten warten
Außerdem wird, wenn aktualisiert wird, die Zeit hochgezählt, also nicht 6:35, 6:34, 6:33, sondern 6:35, 6:36, 6:37.
Sleazoid ist offline   Mit Zitat antworten
Alt 26.12.2008, 13:01  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Operanden vertauscht
PHP-Code:
$diff $row['timestamp'] - time(); 
zeit: 26.12.2008 12:47:08
timestamp: 26.12.2008 12:40:33

Dein timestamp liegt in der Vergangenheit, der Benutzer dürfte bereits wieder raten.

Geändert von David (26.12.2008 um 13:05 Uhr).
David ist offline   Mit Zitat antworten
Alt 26.12.2008, 16:58  
Neuer Benutzer
 
Registriert seit: 25.12.2008
Beiträge: 11
Sleazoid befindet sich auf einem aufstrebenden Ast
Standard

Ich habe jetzt den Code...

PHP-Code:
<?
error_reporting
(E_ALL);

$abfrage "SELECT `timestamp` FROM spiele WHERE name='".$name."' AND spiel = 'zahlenraten' ORDER BY `timestamp` DESC LIMIT 1";
$ergebnis mysql_query($abfrage) or die(mysql_error());
$row mysql_fetch_array($ergebnisMYSQL_ASSOC);
if(
false == $row )
{
  echo 
'
    <span id="anzeige">
    <form>
      <div>
        <input type="text" name="Raten" id="Raten" value="" size="5" />
        <input type="button" name="Raten2" id="Raten2" value="Raten" onclick="generate();" />
      </div>
    </form>
    </span>
  '
;
}
else
{
$diff time() - $row['timestamp'];
if(
$diff 120)
{
 
printf('<p>Du musst noch %d Minuten warten</p>', (int)$diff/60);
}
else
{
   echo 
'
    <span id="anzeige">
    <form>
      <div>
        <input type="text" name="Raten" id="Raten" value="" size="5" />
        <input type="button" name="Raten2" id="Raten2" value="Raten" onclick="generate();" />
      </div>
    </form>
    </span>
  '
;
}
}
aber es klappt immer noch nicht. Irgendetwas stimmt mit der Rechnung nicht.
Sleazoid ist offline   Mit Zitat antworten
Alt 26.12.2008, 22:06  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

siehe Post #8
Zitat:
Zitat von David Beitrag anzeigen
Operanden vertauscht
David ist offline   Mit Zitat antworten
Antwort


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
Wie kan man zeit plus zeit rechnen? coolerj PHP Tipps 2008 9 20.12.2008 12:49
Mehrere div's mit gleichen ID anzeigen / ausblenden phpbeginner HTML, Usability und Barrierefreiheit 9 06.09.2007 02:48
Baumstruktur anzeigen PHP-Fortgeschrittene 13 31.03.2006 21:37
Session: Verbleibende Zeit anzeigen SvenLittkowski PHP Tipps 2006 12 02.01.2006 18:38
Bild zu einer bestimmten Zeit anzeigen PHP Tipps 2005-2 26 31.08.2005 17:13
Bilder nur zur gewissen Zeit anzeigen lassen!? Kori HTML, Usability und Barrierefreiheit 1 10.07.2005 08:09
[Erledigt] Zeit von deutschland nach GMT+7 umwandeln PHP Tipps 2005 16 08.05.2005 01:33
Datenfeld mit der aktuelsten Zeit auswählen Datenbanken 3 25.04.2005 23:14
Formular nach UPDATE anzeigen PHP Tipps 2004-2 5 22.12.2004 02:06
[Erledigt] Cookie - Seite anzeigen / nicht anzeigen PHP Tipps 2004-2 2 11.11.2004 15:59
[Erledigt] Zeit + Zeit = Horror PHP Tipps 2004 25 22.09.2004 14:18
Alle Datenbanken und Tabellen anzeigen anzeigen imported_Lumio PHP Tipps 2004 4 13.09.2004 14:26
Zeit von PDT nach GMT+2 umwandeln Mutatos PHP-Fortgeschrittene 1 07.09.2004 17:11
[Erledigt] Erstellungszeit: Zeit an andere Seite weitergeben? PHP Tipps 2004 3 30.08.2004 08:40
große XML-Datei in annehmbarer Zeit durchsuchen PHP-Fortgeschrittene 5 02.06.2004 15:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
kino.to zeitsperre, php zeitsperre, php formular zeitsperre, formular zeitsperre, zeitsperre programmieren, php wartezeit anzeigen, verbleibende zeit php, spiele zeitsperren, zeitsperre php, zeitanzeige kino.to, if zeit php, html zeit anzeigen, formular zeitsperre php, zeitsperre bei spielen, php verbleibende zeit current_timestamp, mysql restliche laufzeit in tagen anzeigen, uhr mit verbleibender zeit, php button nach zeit sperren, zeitsperre für button php, php zeitsperre für button

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