SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.05.2008, 13:35:58
stivi stivi ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 6
Umfrage mit Sperre

So mal wieder n Noob in Sachen php hier.

Ich hab mir den Code für die Umfrage von selfphp rüber kopiert und die wichtigsten Dinge erstmal so abgeändert wie ich sie gerne hätte.

Es klappt auch alles wunderbar bis auf die Sperre..

So sieht jetzt mein Code aus:

Code:
<?php
if (isset($_POST["ergebnis"])) {
    setcookie("abgestimmt","ja",time()+60*60*3);
}

$thema = "Hitparade";
$auswahl = array("Super","Sehr Gut","Gut","Naja","Schlecht");
$anzahl = count($auswahl);

?><h3><?php echo $thema ?></h3>
<form method='post' action='<?php echo $PHP_SELF; ?>'>
<p>
<?php

foreach ($auswahl as $key=>$eintrag) {
    echo "<input type='radio' name='ergebnis' value='$key'> $eintrag<br>\n";
}

?>
</p>
<?php
if (empty($_COOKIE["abgestimmt"]) && !isset($_POST["ergebnis"])) {

// Submit nur zeigen, wenn Formular noch nicht abgeschickt wurde
echo "<input type='submit' value='Abstimmen'>";

} else {
echo "<p>Danke für deine Stimme!</p>\n";

// Formular abgeschickt? Aber bisher noch nicht abgestimmt?
if (empty($_COOKIE["abgestimmt"]) && isset($_POST["ergebnis"])) {

// Dateiname in Variable speichern
$datei="daten/stimmen.txt";

// Datei vorhanden?
if (file_exists($datei)) {
    $fp=fopen($datei,"r+");
} else {
    $fp=fopen($datei,"w");
}

// Datei einlesen
$stimmen=fread($fp,filesize($datei));

// String aus Datei in Array zerlegen
$stimmen=explode(",",$stimmen);

// Der gewählte Punkt wird um 1 erhöht!
$stimmen[$_POST["ergebnis"]]++;

// Stimmen in einem String zusammensetzen
for ($i=0;$i<$anzahl;$i++) {
    $total .= $stimmen[$i] .",";
}

// Neuen String in Datei schreiben
rewind($fp);
fputs($fp,$total);
fclose($fp);
}
}
?>
</form>
Wenn ich das ganze richtig verstanden habe müsste es ja danach eine Sperre von 3 Stunden geben bis man wieder abstimmen kann..?

Wenn ich allerdings den Link neu öffne (Nach z.B 5 Sekunden) kann ich schon wieder abstimmen.

Habe es auch mit dem vorgegebenen Beispiel von 60*60*24*30 versucht, was laut Beschreibung 30 Tage wäre. Auch das hat nicht geklappt.

Kann mir jemand sagen wo hier der Wurm drinn ist?

Schonmal danke im Voraus


PS: Die Umfrage findet ihr hier:

www.radio-powerplay.org/hitparade_umfrage.php
Mit Zitat antworten
  #2  
Alt 18.05.2008, 16:11:39
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Umfrage mit Sperre

Hallo stivi und willkommen im Forum.

Ich habe Deinen Code getestet und er funktioniert einwandfrei.
Hast Du vielleicht in Deinem Browser Cookies deaktiviert?

Bitte benutze in Zukunft die Forum-Tags für Deinen Code.

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #3  
Alt 18.05.2008, 18:05:07
stivi stivi ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 6
AW: Umfrage mit Sperre

Zitat:
Zitat von doppelklick Beitrag anzeigen
Hallo stivi und willkommen im Forum.

Ich habe Deinen Code getestet und er funktioniert einwandfrei.
Hast Du vielleicht in Deinem Browser Cookies deaktiviert?

Bitte benutze in Zukunft die Forum-Tags für Deinen Code.

doppelklick
Hi doppelklick

Danke für deine Mühe.


Ne, cookies sind akzeptiert (Firefox).

Merkwürdig, aber wenn du sagst dass es geht stell ich das ding dann mal ofiziell on.

Hast du auch direkt bei meinem Link den ich gepostet habe geschaut ob du gleich wieder voten kannst oder hast du ihn einfach selber schnell geuploadet?

gruss und danke
stivi
Mit Zitat antworten
  #4  
Alt 18.05.2008, 18:16:00
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Umfrage mit Sperre

Ich habe es bei mir lokal getestet und da geht es einwandfrei mit 60 Sekunden Sperre.

Auf Deiner Website kann ich sofort wieder abstimmen.

Wann setzt Du das Cookie?
Das muss unbedingt gesetzt werden bevor irgendwelcher Code an den Browser gesendet wird. Ich denke dass ist auf Deiner Seite nicht der Fall.

Teste nur mal folgenden Code:
test.php
PHP-Code:
<?php
if (isset($_POST["ergebnis"])) 
{
    
setcookie("abgestimmt","ja",time()+60);
}

$thema "Hitparade";
$auswahl = array("Super","Sehr Gut","Gut","Naja","Schlecht");
$anzahl count($auswahl);

?><h3><?php echo $thema ?></h3>
<form method='post' action='<?php echo $PHP_SELF?>'>
<p>
<?php

foreach ($auswahl as $key=>$eintrag) {
    echo 
"<input type='radio' name='ergebnis' value='$key'> $eintrag<br>\n";
}

?>
</p>
<?php
if (empty($_COOKIE["abgestimmt"]) && !isset($_POST["ergebnis"])) {

// Submit nur zeigen, wenn Formular noch nicht abgeschickt wurde
echo "<input type='submit' value='Abstimmen'>";

} else {
echo 
"<p>Danke für deine Stimme!</p>\n";

// Formular abgeschickt? Aber bisher noch nicht abgestimmt?
if (empty($_COOKIE["abgestimmt"]) && isset($_POST["ergebnis"])) {

// Dateiname in Variable speichern
$datei="daten/stimmen.txt";

// Datei vorhanden?
if (file_exists($datei)) {
    
$fp=fopen($datei,"r+");
} else {
    
$fp=fopen($datei,"w");
}

// Datei einlesen
$stimmen=fread($fp,filesize($datei));

// String aus Datei in Array zerlegen
$stimmen=explode(",",$stimmen);

// Der gewählte Punkt wird um 1 erhöht!
$stimmen[$_POST["ergebnis"]]++;

// Stimmen in einem String zusammensetzen
for ($i=0;$i<$anzahl;$i++) {
    
$total .= $stimmen[$i] .",";
}

// Neuen String in Datei schreiben
rewind($fp);
fputs($fp,$total);
fclose($fp);
}
}
?>
</form>
doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›

Geändert von doppelklick (18.05.2008 um 18:21:47 Uhr) Grund: Text ergänzt
Mit Zitat antworten
  #5  
Alt 18.05.2008, 19:05:32
stivi stivi ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 6
AW: Umfrage mit Sperre

Jop, der Code allein geht..

Dürfte also wohl drann liegen dass da vorher noch ne Google-Anzeige (auch php) vorher im Code drinn is?


Werde das gleich mal testen.
Mit Zitat antworten
  #6  
Alt 18.05.2008, 19:21:08
stivi stivi ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 6
AW: Umfrage mit Sperre

Hmm hab jetzt von den beiden Google Anzeigen (Javascript), der Navigation (Ebenfalls Javascript), der Statustanzeige des Radios (nur n iFrame) dem Link zu meiner CSS Datei und sogar dem Banner der oberhalb stand alles raus gelöscht, ohne Erfolg..


Keine Ahnung wo da der Wurm drinn ist. :S

Nachtrag:
Hab da noch was bemerkt..

Ich arbeite mit Dreamweaver, da wird ja in der Vorschau einfach ein kleines php Zeichen angezeigt..


Wenn ich nur den Code ab, ohne was, sind da 3 php Zeichen, habe ich aber drum herum den Rest meiner Seite kommen da 4 solche Zeichen.. Vieleicht erklärt das irgendwas? :S
Jop, bin am verzewifeln ^^

Geändert von stivi (18.05.2008 um 19:39:51 Uhr)
Mit Zitat antworten
  #7  
Alt 18.05.2008, 19:59:57
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Umfrage mit Sperre

Das Cookie muss auf der Seite gesetzt werden noch bevor irgend ein Code ausgegeben wird also noch vor:
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="de">
<head>
Schick doch mal eine PM mit Deiner Datei.

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #8  
Alt 18.05.2008, 20:32:59
stivi stivi ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 6
AW: Umfrage mit Sperre

Zitat:
Zitat von doppelklick Beitrag anzeigen
Das Cookie muss auf der Seite gesetzt werden noch bevor irgend ein Code ausgegeben wird also noch vor:
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="de">
<head>
Schick doch mal eine PM mit Deiner Datei.

doppelklick

hmm aber dann steht das ding ja nicht mehr da wo ichs will..? :S

Jo kann dir das File gerne schicken, dazu bräucht ich aber ne E-Mail Addy oder so, geht ja glaub ich hier per PN net?
Mit Zitat antworten
  #9  
Alt 18.05.2008, 23:06:35
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Umfrage mit Sperre

Du musst den Code aufteilen:

PHP-Code:
<?php
if (isset($_POST["ergebnis"])) {
    
setcookie("abgestimmt","ja",time()+60*60*3);
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="de">
<head>
...
</head>
<body>
...
...
<?php
$thema 
"Hitparade";
$auswahl = array("Super","Sehr Gut","Gut","Naja","Schlecht");
$anzahl count($auswahl);

?><h3><?php echo $thema ?></h3>
<form method='post' action='<?php echo $PHP_SELF?>'>
<p>
<?php

foreach ($auswahl as $key=>$eintrag) {
    echo 
"<input type='radio' name='ergebnis' value='$key'> $eintrag<br>\n";
}

?>
</p>
<?php
if (empty($_COOKIE["abgestimmt"]) && !isset($_POST["ergebnis"])) {

// Submit nur zeigen, wenn Formular noch nicht abgeschickt wurde
echo "<input type='submit' value='Abstimmen'>";

} else {
echo 
"<p>Danke für deine Stimme!</p>\n";

// Formular abgeschickt? Aber bisher noch nicht abgestimmt?
if (empty($_COOKIE["abgestimmt"]) && isset($_POST["ergebnis"])) {

// Dateiname in Variable speichern
$datei="daten/stimmen.txt";

// Datei vorhanden?
if (file_exists($datei)) {
    
$fp=fopen($datei,"r+");
} else {
    
$fp=fopen($datei,"w");
}

// Datei einlesen
$stimmen=fread($fp,filesize($datei));

// String aus Datei in Array zerlegen
$stimmen=explode(",",$stimmen);

// Der gewählte Punkt wird um 1 erhöht!
$stimmen[$_POST["ergebnis"]]++;

// Stimmen in einem String zusammensetzen
for ($i=0;$i<$anzahl;$i++) {
    
$total .= $stimmen[$i] .",";
}

// Neuen String in Datei schreiben
rewind($fp);
fputs($fp,$total);
fclose($fp);
}
}
?>
</form>
Hab Dir ne PN geschickt

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #10  
Alt 19.05.2008, 22:23:55
stivi stivi ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 6
AW: Umfrage mit Sperre

Muss dir das File net mehr schicken.

Hab es so wie du oben geschrieben hast versucht..


Und es funktioniert!


Vielen, vielen Dank!
Echt genial.
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
IP-Reload Sperre in Toplisten Script einbauen audiosputik PHP Grundlagen 5 09.08.2005 07:31:38
Umfrage Jacki Support 2 24.02.2004 16:09:49
Klasse TAntwort für Umfrage egon2000 PHP Grundlagen 5 11.02.2004 18:50:00
IP speichern bei einer Umfrage chriios PHP für Fortgeschrittene und Experten 1 06.12.2002 12:38:58
Problem mit einem PHP Hitcounter mit IP Sperre Szandor PHP für Fortgeschrittene und Experten 3 28.05.2002 20:56:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:19:34 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt