PHP programmierung

Diskutiere PHP programmierung im Programmierung Forum im Bereich Software Forum; Hallo miteinander. Ich arbeite seit einigen Tagen an einem Gästebuch auf html und PHP basis. Ich habe alle nötegen Dateien programmiert: in der...
O

Office2007

Gast
Hallo miteinander. Ich arbeite seit einigen Tagen an einem Gästebuch auf html und PHP basis. Ich habe alle nötegen Dateien programmiert: in der Index.html steht das:
HTML:
<meta http-equiv="Content-Language" content="de-ch">
<p align="center"><font size="7"><a href="go.php?action=entry.html">!Ins Gästebuch 
eintragen!</a></font><br>
<b>PHP@GB Version 1.0 !!!DEBUG!!!</b></p>
<hr>
<p align="center">
<iframe name="I1" align="left" width="1136" height="1649" src="eintraegephpgb.html">
Ihr Browser unterstützt Inlineframes nicht oder zeigt sie in der derzeitigen Konfiguration nicht an.</iframe></p>
in der entry.html steht das:
HTML:
<form method="POST" action="eintragen.php">
<p>
  <b>Name:               
  </b><input type="text" name="Name" size="20"><br>
  <b>Homepage         </b>
  <input type="text" name="Url" size="20"><br>
  <b>Ihr Text            
  </b><input type="text" name="Kommentar" size="20"><br>
  <b>Ihre E-Mail       </b>
  <input type="text" name="EMail" size="20"></p>
  <p><input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></p>
</form>
in der go.php steht das:
Code:
<?PHP
$action = $_GET['action'];
if ($action == "entry.html") {$link = "entry.html";} // Default Blank


header("Location: $action"); exit();
?>
in der datei eintraegephpgb.html soll immer wenn ein eintrag abgesendet worden ist das unten angehängt werden, wobei die platzhalter { } durch das eingegebene ersetzt werden muss. meine Frage: was muss in der datei eintragen.php stehen?
p.s: es sind alle dateien unter http://www.velder.li/upload/phpgb/phpgb.zip zum download bereit.
man kann auch anschauen, wie das gb aussieht unter www.velder.li/upload/phpgb!!
vielen Dank und Gruss Office2007
 
O

Office2007

Gast
hat niemand eine idee?
 
F

Fuselpower

Mitglied seit
03.05.2006
Beiträge
8
Es muß eine Datei guestbook.txt erstellt werden auf welche die Schreibrechte gesetzt sind.

Dann die guestbook.php - Zum Anzeigen der Einträge.
PHP:
<html>
<head>
<body>
<a href="entry.php">Neuen Eintrag hinzufügen</a>
<p>
<?php
include("guestbook.txt");
?>
</p>
</body></head></html>
Und die entry.php zum Erstellen eines neuen Eintrage.
PHP:
<?php
  if ($_POST)
  {
    $User = "";
	$Url = "";
	$EMail = "";
	$Kommentar ="";
    while(list($Name, $Value) = each($_POST))
    {
      if ($Name=="Name"){$User=$Value;}
      if ($Name=="Url"){$Url=$Value;}
      if ($Name=="EMail"){$EMail=$Value;}
      if ($Name=="Kommentar"){$Kommentar=$Value;}
    }
    $text=nl2br($Kommentar);
	// In Datei schreiben
    $filename = 'guestbook.txt';
    if (is_writable($filename)) 
	{
      if (!$handle = fopen($filename, "a")) 
	  {
        print "Kann die Datei $filename nicht öffnen";
        exit;
      }
      fwrite($handle, "<p>$User - <a href=\"mailto:$EMail\">$EMail</a><br>");
	  fwrite($handle, "$Url<br>");
	  fwrite($handle, "$text</p>");
      fclose($handle);
   } 
   else 
   {
     print "Die Datei $filename ist nicht schreibbar";
   }

    header("Location: guestbook.php");
 }
?>
<html>
<head>
</head>
<body>
<form method="POST" action="<?php print $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<p>
<table cellpadding="0" cellspacing="10" border="0">
  <tr>
  <td align="right"><b>Name:</b></td>
  <td align="left"><input type="text" name="Name" size="20"></td>
  </tr>
  
  <tr>
  <td align="right"><b>Hompepage:</b></td>
  <td align="left"><input type="text" name="Url" size="20"></td>
  </tr>
  
  <tr>
  <td align="right"><b>E-Mail:</b></td>
  <td align="left"><input type="text" name="EMail" size="20"></td>
  </tr>
  <tr>
  <td align="right" valign="top"><b>Kommentar:</b></td>
  <td>
  <textarea name="Kommentar" cols="20" rows="5"></textarea>
  </td>
  </tr>
  <tr>
  <td align="center" valign="top" colspan="2">
  <input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zurücksetzen" name="B2">
  </td>
  </tr>
  </table>
</form>
</p>
</body></html>
Damit sollte es funktionieren.
 
F

Fuselpower

Mitglied seit
03.05.2006
Beiträge
8
Gern geschehen.
Kannst aber noch die Url als Link wandeln.
Hatte ich jetzt vergessen :(
 
F

Fuselpower

Mitglied seit
03.05.2006
Beiträge
8
Die Homepage meinte ich.
Wäre dann statt
PHP:
fwrite($handle, "$Url<br>");
etwa
PHP:
fwrite($handle, "<a href=\"$Url\" target=\"_blank\">$Url</a><br>";
angebracht.
 
H

HWFlo

Mitglied seit
04.09.2005
Beiträge
5.271
Alter
31
Du solltest dringends alle eingaben noch mit htmlentities() bearbeiten
 
O

Office2007

Gast
@fuselpower: wenn ich diese Änderung vornehme: Parse error: parse error, unexpected ';' in /home/httpd/velder/contenido-4.6.15/cms/upload/phpgb/entry.php on line 27

was ist das? gruss Office2007
 
F

Fuselpower

Mitglied seit
03.05.2006
Beiträge
8
Klammer muß vor dem ; noch geschlossen werden!
 
O

Office2007

Gast
hab ich gemacht, dann mach ich einen neuen eintrag, er wird zwar eingetragen, aber oben an dem formular kommt dann immer noch die gleiche meldung.
 
F

Fuselpower

Mitglied seit
03.05.2006
Beiträge
8
PHP:
fwrite($handle, "<a href=\"$Url\" target=\"_blank\">$Url</a><br>");
So sollte es funzen.
 
O

Office2007

Gast
@tanaka: das mache ich noch heute!(wenn möglich)
 
Zuletzt bearbeitet:
O

Office2007

Gast
hallo miteinander. ich habe bei der programmierung der zweiten version von phpgb mühe, da ich den fehler nicht finde: in der datei index.php hat es diesen Code:
PHP:
<html><?
include("init.inc");
?>
<head><title><?=$seiten_titel;?></title>
</head>
<body bgcolor="<?=$hintergrund_farbe;?>" text="bleck" link="blue" vlink="blue" alink="blue">
<? include("entry.php"); ?>
<? include("entrys.db"); ?>
</body></html>
in der Datei init.inc:
PHP:
<?
$titel = "PHP @ GB Version 2.0 Debug";
$hintergrund_farbe = "white";
$schriftart = "Arial, Verdana, Times New Roman";
$schrift_farbe = "black"
$datum_bereitstellung = date('d.m.y');
$gast_datei = "entrys.db";
function zeige_gast($gast_datei) {
GLOBAL  $schrift_art, $schrift_farbe;
print "Zurück zum <a href=\"index.php\">Inhalt</a>.<br><br>
if (filesize($gast_datei) > 0) :
$dh = fopen($gast_datei, "r") or die("Die Datei $gast_datei konnte nicht geöffnet werden.");
print "<table border=1 cellpadding=2 cellspacing=0 width=\"600\">";
while (! feof($dh)) :
$zeile = fgets($dh, 4096);
list($datum, $name, $email, $kommentare) = explode("|", $zeile);
if ($name != ""):
print "<tr>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">Datum:</font></td>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">$datum</font></td>"; 
print "</tr>

print "<tr>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">Name:</font></td>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">$name</font></td>";

print "<tr>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">E-Mail:</font></td>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\"><a href=\"mailto:$email\">$email</a></font></td>";

print "<tr>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">Url:</font></td>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\"><a href=\"$url\">$url</a></font></td>";

print "<tr>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">Kommentar:</font></td>";
print "<td><font color=\"$schrift_farbe\" face=\"$schrift_art\">$kommentar</font></td>";

print "<tr><td colspan=\"2\"> </td></tr>";
indif;
endwhile;
print "</table>";
fclose($dh);
else
print "Noch keine Einträge in diesem Gästebuch";
endif;
}
function hinzu_gast($name, $email, $url, $kommentare) {
GLOBAL $datum_bereitstellung, $gast_datei;
$inhalte = "$datum_bereitstellung|$name|$email|$url$kommentare\n";
$dh = fopen($gast_datei, "a") or die(Datei $gast_datei konnte nicht geöffnet werden.");
$schreib = fwrite($dh, $inhalte) od die(In die Datei $gast_datei konnte nicht geschrieben werden...");
fclose($dh);
}
?>
in der Datei entry.php:
PHP:
<html>
<? include("init.inc"); ?>
<head><title><?=$seiten_titel;?></title>
</head></body>
<body bgcolor="<?=$hintergrund_farbe;?>" text="bleck" link="blue" vlink="blue" alink="blue">
<input type="hidden" name="formular_gezeigt" value="y">
Name:<br><input type="text" name="name" size="15" maxlength="35" value=""><br>
E-Mail:<br><input type="text" name="E-Mail" size="15" maxlength="35" value=""><br>
Url:<br><input type="text" name="name" size="15" maxlength="30" value=""><br>
Kommentar:<br>
<textarea name="kommentare" rows="6" cols="40"></textarea><br><input type="submit" value="Senden...">
</form>
<a href="index.php">Zurück</A>
Wenn ich das hochlade, kommt immer nur
Parse error: parse error, unexpected T_VARIABLE in /home/httpd/velder/contenido-4.6.15/cms/upload/phpgbtest/init.inc on line 6

was ist da falsch? ich wäre dankbar, wenn mir das jemand sagen könnte. das alles findet man auch unter http://www.velder.li/upload/phpgbtest/

gruss und vielen vielen dank office2007
 
D

dlonra

Mitglied seit
19.10.2005
Beiträge
1.149
Hi,

mach mal ein ; (Semicolon) hinten hin.

$schrift_farbe = "black"; // Zeile 6

$seiten_titel <--- gibt es nicht in der *.inc, sonder $titel

Hier gibts ein Online manuel

http://www.php.net/manual/de/ ('search for' oben drin benutzen)


*edit*
Hab es zum Laufen gebracht... unter PHP4 (siehe Zip)
leider wird noch nichts in die entrys.db geschrieben.

Also init.inc ist PHP3 style und läuft so nicht auf PHP4 oder PHP5...
Das fängt bei den : an. Heute schreibt man das komplett im C/C++ style.
siehe zip. Es gibt keine if....endif Blöcke mehr.

die init.inc muss nur einmal in der index.php includiert werden, also nicht nochmal in der entry.php

bleck -> black in der entry.php

Auch machst du manchmal kein \ vor das " hin, dass zu machen ist wichtig, wenn
die inerhalb eines Strings ein " haben möchtest. Am Ende dagegen vom String darf kein \ vor dem "; stehen.

Grüsse ;)

Die entry.db wird nicht beschreiben, wieso keine Ahnung.
 

Anhänge

Zuletzt bearbeitet:
O

Office2007

Gast
@ dlonra: diese zeilen müssen in entry.php sein, jedoch sind sie in php4.

PHP:
<?
else :
hinzu_gast($name, $email, $url, $kommentare);
endif;
?>
und
HTML:
<form action="entry.php" method="post">
fehlte auch noch
gruss
 
Thema:

PHP programmierung

PHP programmierung - Ähnliche Themen

  • kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro

    kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro: kann pdf, php und jpg Dateinen nicht speichern. Muß ich mir vielleicht noch irgendwelche Programme runterladen? Kann nicht einmal eine website...
  • Neue PHP Datei per Kontextmenü erstellen

    Neue PHP Datei per Kontextmenü erstellen: Ich habe das Internet schon nach dieser Möglichkeit unter windows 10 durchsucht, aber nie hat das, was dort beschrieben wurde, auch funktioniert...
  • php

    php: Für die Bearbeitung meiner Webseiten (in Siquando Pro 2) ist mindestens php 5.6 erforderlich. Wo finde ich die installierte Version und wie kann...
  • 2008R2: Apache, PHP, MySQL - Update's

    2008R2: Apache, PHP, MySQL - Update's: Moin aus Meißendorf, wie die Überschrift schon vermuten lässt, habe ich erhebliche Probleme, die o.g. Versionen zu aktualisieren; vermutlich sehe...
  • [gelöst]Probleme bei der Php und Mysql programmierung

    [gelöst]Probleme bei der Php und Mysql programmierung: Hallo @all! Ich habe das Problem das ich Daten aus einer Mysql Datenbank auslesen soll und diese dann als Link darstellen soll. Leider gibt es...
  • Ähnliche Themen

    • kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro

      kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro: kann pdf, php und jpg Dateinen nicht speichern. Muß ich mir vielleicht noch irgendwelche Programme runterladen? Kann nicht einmal eine website...
    • Neue PHP Datei per Kontextmenü erstellen

      Neue PHP Datei per Kontextmenü erstellen: Ich habe das Internet schon nach dieser Möglichkeit unter windows 10 durchsucht, aber nie hat das, was dort beschrieben wurde, auch funktioniert...
    • php

      php: Für die Bearbeitung meiner Webseiten (in Siquando Pro 2) ist mindestens php 5.6 erforderlich. Wo finde ich die installierte Version und wie kann...
    • 2008R2: Apache, PHP, MySQL - Update's

      2008R2: Apache, PHP, MySQL - Update's: Moin aus Meißendorf, wie die Überschrift schon vermuten lässt, habe ich erhebliche Probleme, die o.g. Versionen zu aktualisieren; vermutlich sehe...
    • [gelöst]Probleme bei der Php und Mysql programmierung

      [gelöst]Probleme bei der Php und Mysql programmierung: Hallo @all! Ich habe das Problem das ich Daten aus einer Mysql Datenbank auslesen soll und diese dann als Link darstellen soll. Leider gibt es...
    Oben