php - simpler Zähler

bollibopsel

Mitglied
Hallo,

ich bin php-Anfänger und möchte einen Zähler realisieren.
Wenn ein Benutzer 3 mal die Falsche Zahl eingibt, soll er eine Meldung bekommen.
Ich dachte also ich müßte eine Variable haben, die jedesmal wenn die Eingabe falsch ist
hochzählt. Leider kriege ich das nicht hin.
Wäre super, wenn mir jemand dabei helfen könnte.

HTML:
<?php
if ($_POST['q']!="") { 
 if ($_POST['q']>25 || $_POST['q']<15) {
echo 'falsche eingabe';
}  else  {
echo 'richtige eingabe';
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
	<title>Augen-Gewinnspiel</title>	    
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">						
    </head>
<body>	
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" accept-charset="utf-8" method="post">
<input type="text" name="q" value=""><br>
<input type="submit" value=" Absenden ">   
</form>
</body>
</html>

Vielen Dank im voraus
bollibopsel
 
PHP:
<?php
session_start();
if ( $_POST['q'] !="" ) 
{ 
   if ($_POST['q']>25 || $_POST['q']<15) 
   {
   if ( !isset ($_SESSION['count']) ) $_SESSION['count'] = 1;
   echo 'falsche eingabe';
   $_SESSION['count']++;
   if ($_SESSION['count'] == 3) echo '3mal Falsche Eingabe';
   }  
   else  
   {
   echo 'richtige eingabe';
   }
}
?>

So müsste es gehn ;)
 
Hallo Acriss,

vielen Dank, das funktioniert. Der Zähler zählt hoch, aber wie ist denn das mit Sessions?
Wann startet die eigentlich wieder bei 0?

HTML:
<?php
session_start();
if ( $_POST['q'] !="" ) 
{ 
   if ($_POST['q']>25 || $_POST['q']<15) 
   {
   if ( !isset ($_SESSION['count']) ) $_SESSION['count'] = 1;
   echo 'falsche eingabe<br>';
   echo  $_SESSION['count'];
   $_SESSION['count']++;
   if ($_SESSION['count'] == 3) echo '3mal Falsche Eingabe';
   }  
   else  
   {
   echo 'richtige eingabe';
   }
}
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
	<title>Augen-Gewinnspiel</title>	    
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">						
    </head>
<body>	
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" accept-charset="utf-8" method="post">
<input type="text" name="q" value=""><br>
<input type="submit" value=" Absenden ">   
</form>
</body>
</html>
 
Jo, kein Thema ;)

Wenn du
$_SESSION['count'] = 0; eingibst, am besten so:
PHP:
if ($_SESSION['count'] == 3) 
{
echo '3mal Falsche Eingabe';
$_SESSION['count'] = 0;
}

Kannst du sie immer nach 3 Fehlern zurücksetzen,

Ansonsten wird die Session automatisch nach iner bestimmten Zeit gelöscht.
 
Wenn nun zum Beispiel $_SESSION['count'] auf 2 steht, der eine Benutzer 2 falsche Zahlen eingegeben hat, die Seite verläßt und ein neuer Benutzer von einem anderen Rechner eine falsche Zahl eingibt, zählt die $_SESSION['count'] dann eigenlich wieder von Null oder zählt $_SESSION['count'] bei 2 weiter?
Das ist mir noch nicht klar.
 
Für jeden Benutzer wird eine neue, unabhängige Session erzeugt.
Das gilt grundsätzlich für alle Variablen im PHP.

Man kann sich das so vorstellen, dass von allen Scripten die durch einen Benutzer aufgerufen werden eine Instanz erzeugt wird, die keinen Einfluß auf Instanzen anderer Benutzer hat.

Gruß tyg3r
 
Zurück