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. |
 |
|

15-12-2006, 13:42
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Problem beim bearbeiten von Beiträgen
Hallo,
ich hoffe das ist jetzt erstmal die letzte Frage die ich stellen muss. Hab eine Fehlermeldung bekommen bei folgender Datei:
PHP-Code:
<?php include ("checkuser.php"); ?>
<?php session_start (); ?>
<?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'];
$_SESSION["s_news_id"] = "$news_id";
$_SESSION["s_news_titel"] = "$news_titel";
$_SESSION["s_news_inhalt"] = "$news_inhalt";
}
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\">
<a href=\"cp.php?page=03&action=update&news_id=
" . $row['ID'] . "&titel=".$row['Titel']."\">[ID: ";
echo $row['ID'];
echo "] <b>";
echo $row['Titel'];
echo "</a></b></div>";
}
} else {
echo "Keine News vorhanden.";
}
echo "<br>";
}
elseif ($action == "update" && !empty($_GET["news_id"]))
{
?>
<form action="cp.php?page=03&action=set" method="post">
<div align="center" class="news">
<b>Titel</b><br><input name="news_titel" type="Text" size="30"
value="<? $news_titel ?>"><br>
<b>Text</b><br><textarea name="news_inhalt"
cols="27" rows="10"><? $news_inhalt ?></textarea><br>
<input type="submit" value="speichern">
<input type="hidden" name="action" value="speichern">
</div>
</form>
<?php
}
elseif ($action == "set")
{
$news_titel = $_SESSION["s_news_titel"];
$news_inhalt = $_SESSION["s_news_inhalt"];
$news_id = $_SESSION["s_news_id"];
$sql = "UPDATE News SET Titel = $news_titel,
Inhalt = $news_inhalt WHERE ID = $news_id";
$result = mysql_query($sql) OR die(mysql_error());
}
?> # Zeile 67
Fehlermeldung:
PHP-Code:
Parse error: parse error, unexpected $ in /srv/www/web1/html/.../news_set.php on line 67
Geändert von SilverVegeto (15-12-2006 um 13:46 Uhr)
|

15-12-2006, 13:43
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
was möchte uns syntax highlighting des forums wohl sagen?
|

15-12-2006, 13:47
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Wenn du die Codestelle
PHP-Code:
$sql = "UPDATE News SET Titel = $news_titel,
Inhalt = $news_inhalt WHERE ID = $news_id";
meinst wo das " gefehlt hat, dass wars nicht.
|

15-12-2006, 13:49
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
ok, gegenfrage: was gibt folgender code aus:
PHP-Code:
<strong>foo <? 'bar' ?></strong>
?
|

15-12-2006, 13:54
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Ja nichts, da wenn es eine Variable wäre müsste sie mir echo und $-Zeichen sein um sie ausgeben zu können.
|

15-12-2006, 13:57
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
das ist nicht wahr - gib dir mühe und teste das.
was muss man an dem code ändern, um die ausgabe
Code:
<strong>foo bar</strong>
zu erhalten?
|

15-12-2006, 14:03
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Einfach
PHP-Code:
<strong>foo <? echo "bar"; ?></strong>
|

15-12-2006, 14:04
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
richtig!
|

15-12-2006, 14:05
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
ähm..und was hab ich dan bei meinem code falsch gemacht?
|

15-12-2006, 14:06
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.804
|
|
PHP-Code:
<input name="news_titel" type="Text" size="30" value="<? $news_titel ?>">
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

15-12-2006, 14:20
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Okay danke - jetzt ist aber noch ein Fehler, wieso funktioniert das nicht:
PHP-Code:
if(isset($_GET['action']))
{
$action = $_GET['action'];
$_SESSION["s_news_id"] = "$news_id";
$_SESSION["s_news_titel"] = "$news_titel";
$_SESSION["s_news_inhalt"] = "$news_inhalt";
}
oder das
PHP-Code:
{
$action = $_GET['action'];
$_SESSION["s_news_titel"] = $row['Titel'];
$_SESSION["s_news_inhalt"] = $row['Inhalt'];
$_SESSION["s_news_id"] = $row['ID'];
}
nicht? Denn ich möchte die Variablen ja übertragen lassen. Kommt aber immer der Fehler das die Variable nicht definiert ist, wie kann ich das ändern?
PHP-Code:
Notice: Undefined variable: row in /srv/www/web1/html/.../news_set.php on line 23
Notice: Undefined variable: row in /srv/www/web1/html/.../news_set.php on line 24
Notice: Undefined variable: row in /srv/www/web1/html/.../news_set.php on line 25
|

15-12-2006, 14:22
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
das erste funktioniert. beim zweiten: steht doch da: $row unbekannt.
|

15-12-2006, 14:33
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Ja wenn ich aber den ersten Code mach, also so:
PHP-Code:
<?php include ("checkuser.php"); ?>
<?php session_start (); ?>
<?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'];
$_SESSION["s_news_id"] = "$news_id";
$_SESSION["s_news_titel"] = "$news_titel";
$_SESSION["s_news_inhalt"] = "$news_inhalt";
}
if ($action == "")
{
$sql = "SELECT ID, Titel, Inhalt 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\">
<a href=\"cp.php?page=03&action=update&news_id=
" . $row['ID'] . "&titel=".$row['Titel']."\">[ID: ";
echo $row['ID'];
echo "] <b>";
echo $row['Titel'];
echo "</a></b></div>";
}
} else {
echo "Keine News vorhanden.";
}
echo "<br>";
}
elseif ($action == "update" && !empty($_GET["news_id"]))
{
?>
<form action="cp.php?page=03&action=set" method="post">
<div align="center" class="news">
<b>Titel</b><br><input name="news_titel"
type="Text" size="30" value="<? echo '$news_titel'; ?>"><br>
<b>Text</b><br><textarea name="news_inhalt"
cols="27" rows="10"><? echo '$news_inhalt'; ?></textarea><br>
<input type="submit" value="speichern">
<input type="hidden" name="action" value="speichern">
</div>
</form>
<?php
}
elseif ($action == "set")
{
$news_titel = $_SESSION["s_news_titel"];
$news_inhalt = $_SESSION["s_news_inhalt"];
$news_id = $_SESSION["s_news_id"];
$sql = "UPDATE News SET Titel = $news_titel,
Inhalt = $news_inhalt WHERE ID = $news_id";
$result = mysql_query($sql) OR die(mysql_error());
}
?>
kommt immer die Fehlermeldung, und die Inhalte werden nicht in den Textboxen ausgegeben.
PHP-Code:
Notice: Undefined variable: news_titel in /srv/www/web1/html/.../news_set.php on line 24
Notice: Undefined variable: news_inhalt in /srv/www/web1/html/.../news_set.php on line 25
|

15-12-2006, 14:33
|
Griecherus
PHP Senior
|
|
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
|
|
Zum ersten Codeausschnitt: doublequotes (") umschließen eine Zeichenkette und gehören nicht um Variablen - schon gar nicht um lose.
PHP-Code:
$_SESSION["s_news_id"] = $news_id;
// statt
$_SESSION["s_news_id"] = "$news_id";
EDIT:
Das sehe ich erst jetzt:
PHP-Code:
<? echo '$news_titel'; ?>
wird dir nicht den Wert der Variablen $news_titel ausgeben, sondern die Zeichenkette $news_titel. Auch hier sind - in diesem Falle singlequotes - fehl am Platze.
Geändert von Griecherus (15-12-2006 um 14:37 Uhr)
|

15-12-2006, 14:55
|
SilverVegeto
Newbie
|
|
Registriert seit: Apr 2004
Beiträge: 118
|
|
Jetzt sind keine Fehlermeldungen mehr da und der Inhalt wird auch angeziegt, allerdings immer von den letzten News (egal welche ich sonst auswähle), wie kann ich das ändern?
PHP-Code:
<?php include ("checkuser.php"); ?>
<?php session_start (); ?>
<?php
error_reporting(E_ALL);
include "../inc/config.php";
// 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, Inhalt 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\"><a href=\"cp.php?page=03&action=update&news_id=
" . $row['ID'] . "&titel=".$row['Titel']."\">[ID: ";
echo $row['ID'];
echo "] <b>";
echo $row['Titel'];
echo "</a></b></div>";
$_SESSION["s_news_id"] = $row['ID'];
$_SESSION["s_news_titel"] = $row['Titel'];
$_SESSION["s_news_inhalt"] = $row['Inhalt'];
}
} else {
echo "Keine News vorhanden.";
}
echo "<br>";
}
elseif ($action == "update" && !empty($_GET["news_id"]))
{
$news_titel = $_SESSION["s_news_titel"];
$news_inhalt = $_SESSION["s_news_inhalt"];
?>
<form action="cp.php?page=03&action=set" method="post">
<div align="center" class="news">
<b>Titel</b><br><input name="news_titel"
type="Text" size="30" value="<? echo $news_titel; ?>"><br>
<b>Text</b><br><textarea name="news_inhalt"
cols="27" rows="10"><? echo $news_inhalt; ?></textarea><br>
<input type="submit" value="speichern">
<input type="hidden" name="action" value="speichern">
</div>
</form>
<?php
}
elseif ($action == "set")
{
$news_titel = $_SESSION["s_news_titel"];
$news_inhalt = $_SESSION["s_news_inhalt"];
$news_id = $_SESSION["s_news_id"];
$sql = "UPDATE News SET Titel = $news_titel,
Inhalt = $news_inhalt WHERE ID = $news_id";
$result = mysql_query($sql) OR die(mysql_error());
}
?>
|
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
|