gästebuch als include

tadeka

Grünschnabel
hi habe ein riesiges prob mit meinem gästebuch.
ich habe meine page von html auf php umgestellt
und satt den frames includes benutzt so habe ich das gelöst
(k/a ob man das so macht habe ich mir selber ausgedacht):

PHP:
<a href="index.php?page=start">::Start::</a><br>
<a href="index.php?page=news" >::News::</a><br>
<a href="index.php?page=download" >::Download::</a><br>
<a href="index.php?page=story">::Story::</a><br>
<a href="index.php?page=gbookr" >::G-Book::</a><br>
<a href="index.php?page=actors" >::Akteure::</a><br>
<a href="index.php?page=about" >::about::</a> </td>

<? $page=$_REQUEST[page]; ?>

if($page==start)               {Include "welcome.txt";}
if($page==news)             {Include "news.txt";}
if($page==download)     {Include "download.txt";}
if($page==actors)           {Include "actors.txt";}
if($page==about)            {Include "about.txt";}
if($page==story)	{Include "story.txt";}
if($page==gbookr)	{Include "gbook/read.php";}
if($page==gbookw)	{Include "gbook/write.php";}

das gästebuch wird richtig included und holt mir auch die eintragungen aus der
mysql datenbank aber wenn ich einen eintrag schreiben will klappt das nicht
(wenn ich das gästebuch direkt aufrufe kann ich eintragungen machen)
Die wichtigsten auszüge aus dem gästebuch:

PHP:
$connect = mysql_connect($host, $user, $pass);
$select = mysql_select_db($db);
mysql_db_query($db,"INSERT INTO gbook VALUES 
('NULL','".addslashes("$message")."','".addslashes("$name")."','".addslashes("$email")."',
'".addslashes("$hp")."','".addslashes("$time")."')");

<form action='<?php echo $PHP_SELF; ?>' method=post>
<input type=hidden name=flag value=1>
<p>Ihr Name:<br>
<input type=text name=name value='<?php echo $name; ?>'>
<p>email: <br>
<input type=text name=email value='<?php echo $email; ?>'>
<p>Ihre Nachricht:<br>
<textarea name=message>
<?php echo $message; ?>
</textarea>
<br>
<input type="submit">
</form>

wenn ich aber von der index.php das gästebuch aufrufe und nen eintrag machen will und auf submit klicke komme ich wieder auf die index.php, also auf eine fast leere seite und es wird kein eintrag in die datenbank geschrieben.
 
Zuletzt bearbeitet von einem Moderator:
Dein PHP schaut sehr seltsam aus. Vor allem diese Zeilen:

if($page==start) {Include "welcome.txt";}
if($page==news) {Include "news.txt";}
if($page==download) {Include "download.txt";}
if($page==actors) {Include "actors.txt";}
if($page==about) {Include "about.txt";}
if($page==story) {Include "story.txt";}
if($page==gbookr) {Include "gbook/read.php";}
if($page==gbookw) {Include "gbook/write.php";}

Müsste so geschrieben sein:
if($page == "start") { include("welcome.txt");}
usw.

Ich hoffe, dass du das so gemacht hast.
Deine Syntax kommt mir sehr Spanisch vor.
Dürfte so auch nicht funktionieren...
 
hab ein bisschen gelesen und dann drauf los geschrieben...
das mit der syntax werde ich noch mal überarbeiten, aber wie gesagt
das wird mir wohl nich weiter helfen trotzdem danke
hat sonst noch jemand ne idee
 
ich nehme mal an, dass die gbook/write.php für das eintragen in die DB
zuständig ist. So wie dein Formular im moment aussieht wird die Datei
nach dem abschicken des Formulars nicht includet.
PHP:
$connect = mysql_connect($host, $user, $pass);
$select = mysql_select_db($db);
mysql_db_query($db,"INSERT INTO gbook VALUES
('NULL','".addslashes("$message")."','".addslashes("$name")."','".addslashes("$email")."','".addslashes("$hp")."','".addslashes("$time")."')");

<form action='<?php echo $PHP_SELF."?page=gbookw"; // Damit die richtige Datei includet wird kannst du hier noch weitere Variablen 
?>' method=post> übergeben
<input type=hidden name=flag value=1>
<p>Ihr Name:<br>
<input type=text name=name value='<?php echo $name; ?>'>
<p>email: <br>
<input type=text name=email value='<?php echo $email; ?>'>
<p>Ihre Nachricht:<br>
<textarea name=message>
<?php echo $message; ?>
</textarea>
<br>
<input type="submit">
</form>

tob
 
Hi,
ab php Version 4.2 ist die register_globals in der php.ini standardmäßig Off, in
diesem fall kann man nicht mehr "normal" auf die Variable zugreifen. Man sagt es
sei sicherer, ich habe mich aber nicht näher mit dem Problem beschäftigt, kannst
ja mal google befragen.
hier gibts noch ne genauere Beschreibung wie man auf Variablen zugreifen kann
die via post oder get übergeben wurden.
http://us2.php.net/manual/en/language.variables.predefined.php


gruß blub
 
Original geschrieben von boelkstoff
die vielen if abfragen würde ich lieber mit switch lösen

Oder die .txt-dateien gemäß der variable $page umbennenen und

PHP:
include($page);

benutzen. Dann haste nen Haufen weniger Quellcode und es geht auch etwas schneller (aber nicht spürbar glaube ich) ;)
 
Zurück