Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder am 08.04.06 16:53

Hallo,

ich bin dabei ein Gästebuch für meine neue Page zu machen, nur leider komm ich an einen Punkt wo ich ein Problem habe:

<?php
if (isset($_POST['submit'])) {

function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+");
$aw=fgets($fp,30);
if ($aw==$_POST["uw"]) {
$gleichheit=true;
}
rewind($fp);
fputs($fp,$_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
$unique=no_reload();

$fehler=false;
$fehlertext="";

if (empty($_POST['Name'])) {
$fehler=true;
$fehlertext.="Der Name fehlt!<br>\n";
}
else if (strlen($_POST['Name'])<3) {
$fehler=true;
$fehlertext.="Der Name ist zu kurz<br>\n";
}

$muster="/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (empty($_POST['Email'])) {
$fehler=true;
$fehlertext.="Die E-Mail-Adresse fehlt!<br>\n";
}
else if (preg_match($muster, $_POST['Email'])==0) {
$fehler=true;
$fehlertext.="Die E-Mail-Adresse ist ungültig!<br>\n";
}

if (empty($_POST['Note'])) {
$fehler=true;
$fehlertext.="Die Bewertung der Seite fehlt!<br>\n";
}

if ((empty($_POST['Text']))) {
$fehler=true;
$fehlertext.="Sie müssen einen Eintrag schreiben!<br>\n";
}
else if (strlen($_POST['Text'])<15) {
$fehler=true;
$fehlertext.="Der Eintrag ist zu kurz!<br>\n";
}

if ($fehler) {
echo "<p>$fehlertext</p>";
}
else {

if (!empty($_POST["Name"]) && !empty($_POST["Email"]) && !empty($_POST["Home"])
&& !empty($_POST["Text"]) && !$unique) {
$datum=date("d.m.Y, H:i") . " Uhr";
$sql="INSERT INTO guestbook " .
"VALUES ('', '$_POST[Name]', '$_POST[Email]', '$_POST[Home]', " .
"'$datum', '$_POST[Text]')";
mysql_query($sql);
}

$sql1="SELECT * FROM guestbook";
$sql2="SELECT * FROM guestbook ORDER BY id DESC LIMIT $start, $step";
$result1=mysql_query($sql1);
$zeilen=mysql_num_rows($result1);
$result2=mysql_query($sql2);
?>


Dieser Fehler wird Angezeigt:

Quote
Parse error: parse error, unexpected $ in C:\FoxServ\www\Re-Design\page\guestbook_new.php on line 148


Ich verstehe nicht ganz was für eine Variable er nicht findet...
Ich hoffe ir könnt mir helfen...


Mfg. BNS

netcup.de Warum gibt es hier Werbung?
der_nic der_nic am 08.04.06 17:17

währe noch hilfreich zu wissen welches die Zeile 148 ist, weil dein Code hat nur 76.

//edit: ausserdem scheinen deine sql Befehle ein bischen komisch....
$_POST[Name] -> $_POST['Name'] bzw $_POST[\'Name\']
ausserdem ist es gefährlich Daten direkt aus POST und GET zu übernehmen wegen Injections

BNightSpeeder am 08.04.06 17:19

Ok, hier der ganze CODE:

<?php
$page = $_GET['page'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="css.css">
<!-- Hier beginnt das einbinnden der config.ini.php -->
<?php include("config.ini.php"); ?>
<!-- Hier endet das einbinnden der config.ini.php -->
</head>

<body>
<table width="100%" hight="100" border="0">
<tr>
<!-- Hier beginnt das einbinnden des menues -->
<td height="100%"><?php include("menue.php"); ?></td>
<!-- Hier endet das einbinnden des Menues -->
</tr>
<tr>
<!-- Hier wird die Page aus dem Ordner eingebunden -->
<td height="100%"><?php
$page_titel = 'Gästebuch - Neuer Eintrag';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Internetiv - <?php echo $page_titel; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="css.css">
</head>

<body>
<table align="center" width="600" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="42" id="oben_links"></td>
<td width="554" id="oben_mitte"></td>
<td width="10" id="oben_rechts"></td>
</tr>
<tr>
<td height="558" id="mitte_links"></td>
<td id="mitte_mitte"><div align="center">
<h1>Neuer Eintrag</h1>
<p>&nbsp;</p>
</div><form action="page.php?page=guestbook_new" method="post"><table width="100%" border="0">
<tr>
<td width="16%">Name:</td>
<td width="84%"><input name="Name" type="text"
value="<?php echo htmlspecialchars(stripslashes($_POST['Name'])); ?>" size="30"></td>
</tr>
<tr>
<td>Ihre E-Mail:</td>
<td><input name="Email" type="text"
value="<?php echo htmlspecialchars(stripslashes($_POST['Email'])); ?>" size="30"></td>
</tr>
<tr>
<td>Homepage:</td>
<td><input name="Homepage" type="text"
value="<?php echo htmlspecialchars(stripslashes($_POST['Homepage'])); ?>" size="30">
(Optimal) </td>
</tr>
<tr>
<td>Bewertung:</td>
<td> <select name="Note" value="<?php echo htmlspecialchars(stripslashes($_POST['Thema'])); ?>">
<option value="">-------------</option>
<option value="1">1 = Sehr Gut</option>
<option value="1">2 = Gut</option>
<option value="3">3 = OK</option>
<option value="4">4 = In ordnung</option>
<option value="5">5 = Naja</option>
<option value="6">6 = Schlecht</option>
</select></td>
</tr>
<tr>
<td>Eintrag:</td>
<td><textarea name="Text" cols="55" rows="5">
<?php echo stripslashes($_POST['Text']); ?>
</textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Senden" name="submit"><input type="reset" value="Löschen" name="reset"></tr></table></form><br\>
<?php
if (isset($_POST['submit'])) {

function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+");
$aw=fgets($fp,30);
if ($aw==$_POST["uw"]) {
$gleichheit=true;
}
rewind($fp);
fputs($fp,$_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
$unique=no_reload();

$fehler=false;
$fehlertext="";

if (empty($_POST['Name'])) {
$fehler=true;
$fehlertext.="Der Name fehlt!<br>\n";
}
else if (strlen($_POST['Name'])<3) {
$fehler=true;
$fehlertext.="Der Name ist zu kurz<br>\n";
}

$muster="/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (empty($_POST['Email'])) {
$fehler=true;
$fehlertext.="Die E-Mail-Adresse fehlt!<br>\n";
}
else if (preg_match($muster, $_POST['Email'])==0) {
$fehler=true;
$fehlertext.="Die E-Mail-Adresse ist ungültig!<br>\n";
}

if (empty($_POST['Note'])) {
$fehler=true;
$fehlertext.="Die Bewertung der Seite fehlt!<br>\n";
}

if ((empty($_POST['Text']))) {
$fehler=true;
$fehlertext.="Sie müssen einen Eintrag schreiben!<br>\n";
}
else if (strlen($_POST['Text'])<15) {
$fehler=true;
$fehlertext.="Der Eintrag ist zu kurz!<br>\n";
}

if ($fehler) {
echo "<p>$fehlertext</p>";
}
else {

if (!empty($_POST["Name"]) && !empty($_POST["Email"]) && !empty($_POST["Home"])
&& !empty($_POST["Text"]) && !$unique) {
$datum=date("d.m.Y, H:i") . " Uhr";
$sql="INSERT INTO guestbook " .
"VALUES ('', '$_POST[Name]', '$_POST[Email]', '$_POST[Home]', " .
"'$datum', '$_POST[Text]')";
mysql_query($sql);
}

$sql1="SELECT * FROM guestbook";
$sql2="SELECT * FROM guestbook ORDER BY id DESC LIMIT $start, $step";
$result1=mysql_query($sql1);
$zeilen=mysql_num_rows($result1);
$result2=mysql_query($sql2);
?>
</td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table>
</body>
</html></td>
<!-- Hier endet das einbinnden der Page aus dem ordner -->
</tr>
</table>

</body>
</html>

der_nic der_nic am 08.04.06 17:22

wie gesagt probiers mal so

$sql="INSERT INTO guestbook VALUES ('', '".$_POST['Name']."', '".$_POST['Email']."', '".$_POST['Home']."', '$datum', '".$_POST['Text']."')";

BNightSpeeder am 08.04.06 17:27

Immer noch:

Quote
Parse error: parse error, unexpected $ in C:\FoxServ\www\Re-Design\page\guestbook_new.php on line 146

der_nic der_nic am 08.04.06 17:39

if (isset($_POST['submit'])) {
function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+");
$aw=fgets($fp,30);
if ($aw==$_POST["uw"]) {
$gleichheit=true;
}
rewind($fp);
fputs($fp,$_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
}
$unique=no_reload();

du hast eine Klammer vergessen.... Zeile 17
oft hilft eine übersichtlichere Schreibweise ;)

//edit: eieiei schreibfehler

BNightSpeeder am 09.04.06 16:14

Danke!

Nun habe ich den code übersichtlicher gemacht, jetzt kommt der Fehler:

Quote
Parse error: parse error, unexpected $ in C:\FoxServ\www\Re-Design\page\guestbook_new.php on line 147


Hier der Ganze CODE:

<?php
$page = $_GET['page'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="css.css">
<!-- Hier beginnt das einbinnden der config.ini.php -->
<?php include("config.ini.php"); ?>
<!-- Hier endet das einbinnden der config.ini.php -->
</head>

<body>
<table width="100%" hight="100" border="0">
<tr>
<!-- Hier beginnt das einbinnden des menues -->
<td height="100%"><?php include("menue.php"); ?></td>
<!-- Hier endet das einbinnden des Menues -->
</tr>
<tr>
<!-- Hier wird die Page aus dem Ordner eingebunden -->
<td height="100%"><?php
$page_titel = 'Gästebuch - Neuer Eintrag';
?>

<table align="center" height="389" width="600" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="40" id="oben_links"></td>
<td width="548" id="oben_mitte"></td>
<td width="12" id="oben_rechts"></td>
</tr>
<tr>
<td height="362" id="mitte_links"></td>
<td id="mitte_mitte"><h1 align="center">Neuer Eintrag</h1>
<p align="center">&nbsp;</p>
<form action="page.php?page=guestbook_new" method="post">
<table align="left" width="100%" border="0">
<tr>
<td width="24%">Name:</td>
<td width="76%"><input name="Name" type="text" size="30" maxlength="35"></td>
</tr>
<tr>
<td>Ihre E-Mail:</td>
<td><input name="Email" type="text" size="30" maxlength="50"></td>
</tr>
<tr>
<td>Ihre Homepage:</td>
<td><input name="Home" type="text" size="30" maxlength="20"></td>
</tr>
<tr><td>Bewertung:</td>
<td><select name="Note">
<option value="">-------------</option>
<option value="1">1 = Sehr Gut</option>
<option value="2">2 = Gut</option>
<option value="3">3 = OK</option>
<option value="4">4 = Naja</option>
<option value="5">5 = Miserabel</option>
<option value="6">6 = Schlecht</option>
</select></td>
</tr>
<tr>
<td height="129">Eintrag:</td>
<td><p>
<textarea cols="55" rows="5" name="textarea"></textarea>
</p>
<p>
<input name="submit" type="submit" value="Eintrag speichern"><input name="reset" type="reset" value="Löschen">
</p>
</td>
</tr>
</table>
</form>
</td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table>
<?php
if (isset($_POST['submit'])) {

function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+");
$aw=fgets($fp,30);
if ($aw==$_POST["uw"]) {
$gleichheit=true;
}
rewind($fp);
fputs($fp,$_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
$unique=no_reload();

$fehler=false;
$fehlertext="";

if (empty($_POST['Name'])) {
$fehler=true;
$fehlertext.="Der Name fehlt!<br>\n";
}
else if (strlen($_POST['Name'])<3) {
$fehler=true;
$fehlertext.="Der Name ist zu kurz<br>\n";
}

$muster="/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (empty($_POST['Email'])) {
$fehler=true;
$fehlertext.="Die E-Mail-Adresse fehlt!<br>\n";
}
else if (preg_match($muster, $_POST['Email'])==0) {
$fehler=true;
$fehlertext.="Die E-Mail-Adresse ist ungültig!<br>\n";
}

if (empty($_POST['Note'])) {
$fehler=true;
$fehlertext.="Die Bewertung fehlt!<br>\n";
}

if ((empty($_POST['Text']))) {
$fehler=true;
$fehlertext.="Der Eintrag fehlt!<br>\n";
}
else if (strlen($_POST['Text'])<15) {
$fehler=true;
$fehlertext.="Der Eintrag ist zu kurz<br>\n";
}

if ($fehler) {
echo "<p>$fehlertext</p>";
}
else {

$start=0; // Startwert setzen (0 = 1. Zeile)
$step=4; // Wie viele Einträge gleichzeitig?
// Startwert verändern:
if (isset($_GET["start"])) {
$start=$_GET["start"];
}
$nr=$start+1;

if (!empty($_POST["Name"]) && !empty($_POST["Email"]) && !empty($_POST["Home"]) && !empty($_POST["Note"])
&& !empty($_POST["Kommentar"]) && !$unique) {
$datum=date("d.m.Y, H:i") . " Uhr";
$sql="INSERT INTO guestbook " .
"VALUES ('', '$_POST[Name]', '$_POST[Email]', '$_POST[Home]', '$_POST[Note]', " .
"'$datum', '$_POST[Kommentar]')";
mysql_query($sql);
}

$sql1="SELECT * FROM guestbook";
$sql2="SELECT * FROM guestbook ORDER BY id DESC LIMIT $start, $step";
$result1=mysql_query($sql1);
$zeilen=mysql_num_rows($result1);
$result2=mysql_query($sql2);

mysql_close();
?></td>
<!-- Hier endet das einbinnden der Page aus dem ordner -->
</tr>
</table>

</body>
</html>

BNightSpeeder am 21.04.06 13:45

weiß da keiner was?

jonsen jonsen am 21.04.06 14:22

if (isset($_GET["start"])) {
$start=$_GET["start"];


mach mal:

if (isset($_GET['start'])) {
$start=$_GET['start'];

milahu milahu am 21.04.06 14:41

Schreibst du deinen Code mit Notepad, oder woher kommt die überaus leserfreundliche Formatierung?

jonsen, das ist das gleiche in Grün. Noch kürzer ist übrigens
$start =& $_GET['start']

BNightSpeeder am 21.04.06 14:41

weiterhin der selbe fehler!


€ ne, dremwaver!

milahu milahu am 21.04.06 14:48

einensolchencodehierhinzuklatschenisteinfachasozialweilsichkeinschweindrinauskenntdicheingeschlossenovermitnormalerformatierungwäredirnämlcihlängstaufgefallendassirgendwoeineklammerfehltover

BNightSpeeder am 21.04.06 14:54

ganz am ende?? so??

mysql_close();
}


wenn ja, war schon drin, ist wohl nicht in den POST mitkopiert worden.

Thiemm Thiemm am 21.04.06 14:56

Quote
Original von milahu
jonsen, das ist das gleiche in Grün. Noch kürzer ist übrigens
$start =& $_GET['start']

Ist da die if-Abfrage gleich mit drinne?

@BNS: In Zeile 146 fehlt eine schließende geschweifte Klammer.

BNightSpeeder am 21.04.06 15:10

ja, das wars..
nun kommt aber noch nen fehler zu MySQL:

Quote
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\Re-Design\page\guestbook_new.php on line 142


heißt das das ich einen anderen befehl benutzen soll?

web4 am 21.04.06 15:11

du hast keine verbindung oder dein query ist falsch.

Thiemm Thiemm am 21.04.06 15:13

mysql_error()

milahu milahu am 21.04.06 15:27

Quote
Original von Thiemm
[quote]Original von milahu
jonsen, das ist das gleiche in Grün. Noch kürzer ist übrigens
$start =& $_GET['start']

Ist da die if-Abfrage gleich mit drinne?[/quote]

Nein. Damit wird nicht der Wert von $_GET['start'] übergeben, der u.U. gar nicht definiert ist, sondern ein Zeiger auf die Variable $_GET['start']. "Copy by reference" statt "copy by value" also.

BNS, du willst wohl nicht glaben, dass deine Syntax fürn Arsch is..

BNightSpeeder am 21.04.06 15:39

also die verbinndung zur Datenbank ist da...


@Thiem

mysql_error() - Es wird kein Fehler angezeigt.

Thiemm Thiemm am 21.04.06 16:53

Wo hast du das denn hingesetzt? Setz das mal genau unter die entsprechende Query.

//edit: Und ein [dok]echo[/dok] dazu *hust*

BNightSpeeder am 22.04.06 13:12

das ist in der confic.ini.php:

<!-- Hier beginnt der MySQL-Zugriff -->
<?php
@mysql_connect("localhost", "victor", "")
or die("Verbindung zum Datenbankserver gescheitert!");
@mysql_select_db("freehost_2277_1") or die("Datenbankzugriff gescheitert!");

?>
<!-- Hier endet der MySQL-Zugriff -->

<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>


ich habe es einfach mir or-die gemacht, geht schneller. ;)

BNightSpeeder am 23.04.06 10:08

Kann mir keiner weiterhelfen?

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt