PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   if else und array problemmit gästebuch (https://www.php-resource.de/forum/php-developer-forum/99299-if-else-und-array-problemmit-gaestebuch.html)

Bagerfahrer 15-04-2010 15:27

problem mit gästebuch
 
Hallo Erstmal

Ich habe ein Problem ein Array zu erstellen mit verschiedenen Rechenaufgaben sprich im formular (gaestebuch.php)soll ein weiters Input Feld geben
wo man die Rechenaufgabe eingibt und wenn man auf Absenden klickt
soll die dann gecheckt werden in neuerbeitrag.php ob sie richtig oder
falsch ist . Wenn die Aufgabe dann richtig ist sollen die daten in gaestebuch.txt reingeschrieben werden und wenn es falsch ist soll man zurück und die Daten verbessern die man eingegeben hat .Hier mal die Dateien:

gaestebuch.php

PHP-Code:

<html>
<head>
<title>Gästebuch</title>

Wollen Sie einen Beitrag hinzufügen?<br><br>

<form action="neuerbeitrag.php" Method="post">
Ihr Name:<br>
<input name="Name" size="40"><br><br>

E-Mail:<br>
<input name="EMail" size="40"><br>
<br><br>

Inhalt:<br>

<textarea name="inhalt" cols="40" rows="12"
wrap="physical"></textarea><br>
<input type="submit" value="Absenden">
</form>
<hr>

<?php
$beitrag 
file("gaestebuch.txt");
krsort($beitrag);

foreach(
$beitrag as $ausgabe)
   {
   
$ausgabe stripslashes($ausgabe);
   
$zerlegen explode("|"$ausgabe);

   echo 
"
   <table align=\"center\"
        border=\"1\" cellspacing=\"0\"
   cellpadding=\"5\" bordercolorlight=\"black\"
   bordercolordark=\"black\" width=\"50%\">
   <tr>
   <td>
  Von <a href=\"mailto:$zerlegen[0]\">$zerlegen[1]</a>
  am $zerlegen[2]
   </td>
   </tr>

   <tr>
   <td>
   $zerlegen[3]
   </td>
   </tr>
   </table><br>
   "
;
   }
?>

neuerbeitrag.php
PHP-Code:

<html>
<head>
<title>Gästebuch - Speichere Beitrag</title>
</head>
<body>

<?php
$user 
$_POST["Name"];
$user htmlentities($user);

$inhalt $_POST["inhalt"];
$inhalt htmlentities($inhalt);
$inhalt str_replace("\n""<br>"$inhalt);

$email $_POST["EMail"];
$email htmlentities($email);

if (
$inhalt == "" or $user == "")
   {
   echo 
"Sie müssen das Feld \"Namen\"
   und \"Inhalt\" ausfüllen"
;
   }

else
   {
   
$datumdate("d.m.Y H:i:s");

   
$eintrag="$email|$user|$datum|$inhalt";

   
$datei fopen("gaestebuch.txt""a");
   
fwrite($datei"\n".$eintrag);
   
fclose($datei);

   echo 
"Ihr Eintrag wurde erfolgreich gespeichert";
   }
?>

<br>
<a href="gaestebuch.php">Zurück zum Gästebuch</a>
</body>
</html>

Die txt datei braucht man ja nicht hier .
Ich habe selber Sachen ausprbiert aber bei mir klappt es einfach nicht.
Jetzt hoffe ich auf eure Antworten
Schonmal Danke in Voraus:)

Gruß Bagerfahrer

AmicaNoctis 15-04-2010 15:32

Hallo und willkommen im Forum,

bitte lies erstmal die Regeln und passe deinen Beitrag mit dem http://www.php-resource.de/forum/ima...ttons/edit.gif-Button => [Erweitert] entsprechend an, so dass du Code in den dafür vorgesehenen Tags postest und nicht als Zitat und am besten auch noch mit den ursprünglichen Einrückungen für bessere Lesbarkeit.

Deine Anfrage solltest du auch überarbeiten, denn zumindest ich habe nach 3-maligem Lesen immer noch nicht kapiert, was jetzt dein Problem ist.

Danke.

Amica

TobiaZ 16-04-2010 18:21

Zitat:

Ich habe selber Sachen ausprbiert aber bei mir klappt es einfach nicht.
Das heißt, du willst jetzt den fertigen Code von uns, oder?

Anderenfalls beschreib' doch bitte das Problem, nur dann können wir dir helfen es zu lösen. Dein Code enthält noch nicht die Spur von dem was du vor hast.

Bagerfahrer 16-04-2010 18:37

Problem
 
Also ich will eine Rechenaufgabe als Spamschtz einsetzen nun weiß ich aber nicht wie ich es in gaestebuch.php einbaue und wie ich es in neuerbeitrag.php nachprüfen kann.Hab nur jetzt die Codes reingeschrieben damit ihr sehen könnt wo ich den Code einbauen könnte.

Gruß Bagerfahrer

Kropff 16-04-2010 19:00

Das hängt von der Art der Rechenaufgabe ab. Hier im Forum gibt es zum Beispiel Sachen wie "Was ist sieben plus drei in Worten?". Dann ist die Antwort "Zehn".

Du könntest das beispielsweise über ein Array lösen:
PHP-Code:

$spamschutz = array();
$spamschutz[0] = array ('Was ist sieben plus drei in Worten?','Zehn');
$spamschutz[1] = array ('Was ist 3 plus fünf in Zahlen?','8');
// usw. 

Dann wählst du mit rand zufällig einen Array-Eintrag aus.
PHP-Code:

$random   rand(0count($spamschutz) - 1);
$question $spamschutz[$random][0];
$answer   $spamschutz[$random][1]; 

Dann must du nur nach dem Absenden prüfen ob die Antwort identisch ist mit dem Eintrag:
PHP-Code:

if ($_POST['antwort'] == $answer

Ungetestet und nur zur Anschauung.

Peter


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:06 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG