PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

13-12-2006, 08:53
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Zeile verschwindet & Variablen übertragen?
Hallo,
ich habe zwei Fragen, zu beiden ist dieser Code (Diese Datei heißt: news_del.php und wird in die Datei cp.php included, die sich im selben Verzeichnis befindet):
PHP-Code:
<?php include ("checkuser.php"); ?>
<?php
error_reporting(E_ALL);
include "../inc/config.php";
if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
die("<div class=\"fehler\" align=\"left\"><b>Fehler:</b>
Es konnte keine Verbindung aufgebaut werden.<br></div>");
}
if(!mysql_select_db(MYSQL_DATABASE)) {
die("<div class=\"fehler\" align=\"left\"><b>Fehler:</b>
Die Datenbank konnte nicht benutzt werden.<br></div>");
}
// Verbindung zu MySQL Aufbauen
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
$action = "";
if(isset($_GET['action']))
{
$action = $_GET['action'];
}
if ($action == "")
{
$sql = "SELECT ID, Titel FROM News ORDER BY Datum DESC";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)) {
while($row = mysql_fetch_assoc($result)){
// Alle Einträge auflisten
echo "<div class=\"news\">[ID: ";
echo $row['ID'];
echo "]<b> <a href=\"cp.php?page=04&action=check&news_id=" . $row['ID'] . "\">";
echo $row['Titel'];
echo "</a></b></div>";
}
} else {
echo "Keine News vorhanden.";
}
echo "<br>";
}
elseif ($action == "check" && !empty($_GET["news_id"]))
{
$del_id = $_GET["news_id"];
echo "<div class=\"news\" align=\"center\">Sollen die News mit der ID <b>";
echo $del_id;
echo "</b> gelöscht werden?<br><br>";
echo "<a href=\"cp.php?page=04&action=del&news_id=" . $del_id . "\">JA</a> | ";
echo "<a href=\"cp.php?page=04\">NEIN</a><br></div>";
}
elseif ($action == "del" && !empty($_GET["news_id"]))
{
$sql = "DELETE FROM News WHERE ID=$news_id";
$result = mysql_query($sql);
echo "<div class=\"news\" align=\"center\">
Der Newseintrag wurden erfolgreich gelöscht!<br></div>";
}
?>
Frage 1: (siehe Screenshot) Wenn der Code bis zum Schluss ausgeführt wird (sprich bis zum eigentlichen Löschvorgang) und die Meldung erscheint: " Der Newseintrag wurden erfolgreich gelöscht!" Wird komischer Weise immer die Copyrightzeile entfernt. Hab ich vielleicht einen Fehler im Code?
Frage 2: Ich wollte gerne in der Funktion "action==check" den Titel des Newseintrag übertragen mit hilfe von echo $row['Titel']; leider ist mir aufgefallen das die Variable nicht übertragen wird. Wie schaff ich es, dass die Variable bei den einzelnen Funktionen übertragen wird?
|

13-12-2006, 09:10
|
XGremliN
PHP Senior
|
|
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
|
|
zu Frage1: in deinem Code sehe ich nichts von irgendeinem Copyright, also kann ich auch nichts beantworten.
zu Frage2: den Titel mit als GET-Parameter übergeben, da $row[ÄTitel'] nur in deinem if-Zweig vorhanden ist.
__________________
it's not a bug,
it's a feature!
|

13-12-2006, 09:13
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
|
|
1. Wird der Quellcode für den Copyrighthinweis ausgegeben, ist es möglicherweise ein CSS-Fehler?
2. Du übergibst nur die ID, woher soll da plötzlicher der Titel kommen? Den mußt du dir schon selbst besorgen, entweder durch eine erneute DB-Abfrage oder durch Übergabe in der URL.
|

13-12-2006, 09:48
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Zur Frage 2:
Wie kann ich den eine GET-Funktion über die IF-Abfrage hinaus machen, denn ich hab im Code zum Beispiel auch folgendes drin:
PHP-Code:
elseif ($action == "check" && !empty($_GET["news_id"]))
{
$del_id = $_GET["news_id"];
echo "<div class=\"news\" align=\"center\">Sollen die News mit der ID <b>";
echo $del_id;
Ich muss extra eine neue Variable $del_id erstellen und diese mit dem Inhalt von $_GET["news_id"] füllen damit mein echo $del_id; funktioniert lieber wäre mir jedoch echo $row['news_id']; (leider wird die Variable nicht übertragen, wenn ich nur $row['news_id']; eingebe) ist dies dann überhaupt möglich (ohne eine neue MySQL-Abfrage zu starten)?
Zur Frage 1:
Die news_del.php wird in cp.php included, hier der Code von cp.php:
PHP-Code:
<?php include ("checkuser.php"); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN">
<html>
<head>
<title>XXXXXX</title>
<link rel="stylesheet" type="text/css" href="../css/cp.css">
</head>
<table align="center" valign="top" border="0" cellpadding="0" cellspacing="0"
class="text" style="border: 1px solid #5C676D">
<tr>
<td colspan="2" align="center" bgcolor="#F2F2F2" class="text"
style="border-bottom: 1px solid #5C676D">
<b>Control Panal</td>
</tr>
<tr>
<td valign="top" width="100" style="border-bottom: 1px solid #5C676D;
border-right: 1px solid #5C676D;" bgcolor="#F2F2F2">
» <a href="cp.php?page=01" target="_top">News</a><br>
» <a href="logout.php" target="_top">Logout</a><br></td>
<td width="450" style="border-bottom: 1px solid #5C676D" valign="top" align="left">
<?php
switch($_GET['page']) {
case "01":
include("news.php");
break;
case "02":
include("news_add.php");
break;
case "03":
include("news_set.php");
break;
case "04":
include("news_del.php");
break;
default:
include("startseite.php");
}
?></td>
</tr>
<tr>
<td colspan="2" align="right" bgcolor="#F2F2F2">
<a href="http://www.XXXXXX.de.tc" target="_blank">
coded by <b><i>XXXXXX</i></b></td>
</tr>
</table>
</html>
Ich kann nicht verstehen, wieso die Copyrightzeile verschwindet..
|

13-12-2006, 09:56
|
XGremliN
PHP Senior
|
|
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
|
|
PHP-Code:
if(mysql_num_rows($result)) {
//...
echo "]<b> <a href=\"cp.php?page=04&action=check&news_id=" . $row['ID'] . "&titel=".$row['Titel']."\">";
//...
dann kannst du auch in deinem elseif-Zweig auf $_GET['titel'] zugreifen.
PHP-Code:
$del_id = $_GET["news_id"];
echo $del_id;
macht das gleiche wie
PHP-Code:
echo $_GET["news_id"];
__________________
it's not a bug,
it's a feature!
|

13-12-2006, 10:00
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Original geschrieben von SilverVegeto
Ich kann nicht verstehen, wieso die Copyrightzeile verschwindet..
|
Na vermutlich weil der HTML-Code, der von dir dynamisch zusammengesetzt wird, grobe Fehler enthält.
Validierst du denn zwischendurch deinen Code ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

13-12-2006, 10:07
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
@XGremliN: Wenn ich das nicht über diese Variablestruktur mache, erscheint ein Fehler und die
PHP-Code:
echo $_GET["news_id"];
enthält in meiner elseif keine Daten.
@wahsaga: Ja mach ich schon, aber es ist kein Fehler zu finden. Es ist ja auch nicht gerade kompliziert gecoded. Deswegen wundert es mich.
|

13-12-2006, 10:09
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.802
|
|
Zitat:
aber es ist kein Fehler zu finden
|
kennst du das <body>-tag?
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

13-12-2006, 10:14
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Das Body-Tag ist in der CSS-Datei enthalten.
PHP-Code:
<link rel="stylesheet" type="text/css" href="../css/cp.css">
Und die Copyrightzeile wird überall angezeigt bis nach der Löschung der News.
|

13-12-2006, 10:16
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.802
|
|
Zitat:
Das Body-Tag ist in der CSS-Datei enthalten.
|
nein ist es nicht. <body> ist ein html-tag und gehört dementsprechend auch in ein html-dokument und nicht in eine css-datei. daher sollte man bei darstellungsproblemen zuerst den html-code auf validität überprüfen. ansonsten müssen die browser raten, und das tun sie dann auch.
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

13-12-2006, 10:18
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Zitat:
Original geschrieben von SilverVegeto
Das Body-Tag ist in der CSS-Datei enthalten.
PHP-Code:
<link rel="stylesheet" type="text/css" href="../css/cp.css">
Und die Copyrightzeile wird überall angezeigt bis nach der Löschung der News.
|
Das Body-Tag selbst hat in der CSS nichts zu suchen. Da kannst du höchstens per Selector das Body-Tag "ansprechen" und formatieren, was du bestimmt auch meinst.
Code:
// css-datei
body
{
background-color: orange-lila-kariert;
}
|

13-12-2006, 10:19
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Ja stimmt. Okay dann werde ich den Body-Tag mal wieder einfügen. Danke!
|

13-12-2006, 10:33
|
closure
Master
|
|
Registriert seit: Mar 2006
Beiträge: 796
|
|
Das wär eigentlich ein fall für "the daily WTF".
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|