Webstatt.org - Community seit 2006 - 2012 (2024?)

Problem mit Gästebuch und MySQL

user-137
08.04.2006 14: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+"zwinkern;
$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"zwinkern . " Uhr";
$sql="INSERT INTO guestbook " .
"VALUES ('', '$_POST[Name]', '$_POST[Email]', '$_POST[Home]', " .
"'$datum', '$_POST[Text]'zwinkern";
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:

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

Avatar user-162
08.04.2006 15: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

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-137
08.04.2006 15: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"zwinkern; ?>
<!-- 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"zwinkern; ?></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+"zwinkern;
$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"zwinkern . " Uhr";
$sql="INSERT INTO guestbook " .
"VALUES ('', '$_POST[Name]', '$_POST[Email]', '$_POST[Home]', " .
"'$datum', '$_POST[Text]'zwinkern";
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>

Avatar user-162
08.04.2006 15:22

wie gesagt probiers mal so


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

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-137
08.04.2006 15:27

Immer noch:

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

Avatar user-162
08.04.2006 15:39

if (isset($_POST['submit'])) {
function no_reload() {
$gleichheit=false;
if (isset($_POST["uw"])) {
$datei="unique.txt";
$fp=fopen($datei,"r+"zwinkern;
$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 zwinkern

//edit: eieiei schreibfehler

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-137
09.04.2006 14:14

Danke!

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

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"zwinkern; ?>
<!-- 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"zwinkern; ?></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+"zwinkern;
$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"zwinkern . " Uhr";
$sql="INSERT INTO guestbook " .
"VALUES ('', '$_POST[Name]', '$_POST[Email]', '$_POST[Home]', '$_POST[Note]', " .
"'$datum', '$_POST[Kommentar]'zwinkern";
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>

user-137
21.04.2006 11:45

weiß da keiner was?

Avatar user-206
21.04.2006 12:22


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


mach mal:


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

Eintracht Braunschweig
Avatar user-255
21.04.2006 12: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']

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-137
21.04.2006 12:41

weiterhin der selbe fehler!


€ ne, dremwaver!

Avatar user-255
21.04.2006 12:48

einensolchencodehierhinzuklatschenisteinfachasozialweilsichkeinschweindrinauskenntdicheingeschlossenovermitnormalerformatierungwäredirnämlcihlängstaufgefallendassirgendwoeineklammerfehltover

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-137
21.04.2006 12:54

ganz am ende?? so??

mysql_close();
}


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

Avatar user-325
21.04.2006 12:56

Original von user-255
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.

PHP spricht hebräisch. lächeln
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
user-137
21.04.2006 13:10

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

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?

user-344
21.04.2006 13:11

du hast keine verbindung oder dein query ist falsch.

Avatar user-325
21.04.2006 13:13

mysql_error()

PHP spricht hebräisch. lächeln
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
Avatar user-255
21.04.2006 13:27

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

Ist da die if-Abfrage gleich mit drinne?


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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-137
21.04.2006 13:39

also die verbinndung zur Datenbank ist da...


@Thiem

mysql_error() - Es wird kein Fehler angezeigt.

Avatar user-325
21.04.2006 14:53

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

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

PHP spricht hebräisch. lächeln
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM
user-137
22.04.2006 11:12

das ist in der confic.ini.php:

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

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

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


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

user-137
23.04.2006 08:08

Kann mir keiner weiterhelfen?