Gästebuch mit Passwortschutz - Hilfe gebraucht!
d0om
- php
Ich würde gerne das Passwort unserer Bandseite mit einem Passwort schützen, so dass es als eine Art "Newsticker" benutzt werden kann (es sollen also nur Leute Einträge verfassen können, die das Passwort kennen).
Hier mein "Gästebuch" Script:
Das ist die Seite, wo die Formulare stehen:
[Script]<table >
<tr>
<td style="vertical-align: top;">
<div style="overflow:auto; width:240px; height:200px; padding:5px; border:1px #787878 dashed;" >
<b><u><font color="#9B0028">In´s interne Gästebuch eintragen:</font></u></b>
<br><br>
<? include ("eintragen.php"); ?>
</div>
</td>
<td style= "vertical-align: top;">
<div style="overflow:auto; width:300px; height:200px; padding:5px; border:1px #787878 dashed;" >
<b><u><font color="#9B0028">Internes Gästebuch:</font></u></b>
<br><br>
<?php
$datenbank = "daten.dat"; $datei = fopen($datenbank,"r");
fpassthru($datei);
?>
</div>
</td>
</tr>
</table>[/Script]
Das hier ist "eintragen.php":
[Script]
<form method="post" action="gbintern.php">
<table >
<tr>
<td>Name: </td>
<td><input type="text" name="name"> </td>
</tr>
<tr>
<td>eMail: </td>
<td><input type="text" name="email"> </td>
</tr>
<tr>
<td>Eintrag: </td>
<td><textarea name="eintrag"></textarea> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Button" value="Absenden" style="font-family:Tahoma; font-size:10pt; color:#000000; background-color:#FAFAFA; border:1px #000000 solid;" onfocus="this.blur()" onMouseover="this.style.backgroundColor='#E6E6E6'" onMouseout="this.style.backgroundColor='#FAFAFA'" > </td>
</tr>
</table>
</form>
[/Script]
Und hier die "gbintern.php" Datei:
[Script]<?php
$daten="<hr><br><b>Eintrag von <a href=mailto:".$_POST[email].">".$_POST[name]."</a>:</b><br>". $_POST[eintrag]. "<br><br>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
?>[/Script]
Nun würde ich eben, wie gesagt, einen Passwortschutz einbauen, dass dort, wo auch Nachricht, Betreff und Name eingegeben werden, eine Passwortabfrage ist. Muss nicht mit Benutzername sein, kann aber.
Leider bin ich an dieses Gästebuchscript gebunden, hoffe ihr könnt mir trotzdem helfen :) .
Grüße & eine schöne Weihnachtszeit!
Hello,
Leider bin ich an dieses Gästebuchscript gebunden, hoffe ihr könnt mir trotzdem helfen :) .
Wenn Du gebunden bist, woher kommt dann der Quellcode?
Oder habe ich das jetzt verkehrt verstanden?
Kannst Du doch auf den Quellcode Einfluss nehmen?
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

Hello,
Leider bin ich an dieses Gästebuchscript gebunden, hoffe ihr könnt mir trotzdem helfen :) .
Wenn Du gebunden bist, woher kommt dann der Quellcode?
Oder habe ich das jetzt verkehrt verstanden?
Kannst Du doch auf den Quellcode Einfluss nehmen?Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hallo.
Doch, natürlich kann ich auch den Quellcode Einfluss nehmen.
Ich meinte damit nur, dass ich nicht ein komplett anderes Script nehmen kann.
Grüße :)
Hallo, aus denem code schließe ich jezt mal, das keine Datenbank zur verfügung steht bzw nicht genuzt werden kann (warum auch immer). da bieten sich eine lösungen an :
das Passwort steht im Script selber :
einfach das Passwort (verschlüsselt oder im klartext) in der Datei
gbintern.php notieren, und dann einfach vergleichen. Hier ein beispiel
mit einem verschlüsselten Passwort :
---- eintragen.php ----
<form method="post" action="gbintern.php">
<table >
<tr>
<td>Name: </td>
<td><input type="text" name="name"> </td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password" name="passwd"></td>
<tr>
<td>eMail: </td>
<td><input type="text" name="email"> </td>
</tr>
<tr>
<td>Eintrag: </td>
<td><textarea name="eintrag"></textarea> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Button" value="Absenden" style="font-family:Tahoma; font-size:10pt; color:#000000; background-color:#FAFAFA; border:1px #000000 solid;" onfocus="this.blur()" onMouseover="this.style.backgroundColor='#E6E6E6'" onMouseout="this.style.backgroundColor='#FAFAFA'" > </td>
</tr>
</table>
</form>
---- gbintern.php ----
if (md5($_POST["passwd"))=="ein md5 verschlüsseltes Passwort")
{
$daten="<hr><br><b>Eintrag von <a
href=mailto:".$_POST[email].">".$_POST[name]."</a>:</b><br>".
$_POST[eintrag]. "<br><br>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
}
viel spaß
fwolle
Hallo, aus denem code schließe ich jezt mal, das keine Datenbank zur verfügung steht bzw nicht genuzt werden kann (warum auch immer). da bieten sich eine lösungen an :
das Passwort steht im Script selber :
einfach das Passwort (verschlüsselt oder im klartext) in der Datei
gbintern.php notieren, und dann einfach vergleichen. Hier ein beispiel
mit einem verschlüsselten Passwort :
---- eintragen.php ----
<form method="post" action="gbintern.php">
<table >
<tr>
<td>Name: </td>
<td><input type="text" name="name"> </td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password" name="passwd"></td>
<tr>
<td>eMail: </td>
<td><input type="text" name="email"> </td>
</tr>
<tr>
<td>Eintrag: </td>
<td><textarea name="eintrag"></textarea> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Button" value="Absenden" style="font-family:Tahoma; font-size:10pt; color:#000000; background-color:#FAFAFA; border:1px #000000 solid;" onfocus="this.blur()" onMouseover="this.style.backgroundColor='#E6E6E6'" onMouseout="this.style.backgroundColor='#FAFAFA'" > </td></tr>
</table>
</form>
>
> ~~~php
> ---- gbintern.php ----
> if (md5($_POST["passwd"))=="ein md5 verschlüsseltes Passwort")
> {
> $daten="<hr><br><b>Eintrag von <a
> href=mailto:".$_POST[email].">".$_POST[name]."</a>:</b><br>".
> $_POST[eintrag]. "<br><br>";
> $datenbank = "daten.dat";
> $datei = fopen($datenbank,"a");
> fwrite($datei, $daten);
> }
>
viel spaß
fwolle
Hey, als ich mir deinen Post durchgelesen habe war ich voller Hoffnung ;) .
Kurz danach, beim Ausprobieren kam dann die Ernüchterung :( .
Ich habe das pw-script so eingefügt:
----eintragen.php----
<form method="post" action="gbintern.php">
<table >
<tr>
<td>Name: </td>
<td><input type="text" name="name"> </td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password" name="passwd"></td>
</tr>
<tr>
<td>eMail: </td>
<td><input type="text" name="email"> </td>
</tr>
<tr>
<td>Eintrag: </td>
<td><textarea name="eintrag"></textarea> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Button" value="Absenden" style="font-family:Tahoma; font-size:10pt; color:#000000; background-color:#FAFAFA; border:1px #000000 solid;" onfocus="this.blur()" onMouseover="this.style.backgroundColor='#E6E6E6'" onMouseout="this.style.backgroundColor='#FAFAFA'" > </td>
</tr>
</table>
</form>
----gbintern.php----
<?php
if (md5($_POST["passwd"])=="abc")
{
$daten="<hr><br><b>Eintrag von <a
href=mailto:".$_POST[email].">".$_POST[name]."</a>:</b><br>".
$_POST[eintrag]. "<br><br>";
$datenbank = "daten.dat";
$datei = fopen($datenbank,"a");
fwrite($datei, $daten);
}
?>
<div align="center"><table border="0">
<tr>
<td width="600" height="400" background="tablebg.png"><div align="center">
<?php
$dir = "./gbdankeschoenbilder/"; // Der Ordner der Bilder
$pics = array();
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if(filetype($dir . $file) == "file")
{
$pics[] = $file;
}
}
closedir($dh);
}
}
$zufall = rand(0,count($pics)-1);
echo '<img src="'.$dir.$pics[$zufall].'" alt="" />';
?>
</div></td>
</tr>
</table>
<br>
<a href="login.php"><img src="backtologin.png" width="600" height="100" border="0" alt=""></a></div>
PS: Die unteren Zeilen von gbintern.php sind wohl uninteressant, da dort nur ein Zufallsbild aufgerufen wird (als Dankeschön für einen Eintrag) :) .
Nun funktioniert das Script leider nicht :( .
Ich kann das falsche Passwort eingeben und werde trotzdem weitergeleitet.
Ein Eintrag findet aber nicht statt - gut!
Gebe ich das richtige Passwort ein werde ich auch weitergeleitet, aber ein Eintrag findet nicht statt - schlecht :(
Wahrscheinlich liegt die Lösung auf der Hand, aber leider bin ich in Sachen php nicht so bewandelt :(
Hoffe auf Hilfe, Grüße :)
Hi, das ist auch kein wunder. das passwort welches du eingibst, muss mit einem md5 verschlüsselten passwort verglichen werden.
in
if (md5($_POST["passwd"])=="abc")
geschiet volgendes :
das Password, welches in $_POST["passwd"] steht, wird durch die Funktion md5
gejagt, welches daraus ein md5 hash erzeugt. dies kannst du natürlich nicht mit dem klartext "abc" vergleichen, sondern muss mit dem md5 hash von "abc" verglichen werden. (kriegst du durch >>echo md5("abc")<< herraus).
das habe ich so als sicherheit eingebaut, damit das password nicht herrauskommt, fals jemand den quellcode in die finger kriegt.
naja, also 2 möglichkeiten :
1. du vergleichst es mit dem md5 hash deines passwortes,
if ($_POST["passwd"]=="900150983cd24fb0d6963f7d28e17f72") //md5("abc")
oder
2. möglichkeit, du lässt das mit dem md5 weg. also :
if ($_POST["passwd"]=="abc")
also frohes schaffen
FWolle