PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php Problem (divs und Abfragen)


Bond2k
2005-10-21, 13:06:41
Hallo zusammen

Ich hab folgendes Problem. Ich hab eine Newsseite gemacht. Dazu habe ich einen Adminbereich gemacht, bei dem man News hinzufügen kann.

Die Seite habe ich mittels divs unterteilt. Oben Banner, links Menü und rechts Inhalt. Der Inhalt wird mittels einer Get-Abfrage "generiert". Dies funktioniert auch. Leider funktioniert aber das hinzufügen neuer News nicht. Ich vermute, dass es mit der Abfrage im Inhalt zusammenhängt. Da, wenn ich die Seite für das Hinzufügen nicht in dem div lade, sondern eigenständig, funktionierts.

Gibt es eine Möglichkeit das ganze mit divs zu lösen?

Code: index.php
<?php
include "config.php"; // die Konfigurationsdatei einfügen

echo "<html>\n";
echo "<head>\n";
echo " <title>Meine Seite</title>\n";
echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
echo " <meta http-equiv=\"Content-Type\" \n
content=\"text/html; charset=ISO-8859-1\" />\n";
echo "</head>\n";
echo "<body>\n";
echo " <div id=\"banner\">\n"; // banner
include "banner.php";
echo " </div>\n";
echo " <div id=\"links\">\n"; // linkes Menu
include "menu_admin.php";
echo " </div>\n";
echo " <div id=\"mitte\">\n"; // In der Mitte der Inhalt
include "inhalt.php";
echo " </div>\n";
echo "</body>\n";
echo "</html>\n";
?>
Code: config.php
<?php
$dateien = array(); // ein Leeres Array erzeugen
$dateien['editnews'] = "editnews.php";
$dateien['editgb'] = "editgb.php";
$dateien['newnews'] = "newnews.php";
?>
Code: menu_admin.php
<ol>
<li><a href="index.php?section=editnews">News anschauen</a></li>
<li><a href="index.php?section=newnews">News hinzufügen</a></li>
<li><a href="index.php?section=editgb">Gästebuch bearbeiten</a></li>
</ol>
Code: inhalt.php
<?php
if(isset($_GET['section']) AND isset($dateien[$_GET['section']])) {
include $dateien[$_GET['section']];
} else {
include $dateien['editnews'];
}
?>
Code: newnews.php
<?php

$id = "";
$pw = "";
$host = "";
$database = "News";
$table = "News";

$conn_id = mysql_connect($host,$id,$pw) OR die("Konnte DB-Server nicht erreichen");;
mysql_select_db($database,$conn_id);


if ($submit){
$DatenOK = 1;

$error = "";

if ($titel == ""){
$DatenOK = 0;
$error .= "Es muß ein Titel eingegeben werden<br>\n";
}

if ($inhalt == ""){
$DatenOK = 0;
$error .= "Ein Eintrag ohne Inhalt mach nicht viel";
$error .= " Sinn, oder?<br>\n";
}

if ($autor == ""){
$DatenOK = 0;
$error .= "Wer hats geschriben??";
}

if ($DatenOK){
mysql_query(sprintf('insert into News
(Titel,Inhalt,Datum,Autor)
VALUES ("%s","%s",now(),"%s")',
addslashes($titel),
addslashes($inhalt),
addslashes($datum),
addslashes($autor)));
echo mysql_error();

header('Location: http://'.$HTTP_HOST.
substr($PHP_SELF,0,strrpos($PHP_SELF,'/')).'/');
die();

}

}


?>

<html>
<body>

<?php
if ($submit && !$DatenOK){

echo "<h2>Fehler:</h2>\n";
echo $error;
}

?>

<form action="<?php echo $PHP_SELF; ?>" method="POST">
Titel:<br>
<input type="text" name="titel" size="30" maxlength="200"
value="<?php echo $titel; ?>">
<br>
Inhalt:<br>
<textarea rows="10" cols="50" wrap="virtual" name="inhalt">
<?php echo $inhalt; ?>
</textarea>
<br>
Autor:<br>
<input type="text" name="autor" size="30" maxlength="200"
value="<?php echo $autor; ?>">
<br>
<input type="submit" name="submit" value="Absenden">

</body>
</html>

ravage
2005-10-21, 13:16:11
newnews.php:
Da hast du "if ($submit){" stehen. Müsste da nicht "if ($_POST[submit]){" stehen?

Bei $titel, $inahlt und $autor ebenfalls.

Bond2k
2005-10-21, 13:31:44
newnews.php:
Da hast du "if ($submit){" stehen. Müsste da nicht "if ($_POST[submit]){" stehen?

Bei $titel, $inahlt und $autor ebenfalls.

macht keinen Unterschied

ravage
2005-10-21, 15:00:05
Hm wieder newnews.php:
In der Datei hast du nochmal die <html> und <body> Tags drin. Wenn diese Datei jetzt in deine index.php includet wird, hast du die beiden Tags zweimal drin.

Bond2k
2005-10-21, 18:02:24
danke, aber auch das hat nicht geholfen.

Gast
2005-10-22, 14:51:36
in newnews.php machst du ein post, aber in inhalt arbeitest du mit get. ausserdem finde ich in der newnews nicht, wo du section = newnews setzt.

Bond2k
2005-10-22, 19:25:18
in newnews.php machst du ein post, aber in inhalt arbeitest du mit get.

Auch mit GET ändert sich nichts.


ausserdem finde ich in der newnews nicht, wo du section = newnews setzt.

hmm... meinst du nicht das, was ich in der config.php geschrieben habe?

Wenn nein, was sollte ich wohin schreiben?

Gast
2005-10-22, 19:51:04
$_GET['section'] wird nicht gesetzt, wenn du in newnews.php das form auslöst.

mach mal method=get
und füge mal <input name=section value=newnews> in das form ein.
ansonsten includet inhalt.php die falsche datei und newnews.php hat keine chance die daten einzutragen.

ravage
2005-10-22, 23:34:21
Mh stimmt, der Gast hat recht. Darauf hatte ich jetzt garnicht geachtet. :up:

Bond2k
2005-10-22, 23:46:51
Also etwa so??

<form action="<?php echo $PHP_SELF; ?>" method=get input name=section value=newnews>

Bond2k
2005-10-22, 23:47:09
sorry, doppelpost...

Gast
2005-10-23, 00:07:58
fast...

<form action="<?php echo $PHP_SELF; ?>" method="get"><input name="section" value="newnews">

Bond2k
2005-10-23, 03:36:27
endlich... vielen Dank, hat geholfen.