stefan123: scipt php erweitern

hallo liebe experten,

habe mal eine frage brauche mal hier eure hilfe

habe mir ein script aus dem google kopiert,

könnt iht mir es erweitern, wäre echt toll von euch für die hilfe

habe leider noch keine ahnung von php , soll ein schönes gästebuch werden

so das ich das alter , homepage ,meine besuchten Hotels auch als eintag im gästebuch erfahren kann.

vielen dank an euch im voraus

gruß stefan

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>

<?php
$name = $HTTP_POST_VARS['name'];
$email = $HTTP_POST_VARS['email'];
$message = $HTTP_POST_VARS['message'];
if($submit)
{
if(($email == "") || ($name == "") || ($message == ""))
echo "<b>Fehlgeschlagen! Bitte alle Felder ausfüllen!</b>";
else
{
$x = 0;
$dateiname = "gast.txt";
$datei = fopen($dateiname, "r");
while (!feof($datei)) {
$x++;
$saved[$x] = fgets($datei, 1024);
}
$datum = date("d.m.Y");
$zeit = date("H:i");
$datei=fopen("gast.txt", "w");
$text=strip_tags($text);
fwrite($datei,"<table border=0 width=500 bgcolor=000000 cellspacing=1 cellpadding=3><tr><td bgcolor=ffffff><a href="mailto:$email"><b>$name</b></a> schrieb am $datum um $zeit Uhr</td></tr><tr><td bgcolor=white>$message</font></td></tr></table>\n");
for ($i=1;$i <= $x; $i++) {
fwrite($datei, "$saved[$i]");
}
fclose($datei);
}
}
$dateiname = "gast.txt";
$datei = fopen($dateiname, "r");
fpassthru($datei);
?>

</head>

<body>

<div align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<div align="center">
<table border="0" cellpadding="0" cellspacing="6" width="191">
<tr>
<td><font face="Arial" size="2">Name:</font></td>
<td><input type="text" name="name" size="15"></td>
</tr>
<tr>
<td><font face="Arial" size="2">Email:</font></td>
<td><input type="text" name="email" size="15"></td>
</tr>
<tr>
<td valign="top"><font face="Arial" size="2">Text:</font></td>
<td><textarea name="message" cols="35" rows="6"></textarea></td>
</tr>
<tr>
<td><input type="reset" value="Reset"></td>
<td>
<div align="right">
<input type="submit" name="submit" value="SENDEN"></div>
</td>
</tr>
</table>
</div>
</form>

</body>
</html>

  1. Hallo Stefan!

    Zunächst einmal wäre es vielleicht nett wenn man um Hilfe bittet wenigstens ordentliche Sätze zu formulieren.

    Groß-/Kleinschreibung und Interpunktion sollten nicht zu viel verlangt sein.

    habe mir ein script aus dem google kopiert,

    Oh, bei dir ist Google extern und bietet Scripte an?
    Du weißt schon, dass Google eine Suchmaschine ist, die dich auf z.B. Anbieter von Scripten verlinkt (wenn man danach sucht)?
    Wo hast du dein Script also her?

    könnt iht mir es erweitern, wäre echt toll von euch für die hilfe

    Könnte ich schon, was springt denn für mich dabei heraus?
    Oder möchtest du selbst lernen und verstehen wie so etwas funktioniert?

    habe leider noch keine ahnung von php , soll ein schönes gästebuch werden

    Google nach einem Tutorial. http://tut.php-quake.net/de/ wär z.B. ein guter Start.
    Du möchtest aus einem veralteten (und schlechten) Kontaktformular ein Gästebuch bauen.
    Das verspricht nicht viel Erfolgschancen da man komplett neu anfangen müsste.
    Ergo wär deine Frage: "Könnt ihr mir mal ebend ein schönes Gästebuch bauen? Wär echt toll!"

    Dafür gibt es genügend Anbieter im Internet.
    Die kannst du z.B. auch "beim dem Google" finden.

    so das ich das alter , homepage ,meine besuchten Hotels auch als eintag im gästebuch erfahren kann.

    Du möchtest also deine besuchten Hotels aus deinem Gästebuch erfahren. So so...
    Und welches Alter? Das deiner Homepage? Des Gästebuchs? Des Eintrags? Deins?
    Oder des Einzutragenden? Wenn letzteres, was hat das in einem Gästebuch verloren?

    Hinterlässt du bei einer Beerdigung auch Alter und besuchte Hotels Kondolenzbuch?

    Grüße, Matze

    1. Hallo Matze,

      Zunächst einmal wäre es vielleicht nett wenn man um Hilfe bittet wenigstens ordentliche Sätze zu formulieren. Groß-/Kleinschreibung und Interpunktion sollten nicht zu viel verlangt sein.

      dann fass Dir, insbesondere was Deine Interpunktion des ersten Satzes betrifft, an die eigene Nase!

      Gruß aus Berlin!
      eddi

      1. Hey Eddi!

        dann fass Dir, insbesondere was Deine Interpunktion des ersten Satzes betrifft, an die eigene Nase!

        Ich rede nicht von Perfektion, aber einen Ansatz zu erkennen zeugt wenigstens von gutem Willen ;)
        Letzteres vermisse ich beim OP gleich 2 mal.

        Grüße, Matze

        1. Re:

          Zunächst einmal wäre es vielleicht nett wenn man um Hilfe bittet wenigstens ordentliche Sätze zu formulieren.
          dann fass Dir, insbesondere was Deine Interpunktion des ersten Satzes betrifft, an die eigene Nase!
          Ich rede nicht von Perfektion, aber einen Ansatz zu erkennen zeugt wenigstens von gutem Willen ;)

          Na dann nehme ich das eine Komma, was Du jetzt schon mal setzt, als guten Willen hin - auch wenn es nicht langt.
          Jemanden zu ermahnen, eigene Bemühungen zu tätigen, ist keine kausale Grundlage für Nörgelei an dessen Rechtschreibung!

          Gruß aus Berlin!
          eddi

          1. Jemanden zu ermahnen, eigene Bemühungen zu tätigen, ist keine kausale Grundlage für Nörgelei an dessen Rechtschreibung!

            Richtig. Aber Satzzeichen und Großbuchstaben kosten nichts extra.
            Diese Form mag in einem Chat, Telegram oder Notiz durchgehen, ich bevorzuge bei sonstiger schriftlicher Kommunikation aber vollständige Sätze.
            Sorry wenn ich übers Ziel hinausgeschossen bin.

            Sowas wie "habe hier ein problem, brauche hilfe" tut meinen Augen einfach weh und ich denk mir nur noch "ja, brauchst du".

            Grüße, Matze

    2. Wo hast du dein Script also her?

      Möglicherweise von Google. :p

      1. Möglicherweise von Google. :p

        Touchè!

        1. Hallo,

          Möglicherweise von Google. :p
          Touchè!

          das würde man als "tuschä" aussprechen.
          Französisch ist nicht einfach - schon die Accents stellen uns Deutsche gelegentlich vor Probleme. Meintest du: Touché?

          *scnr*
           Martin

          --
          Solange der Nagellack nicht trocken ist,
          ist eine Frau praktisch wehrlos.
            (Burt Reynolds, US-Schauspieler)
          1. das würde man als "tuschä" aussprechen.
            Französisch ist nicht einfach - schon die Accents stellen uns Deutsche gelegentlich vor Probleme. Meintest du: Touché?
            *scnr*

            Nein, ich meinte "tuschä". Das ist bei uns Dialekt ;)

  2. @@stefan123:

    nuqneH

    habe mir ein script aus dem google kopiert,

    Schmeiß es gleich wieder weg!

    Zumindest sollte das Stopfen der Sicherheitslöcher die allererste „Erweiterung“ des Scripts sein. It’s a bug, not a feature.

    Informiere dich über XSS und darüber, dann man Nuztereingaben NIEMALS unbearbeitet wieder ausgeben darf (bei dir: $name, $email, $message).

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
  3. Hello Stefan,

    habe mir ein script aus dem google kopiert,

    das Script ist in seiner Machart mindestens fünf Jahre alt und weist diverse Schwachstellen auf.

    könnt iht mir es erweitern, wäre echt toll von euch für die hilfe

    Zuerst sollten wir Dir helfen, es zu verstehen, also genauer gesagt, zu verstehen, was der Autor eigentlich damit bezweckt haben könnte. Als Zweites könnten wir dann gemeinsam versuchen, diese Ziele mit einem neuen Script zu erreichen, dass möglichst keine Lücken und Schwachstellen mehr aufweist.

    Anschließend könnten wir das neue Script dann auf Deine Bedürfnisse erweitern.

    Bist Du damit einverstanden? Dann schildere bitte mal aus Deiner Sicht, was das gefundene Script bezwechen soll.

    $name = $HTTP_POST_VARS['name'];
    $email = $HTTP_POST_VARS['email'];
    $message = $HTTP_POST_VARS['message'];

    $HTTP_POST_VARS und Co. wurden schon unter PHP 4.x ersetzt gegen $_GET, $_POST, ... usw. und sind inzwischen abgeschafft. Außerdem greifst Du auf Paramter zu, ohne vorher geprüft zu haben, ob diese auch übertragen wurden.

    if($submit)

    Hier benutzt Du augenscheinlich das Feature "register_globals" (bitte danach googlen), das ebenfalls seit PHP 4.x auf der Abschussliste steht und meistens für Kummer gesorgt hat.

    {
    if(($email == "") || ($name == "") || ($message == ""))

    Hier verlässt Du dich auf die automatische Typumwandlung von PHP, denn wenn z.B. $name aus $HTTP_POST_VARS['name'] nicht erstellt ewrden konnte, dann müsste es false enthalten.

    $datei = fopen($dateiname, "r");

    jetzt müsste zumindest geprüft werden, ob fopen() erfolgreich war

    while (!feof($datei)) {
    $x++;
    $saved[$x] = fgets($datei, 1024);
    }
    $datum = date("d.m.Y");
    $zeit = date("H:i");
    $datei=fopen("gast.txt", "w");

    Die Datei ist doch noch offen für das Lesen, oder? Da sollte jetzt die rote Lampe angehen. Im nebenläufigen Betrieb, den man bei Webapplikationen i.d.R. immer hat, kracht es hier eher früher als später. Lies Dir mal den Artikel von Christian durch:
    http://aktuell.de.selfhtml.org/artikel/programmiertechnik/dateisperren/

    usw., usw.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de