User-1 am 08.04.06 16:53Hallo,
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
User-2 am 08.04.06 17:17wä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
User-1 am 08.04.06 17:19Ok, 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> </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>
User-2 am 08.04.06 17:22wie gesagt probiers mal so
$sql="INSERT INTO guestbook VALUES ('', '".$_POST['Name']."', '".$_POST['Email']."', '".$_POST['Home']."', '$datum', '".$_POST['Text']."')";
User-2 am 08.04.06 17:39if (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
User-1 am 09.04.06 16:14xyz-48ke!
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"> </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>
User-3 am 21.04.06 14:22
if (isset($_GET["start"])) {
$start=$_GET["start"];
mach mal:
if (isset($_GET['start'])) {
$start=$_GET['start'];
User-4 am 21.04.06 14:41Schreibst du deinen Code mit Notepad, oder woher kommt die überaus leserfreundliche Formatierung?
xyz-96, das ist das gleiche in Grün. Noch kürzer ist übrigens
$start =& $_GET['start']
User-1 am 21.04.06 14:41weiterhin der selbe fehler!
€ ne, dremwaver!
User-4 am 21.04.06 14:48einensolchencodehierhinzuklatschenisteinfachasozialweilsichkeinschweindrinauskenntdicheingeschlossenovermitnormalerformatierungwäredirnämlcihlängstaufgefallendassirgendwoeineklammerfehltover
User-1 am 21.04.06 14:54ganz am ende?? so??
mysql_close();
}
wenn ja, war schon drin, ist wohl nicht in den POST mitkopiert worden.
User-5 am 21.04.06 14:56Quote
Original von xyz-145
xyz-96, 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.
User-1 am 21.04.06 15:10ja, 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?
User-6 am 21.04.06 15:11du hast keine verbindung oder dein query ist falsch.
User-4 am 21.04.06 15:27Quote
Original von xyz-215
[quote]Original von xyz-145
xyz-96, 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..
User-1 am 21.04.06 15:39also die verbinndung zur Datenbank ist da...
@Thiem
mysql_error() - Es wird kein Fehler angezeigt.
User-5 am 21.04.06 16:53Wo hast du das denn hingesetzt? Setz das mal genau unter die entsprechende Query.
//edit: Und ein [dok]echo[/dok] dazu *hust*
User-1 am 22.04.06 13:12das ist in der confic.ini.php:
<!-- Hier beginnt der MySQL-Zugriff -->
<?php
@mysql_connect("localhost", "xyz-229tor", "")
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. ;)
User-1 am 23.04.06 10:08Kann mir keiner weiterhelfen?