PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Probleme beim includen


stav0815
2007-10-15, 20:49:37
Servus Leute,

ich arbeite bei meiner Homepage mit dem Befehl include(blablabla). Dabei include ich den Inhalt in eine Indexdatei. Nun will ich ein Gästebuch includen, dass per Formular die Einträge in eine Textdatei schreibt.

Nun hab ich aber das problem, das dahinter immer ne datei *".php" gesucht wird, was natürlich beim senden des Formulars... kacke is :D und so geht er zurück zur home.php was auch nich ganz sinn der sache is.

mein Formmailer send-befehl:

<form action="index.php?sec=gb/gbweiter.php?add=entry" method="post">

Das ist mein include Befehl:
<?
$include=$_GET[sec] . ".php";
if(file_exists($include)==1){
include_once $include ;
}
else
{include ('home.php');
}
?>
Wobei ich es schon absichtlich gerne so habe, dass ich das .php am ende weggelassen habe (sonst hätt ichs ned gemacht;) ) jedoch will ich dass es für den Form-Befehl ausnahmsweise mal das ".php" nicht sucht!

Wie mach ich das?

Kinman
2007-10-15, 20:55:36
Ganz check ich net, was Du machen willst...
Kannst Du es vllt. nochmals mit anderen Worten erklären?

Achso.. jetzt check ichs (denk ich mal)
Das, was Du willst klappt so aber nicht, sondern:


<form action="index.php?sec=gb/gbweiter&add=entry" method="post">


eigentlich


<form action="index.php?sec=gb/gbweiter&amp;add=entry" method="post">


und ob das / in der URL übergeben werden sollte, bezweifle ich mal. Da gibts sicher eine %xxx codierung dafür


mfg Kinman

stav0815
2007-10-15, 20:57:30
ich will dass er bei diesem Formular nicht nach
index.php?sec=gb/gbweiter.php?add=entry.php sucht sondern eine ausnahme macht und einfach zu index.php?sec=gb/gbweiter.php?add=entry weiterleitet

Kinman
2007-10-15, 21:01:29
Siehe oben und dieses Kapitel würde ich Dir empfehlen:
http://tut.php-quake.net/get.html

mfg Kinman

stav0815
2007-10-15, 21:10:05
doch, soll übernommen werden, da die datei eine verzeichnisebene drunter liegt :)

Kinman
2007-10-15, 21:11:32
doch, soll übernommen werden, da die datei eine verzeichnisebene drunter liegt :)

Schon klar, aber ich weiß nicht ob ein nicht-codiertes / in den parametern übergehen werden darf/sollte.

Konnte dein Problem gelöst werden?

mfg Kinman

stav0815
2007-10-15, 21:31:54
mmh... nun hab ich das nächste problem: der erste eintrag wird korrekt oben angezeigt. der rest is aber "runter"´gerückt ?!

die gb.php:


<?
/*
################################

ScH-GB 2.1 lite
http://www.schmuelling.com
(Fragen,Kritik, usw^^)

################################
*/
include("gb/gb/config.php");

$today = getdate();
$month = $today[month];
$mday = $today[mday];
$year = $today[year];
$zeituhr = "$mday. $month $year";


$data = file("$gbfile");
$max = count($data);
$pages = ($max / 10 + 1);
$size = (filesize($gbfile) / 1024);
if(filesize($gbfile) == 0) { $max = "1"; }
?>
<center>
<table border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr>
<td width="50%" align="center" bgcolor="#666666"><a href="index.php?sec=gb/eintragen">Eintragen</a>&nbsp;</td>
<td width="50%" align="center" bgcolor="#666666">&nbsp;&nbsp;Gästebucheinträge: <? echo $max; ?></td>
</tr>
<tr>
<td bgcolor="#666666">&nbsp;</td>
<td bgcolor="#666666">&nbsp;</td>
</tr>
</table>
</center>
<?
$data = file("$gbfile");
rsort ($data);
$max = count($data);
If(!$seite){$seite=0;}
If($seite==0){print("<center><br>back");}
else{$xmz = $seite -1; print("<center><br>< <a href=\"gb/gb.php?seite=$xmz\">vor</a>");}
$xmz = $seite * $msg + $msg;
print(" --- ");
if ($max > $xmz){$xmz = $seite +1; print ("<a href=\"gb/gb.php?seite=$xmz\">zurück</a> ><p>");}
else {print("next<p>");}
$start = $seite * $msg;
$end = $seite * $msg + $msg;;
if ($end > $max){$end=$max;}

if(filesize($gbfile) == 0) {
print
"";

}

for ($u=$start; $u<$end; $u++)
{
$info = explode("Æ",$data[$u]);
if($info[7] != "") { $info[7] = "<p><i>Admin:<br>$info[7]</i>"; }
$info[6] = wordwrap( $info[6], 50, "\n", 1);
$info[3] = wordwrap( $info[3], 50, "\n", 1);
$info[4] = wordwrap( $info[4], 50, "\n", 1);
;
include($templategb);
}

?>
<center>
</center>


zum anschauen: http://www.turbogurke.com/index.php?sec=gb/gb

(PS: ja der darf so übergeben werden, hab nachgeschaut...)

Kinman
2007-10-15, 21:50:59
Ich vermute mal ganz stark, das Du einen HTML Tag zu früh oder zu spät schließt
Schau Dir mal den Fehler in Zeile 143 an: http://validator.w3.org/check?uri=http%3A%2F%2Fwww.turbogurke.com%2Findex.php%3Fsec%3Dgb%2Fgb&charset=%28detect+automatically%29&doctype=Inline&group=0
Du schließt eine table bevor Du due Zeile schließt und danach direkt 2x </table>

mfg Kinman

stav0815
2007-10-16, 06:57:08
sry, versteh ich ned. steht grad voll aufm schlauch. du meinst ich hab nen </table>-Tag zu viel? oder falsch?

Kinman
2007-10-16, 09:07:11
Kann sowohl als auch sein.
Dein HTML Code ist leider nicht wirklich leserlich, so dass ich das prüfen könnte

mfg Kinman

stav0815
2007-10-16, 09:13:29
Kann sowohl als auch sein.
Dein HTML Code ist leider nicht wirklich leserlich, so dass ich das prüfen könnte

mfg Kinman
Das ist nicht mein Code :D WYSIWYG 4 teh win.
Wobei das css Zeug dass da includet wird von dem Script mitgebracht wird (und auch so furchtbar unübersichtlich aussieht...)

stav0815
2007-10-18, 15:27:34
Also ich hab jetzt den einfacheren Weg genommen und einfach ein Script genommen, dass sich von Haus aus includen lässt. Aber wenn ich ein GB Eintrag schreiben will, dann kommt dass mein Eintrag zu vielen Spam Kriterien entspricht oder schon eingetragen wurde. Ich hab auch schon alle Wörter aus der Spam-Wörter Liste entfernt und die Zeit die man für einen eintrag brauchen darf auf 15min hochgesetzt.

Hilfe ;(