Problem bei meinem Script

Grashupfaa

Mitglied
Hy

Ich habe eine Frage zu dem folgenden Script, dass ich geschrieben habe.....ich verstehe einfach nicht, warum es mir, wenn ich auf den ändern button klicke, den Text in der Datei movie.txt nicht ändert. Das ganze sollte so eine art online administration für eine einzelne Zeile sein, die in eine Textdatei geschrieben wird und dann wo anders immer mit readfile ausgelesen wird. Außerdem wird am ANfang überprüft, ob man das richtige Passwort ("f") eingegeben hat, erst dann wird das Formular angezeigt....ich hoffe ihr könnt mir helfen.....achja, Fehlermeldung wird nicht ausgegeben, es passiert einfach gar nix ;(


PHP:
if($_POST["$sent"]==1) {
    $text=trim($_POST["$text"]);
    $comment=fopen('movie.txt','w+');
    fputs($comment,$text);
    fclose($comment);
    $erfolg="Änderungen wurden erfolgreich vorgenommen";
}
 If($_POST["passwort"]=="f"){
 
echo "
<br><div align=\"center\"><h1>Willkommen</h1></div>
<link rel='stylesheet' href='bgweiz.css' type='text/css'>
<body background='bg.gif' class='bigmargin'>

<tr>
    <td class='justify'>
    <input type='hidden' name='sent' value='1'> $erfolg
    <br><div align='center'><font color='#990000'>Neuer Text:<br><br></font></div>
    </td>
    </tr>
    <tr>
    <td>
    <center><textarea name='text' cols='100' rows='2'>";
    readfile('movie.txt'); echo" </textarea></center>
    </td>
    </tr>
    <tr>
    <td>
    <div align='center'>
    <input type='submit' name='Abschicken' value='&auml;ndern'>
    </div>
    </td>
    </tr>
    </form>";
}

 elseif (!$_POST["passwort"]=="") {

  echo "<br><h2>Sie haben ein falsches Passwort eingegeben</h2>";
}

Bitte benutze in Zukunft die [ php] und [ /php] Tags, damit dein Code farblich hervorgehoben wird.
 
Zuletzt bearbeitet von einem Moderator:
Probiers mal damit:
PHP:
<?php

if($_POST["sent"]==1) 
{
	$text=trim($_POST["text"]);
	$comment=fopen('movie.txt','w+');
	fputs($comment,$text);
	fclose($comment);
	$erfolg="Änderungen wurden erfolgreich vorgenommen";
}

if($_REQUEST["passwort"]=="f")
{

	echo "
	<br><div align=\"center\"><h1>Willkommen</h1></div>
	<link rel='stylesheet' href='bgweiz.css' type='text/css'>
	<body background='bg.gif' class='bigmargin'>

	<tr>
	<td class='justify'>
	<form action='$PHP_SELF' method='post'>
	<input type='hidden' name='sent' value='1'> $erfolg
	<br><div align='center'><font color='#990000'>Neuer Text:<br><br></font></div>
	</td>
	</tr>
	<tr>
	<td>
	<center><textarea name='text' cols='100' rows='2'>";
	readfile('movie.txt'); echo" </textarea></center>
	</td>
	</tr>
	<tr>
	<td>
	<div align='center'>
	<input type='submit' name='Abschicken' value='ändern'>
	</div>
	</td>
	</tr>
	</form>";
}

elseif (!$_POST["passwort"]=="")
{
echo "<br><h2>Sie haben ein falsches Passwort eingegeben</h2>";
}

?>

Das Problem war, das du anstatt $_POST["sent"] zu schreiben vor das sent noch ein Dollarzeichen zu setzen, wie man es bei einer variable tut. In diesem Fall ist zwar das ganze ein variabler Wert, der Name des Array-Elements aber fest ist - nämlich "sent". Ebenso bei $_POST["text"].

Außerdem hattest du ganz vergessen das Formular zu definieren. du hast zwar den <form> Tag wieder geschlossen, aber nie geöffnet. Die Variable $PHP_SELF enthält immer den Dateinamen der aufgerufenen PHP-Seite als Wert und ist hier als action anzugeben.

Wenn du die Sachen beachtest funktioniert dein script. Das ändert nicht daran, dass es etwas unlogisch aufgebaut ist ;)

Die Passwort-Abfrage solltest du zumindestens so umbauen, dass du den letzten Schritt folgendermaßen änderst:

PHP:
von:
elseif (!$_POST["passwort"]=="")
{
echo "<br><h2>Sie haben ein falsches Passwort eingegeben</h2>";
}

zu
else
{
echo "<br><h2>Sie haben ein falsches Passwort eingegeben</h2>";
}

So wird bei allen Passwort-eingaben außer "f" der Dialog "Falsches Passwort" angezeigt.

Ich hoffe ich konnte dir weiterhelfen. Mfg Warper
 
Zuletzt bearbeitet:
Zurück