Beste,

Van deze site heb een script proberen te gebruiken om een gastenboek met xml te maken. Ik heb zelf niet of nauwelijks verstand van PHP, maar gezien het script leek het me een knippen en plakken oplossing.

Nu heb ik de betreffende bestanden aangemaakt en geimplementeerd in mijn site. Op het moment dat ik een bericht wil post wordt er aangegeven " succesvol toegevoegd" maar in werkelijkheid verschijnt er niets.

er zijn verder geen fout meldingen oid.

Ik het het volgende gebruikt:


Gastenboek.php
[code]
<?php

require("functions.php");

?>
<html>
<head>
<script language="javascript" type="text/javascript">
function addText(let) {
var story = document.gb.bericht.value
story += let
document.gb.bericht.value = story
document.gb.bericht.focus()
}
</script>
</head>
<body>

<h1>Gastenboek</h1>

<?php

if ($_GET["msg"] == 1) {
$msg = "Succesvol toegevoegd.";
}
elseif ($_GET["msg"] == 2) {
$msg = "Niet alle velden zijn ingevoerd.";
$oval = $_GET["ond"];
$nval = $_GET["naam"];
$eval = $_GET["email"];
$bval = $_GET["bericht"];
}

if(isset($msg)) { echo("<font color=\"red\"><b>" . $msg . "</b></font>"); }

?>

<form name="gb" method="post" action="verzenden.php">
<table width="380" border="0">
<tr>
<td width="14%"><div align="left"><font face="Verdana" size="2"><b>naam: </b></div></td>
<td width="86%"><input type="text" name="naam" size="35" value="<?php echo($nval); ?>"></td>
</tr>
<tr>
<td><div align="left"><font face="Verdana" size="2"><B>email: </b></div></td>
<td><input type="text" name="email" size="35" value="<?php echo($eval); ?>"></td>
</tr>
<tr>
<td><div align="left"><font face="Verdana" size="2"><b>onderwerp: </b></div></td>
<td><input type="text" name="onderwerp" size="35" value="<?php echo($oval); ?>"></td>
</tr>
<tr>
<td><div align="left"><font face="Verdana" size="2"><b>bericht: </b><br /><br /></div></td>
<td><textarea name="bericht" cols="26" rows="4"><?php echo($bval); ?></textarea></td>
</tr>
<tr>
<td><div align="left"></div></td>
<td><input type="submit" value="Teken het gastenboek"></td>
</tr>
<tr>
<td colspan="2">
<table>
<?php

$x = 0;
$max = 12;
for ($i = 0; $i < count($GLOBALS["smileys"]); $i++) {
if($x == 0) { echo("<tr>\n"); }
echo("<td><a href=\"javascript:addText('" . $GLOBALS["smileys"][$i]["icon"] . "')\"><img src=\"" . $GLOBALS["smileys"][$i]["img"] . "\" border=\"0\"></a></td>\n");
if($x == $max) { echo("</tr>\n"); }
$x = $x + 1;
if ($x > $max) { $x = 0; }
}
for ($i = 0; $x < $max + 1; $i++) {
echo("<td>&nbsp;</td>\n");
if($x == $max) { echo("</tr>\n"); }
$x = $x + 1;
}

?>
</table>
</td>
</tr>
</table>
</form>

<?php echo(xml2String()); ?>

</body>
</html>

[\code]

fopen? Om met XML te gaan werken? Wat is er mis met de vele, vele XML-functies? Daarmee ben je 100x sneller klaar.
Zoals ik al zei, ik heb hier weinig verstand van.
Hoe zou het makkelijker kunnen dan??

thnx
Als je hier weinig verstand van hebt, moet je het misschien eerst leren.

Of een script ergens vandaan plukken dat wel werkt. ;)
tja is natuurlijk een oplossing.

maar goed, in mijn ogen is het een klein probleem, echter door mijn weinige kennis kan ik die er zelf niet uit vissen..

Doe eens [ignore]
[/ignore] om je code heen zetten enzo.
Verzenden.php
[code]
<?php

require("functions.php");

$email = strip_tags($_POST["email"]);
$naam = strip_tags($_POST["naam"]);
$onderwerp = strip_tags($_POST["onderwerp"]);
$bericht = strip_tags($_POST["bericht"]);
$datum = date("r");
if(!$email || !$naam || !$onderwerp || !$bericht){
$header = "gastenboek.php?msg=2&email=" . $email . "&ond=" . $onderwerp . "&naam=" . $naam . "&bericht=" . $bericht;
header("Location: " . $header) or die("Redirection error: click <a href=\"" . $header . "\">here</a>\n<script language=\"javascript\">\ndocument.location.href = \"" . $header . "\"\n</script>");
}
else {

$item = "<item>\n";
$item .= "<subject>" . $onderwerp . "</subject>\n";
$item .= "<date>" . $datum . "</date>\n";
$item .= "<name>" . $naam . "</name>\n";
$item .= "<email>" . $email . "</email>\n";
$item .= "<post>" . $bericht . "</post>\n";
$item .= "</item>\n";

$file = fopen("gastenboek.xml","r");
$al = fread($file, filesize("gastenboek.xml"));
fclose($file);
$al = str_replace("<gastenboek>","",$al);
$al = str_replace("</gastenboek>","",$al);
$txt = "<gastenboek>" . $al . $item . "</gastenboek>";
$file = fopen("gastenboek.xml","w");
fputs($file,$txt);
fclose($file);
$header = "gastenboek.php?msg=1";
header("Location: " . $header) or die("Redirection error: click <a href=\"" . $header . "\">here</a>\n<script language=\"javascript\">\ndocument.location.href = \"" . $header . "\"\n</script>");
}
?>
<?php
header("Location: gastenboek.php?msg=2&email=" . $email . "&ond=" . $onderwerp . "&naam=" . $naam . "&bericht=" . $bericht) or die("Redirection error: <a href=\"gastenboek.php?msg=2&email=" . $email . "&ond=" . $onderwerp . "&naam=" . $naam . "&bericht=" . $bericht . "\">click here</a>");
?>
[\code]

functions.php
[code]
<?php

global $smileys;
$smileys = array();
$smileys[] = array("icon" => ":)", "img" => "images/smilies/smile.gif");
$smileys[] = array("icon" => "8|", "img" => "images/smilies/huh.gif");
$smileys[] = array("icon" => ":o", "img" => "images/smilies/ohmy.gif");
$smileys[] = array("icon" => ";)", "img" => "images/smilies/wink.gif");
$smileys[] = array("icon" => ":P", "img" => "images/smilies/tongue.gif");
$smileys[] = array("icon" => ":D", "img" => "images/smilies/biggrin.gif");
$smileys[] = array("icon" => "8)", "img" => "images/smilies/cool.gif");
$smileys[] = array("icon" => "*-)", "img" => "images/smilies/rolleyes.gif");
$smileys[] = array("icon" => ":?", "img" => "images/smilies/dry.gif");
$smileys[] = array("icon" => ":@", "img" => "images/smilies/mad.gif");
$smileys[] = array("icon" => ":(", "img" => "images/smilies/sad.gif");
$smileys[] = array("icon" => "8-)", "img" => "images/smilies/unsure.gif");
$smileys[] = array("icon" => ":|", "img" => "images/smilies/blink.gif");
$smileys[] = array("icon" => "|:-|", "img" => "images/smilies/ph34r.gif");
$smileys[] = array("icon" => ":\\", "img" => "images/smilies/happy.gif");
$smileys[] = array("icon" => "|-)", "img" => "images/smilies/sleep.gif");
$smileys[] = array("icon" => "(l)", "img" => "images/smilies/wub.gif");
$smileys[] = array("icon" => ":s", "img" => "images/smilies/wacko.gif");

function ubb_code($string) {
// HTML codes wegwerken
$string = htmlspecialchars(strip_tags($string));
// Enters maken
$string = nl2br($string);
// Cursief
$string = preg_replace("#\[i\](.+?)\[/i\]#is","<i>\\1</i>",$string);
// Onderstreept
$string = preg_replace("#\[u\](.+?)\[/u\]#is","<u>\\1</u>",$string);
// Vetgedrukt
$string = preg_replace("#\[b\](.+?)\[/b\]#is","<b>\\1</b>",$string);
// Doorstreept
$string = preg_replace("#\[s\](.+?)\[/s\]#is","<s>\\1</s>",$string);
// Links maken met behulp van tags
$string = preg_replace("#\[url\](http|ftp)(.+?)\[/url\]#is","<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$string);
$string = preg_replace("#\[url\](mailto:)(.+?)\[/url]#is","<a href=\"\\1\\2\" target=\"_blank\">\\2</a>",$string);
$string = preg_replace("#\[mail\](.+?)\[/mail]#is","<a href=\"mailto:\\1\" target=\"_blank\">\\1</a>",$string);
$string = preg_replace("#\[url\](.+?)\[/url\]#is","<a href=\"http://\\1\" target=\"_blank\">\\1</a>",$string);
$string = preg_replace("#\(.+?)\[/url\]#is","<a href=\"\\1\\2\" target=\"_blank\">\\3</a>",$string); $string = preg_replace("#\[url=(.+?)\](.+?)\[/url\]#is","<a href=\"http://\\1\" target=\"_blank\">\\2</a>",$string); // Automatisch links maken $string = eregi_replace("(^|[\n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)", "<a href=\"\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+([a-z0-9_-]+)+)(/[^/ \n\r]*)*)", "<a href=\"\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])([a-z_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)","<a href=\"mailto:\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])(www\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])(www\.([a-z0-9_-]+([a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])(ftp://([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])(ftp://([a-z0-9_-]+([a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"\\2\" target=\"_blank\">\\2</a>",$string); $string = eregi_replace("(^|[\n\r\t])(ftp\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"\\2\" target=\"_blank\">\\2</a>",$string); // Smileys for ($i = 0; $i < count($GLOBALS["smileys"]); $i++) { $string = str_replace($GLOBALS["smileys"][$i]["icon"],"<img src=\"" . $GLOBALS["smileys"][$i]["img"] . "\" alt=\"Smilie\" />",$string); } // Return return $string; } function ubb_back($string) { // Cursief $string = preg_replace("#<i>(.+?)</i>#is","\\1",$string); // Onderstreept $string = preg_replace("#<u>(.+?)</u>#is","\\1",$string); // Vetgedrukt $string = preg_replace("#<b>(.+?)</b>#is","\\1",$string); // Doorstreept $string = preg_replace("#<s>(.+?)</s>#is","\\1",$string); // Links $string = preg_replace("#<a href=\"(http|ftp)(.+?)\" target=\"_blank\">(.+?)</a>#is","[url=\\1\\2]\\3",$string);
$string = preg_replace("#<a href=\"mailto:(.+?)\" target=\"_blank\">(.+?)</a>#is","[mail]\\1[/mail]",$string);
// Smileys
for ($i = 0; $i < count($GLOBALS["smileys"]); $i++) {
$string = str_replace("<img src=\"" . $GLOBALS["smileys"][$i]["img"] . "\" alt=\"Smilie\" />",$GLOBALS["smileys"][$i]["icon"],$string);
}

// Return
return $string;
}

function genPost($item) {
$entry = "";
$entry .="<b><font face='Verdana' size='2'>" . $item["subject"] . "</b><br />\n";
$entry .="<font face='Verdana' size='1'><a href='mailto:" . $item["email"] . "'>" . $item["name"] . "</a> (" . date("d-m-Y H:i", strtotime($item["date"])) . ")<br />\n";
$entry .="<font face='Verdana' size='2'>" . ubb_code($item["post"]) . "<br />\n";
$entry .="<img src='images/lijnbericht.gif' border=0><br />\n\n";
return $entry;
}

function parseXmlFile($filename, $identifier) {
$data = implode("",file($filename));
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser);

foreach ($tags as $key=>$val) {
if ($key == $identifier) {
$molranges = $val;
for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parseArray(array_slice($values, $offset, $len));
}
}
else {
continue;
}
}
return $tdb;
}

function parseArray($mvalues) {
for ($i=0; $i < count($mvalues); $i++) {
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
}
return $mol;
}

function xml2String() {
$xmlcontent = parseXmlFile("gastenboek.xml", "item");
$return_str = "";
foreach ($xmlcontent as $item) {
$return_str .= genPost($item);
}
return $return_str;
}

?>
[\code]

gastenboek.xml
[code]
<gastenboek>
<item>
<subject>de eerste</subject>
<date>Sun, 03 aug 2008 12:59:02 +0100</date>
<name>Dave</name>
<email>[email protected]</email>
<post>zo dan de eerste post</post>
</item>
</gastenboek>
[\code]





Het reslutaat is te zien op http://www.curryworst.be/gastenboek.php
Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Dave even dit Bumpen mag niet, bumpen is pas naar 24 uur toegestaan.

Reageren