parse error, unexpected $
Sven V.
- php
Hallio
ich schreibe grad an einem kleinen Script was 4 Werte in eine Mysql Tabelle speichern soll!
Aber nun bekomme ich einen parse error, unexpected $ in der letzten Zeile des Dokuments also bei </html> ich finde den Fehler leider nicht! ./
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h3>Daten für die Boxen eintagen</h3>
<?php
//Abfrage ob das Formular abgeschickt wurde
if($_POST['flag']==1)
{
//evtl. Leerstellen entfernen
$_POST['ueber']=trim($_POST['ueber']);
$_POST['disc']=trim($_POST['disc']);
$_POST['preis']=trim($_POST['preis']);
$_POST['url']=trim($_POST['url']);
//evtl. HTML-Code entfernen
$_POST['ueber']=strip_tags($_POST['ueber']);
$_POST['disc']=strip_tags($_POST['disc']);
$_POST['preis']=strip_tags($_POST['preis']);
$_POST['url']=strip_tags($_POST['url']);
//Testen ob Felder ausgefüllt sind
if(!$_POST['ueber']){$fehler="Bitte die Überschrift eingeben: <br />";}
if(!$_POST['disc']){$fehler.="Bitte die Beschreibung eingeben: <br />";}
if(!$_POST['preis']){$fehler.="Bitte den Preis eingeben: <br />";}
if(!$_POST['url']){$fehler.="Bitte die URL eingeben: <br />";}
//Wenn Fehler gib ihn in der Form aus
if($fehler)
{
$fehlertext="<h4>".$fehler."</h4>";
unset($_POST['flag']);
}
else
{
//SQL String
$tabellenname="lm-link1";
$sql="INSERT INTO $tabellenname (ueber, disc, preis, url)
values ('".$_POST['ueber']."', '".$_POST['disc']."', '".$_POST['preis']."' '".$_POST['url']."', now())";
//Verbindung zur Datenbank
$link = mysql_connect("localhost", "rysenmsw", "IlC77uS0");
mysql_select_db("rysen", $link);
mysql_query($sql, $link);
//Ausgabe Fertig
$fehlertext="<h4>Daten gespeichert. <a href=\"index.php\">weiter...</a></h4>";
echo $fehlertext;
}
if(!$_POST['flag'])
{
?>
<!--Das Formular-->
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" />
<input type="hidden" name="flag" value="1" />
<p>Die Überschrift<br>
<input type="text" name="ueber" value="<? echo $_POST['ueber']; ?>"></p>
<p>Die Beschreibung<br>
<input type="text" name="disc" value="<? echo $_POST['disc']; ?>"></p>
<p>Der Preis<br>
<input type="text" name="preis" value="<? echo $_POST['preis']; ?>"></p>
<p>Die URL<br>
<input type="text" name="url" value="<? echo $_POST['url']; ?>"></p>
<input type="submit" value="Absende" />
</form>
<?
}
?>
</body>
</html>
Hoffe mir kann jemand einen Tipp geben
Grüße
Hallo,
Du hast zu wenig Klammern geschlossen. Die Klammern von der ersten if Abfrage bleibt offen.
Gruß,
Click
Vielen Dank diese Klammer habe ich wohl übersehen :(
habe da noch zwei kleine Probleme, undzwar funktioniert irgentwie die Abfrage der Ausgefüllten Felder nicht, es wird kein Fehlertext angezeigt finde den Fehler aber absolut nicht. Und ich möchte das man über eine Auswahliste auswählen kann in welche Tabelle der DB geschrieben wird! Struktur der Tabellen bleibt gleich nur der Name wechselt!
Habe gedacht das ergebnis von der der Auswhliste in eine Variable zu speichern und die bei $tabellennamen zu setzten was auch so seien wird aber mein Weg geht mal garnicht, die Liste wird nicht mehr angezeigt!
<?php
//Abfrage ob das Formular abgeschickt wurde
if($_POST['flag']==1)
{
//evtl. Leerstellen entfernen
$_POST['ueber']=trim($_POST['ueber']);
$_POST['disc']=trim($_POST['disc']);
$_POST['preis']=trim($_POST['preis']);
$_POST['url']=trim($_POST['url']);
//evtl. HTML-Code entfernen
$_POST['ueber']=strip_tags($_POST['ueber']);
$_POST['disc']=strip_tags($_POST['disc']);
$_POST['preis']=strip_tags($_POST['preis']);
$_POST['url']=strip_tags($_POST['url']);
//Testen ob Felder ausgefüllt sind
if(!$_POST['ueber']){$fehler="Bitte die Überschrift eingeben: <br />";}
if(!$_POST['disc']){$fehler.="Bitte die Beschreibung eingeben: <br />";}
if(!$_POST['preis']){$fehler.="Bitte den Preis eingeben: <br />";}
if(!$_POST['url']){$fehler.="Bitte die URL eingeben: <br />";}
//Wenn Fehler gib ihn in der Form aus
if($fehler)
{
$meldung="<h4>".$fehler."</h4>";
unset($_POST['flag']);
}
else
{
//SQL String
$tabellenname="$t_name";
$sql="INSERT INTO $tabellenname (ueber, disc, preis, url)
values ('".$_POST['ueber']."', '".$_POST['disc']."', '".$_POST['preis']."' '".$_POST['url']."', now())";
//Verbindung zur Datenbank
$link = mysql_connect("localhost", "Loginxxx", "PW...");
mysql_select_db("DB", $link);
mysql_query($sql, $link);
//Ausgabe Fertig
$meldung="<h4>Daten gespeichert. <a href=\"index.php\">weiter...</a></h4>";
echo $meldung;
}
if(!$_POST['flag'])
{}}
?>
<!--Das Formular-->
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" />
<input type="hidden" name="flag" value="1" />
<p>Auswahl der Tabelle<br>
<? $t_name="<select name='tabelle'>
<option value='r_lm_eins'>Last-Minute 1</option>
<option value='r_lm_zwei'>Last-Minute 2</option>
</select>"; ?></p>
<p>Die Überschrift<br>
<input type="text" name="ueber" value="<? echo $_POST['ueber']; ?>"></p>
<p>Die Beschreibung<br>
<input type="text" name="disc" value="<? echo $_POST['disc']; ?>"></p>
<p>Der Preis<br>
<input type="text" name="preis" value="<? echo $_POST['preis']; ?>"></p>
<p>Die URL<br>
<input type="text" name="url" value="<? echo $_POST['url']; ?>"></p>
<input type="submit" value="Absenden" />
</form>
Grüße
Hallo,
habe da noch zwei kleine Probleme, undzwar funktioniert irgentwie die Abfrage der Ausgefüllten Felder nicht, es wird kein Fehlertext angezeigt
mach mal am Anfang des Scripts error_reporting("E_ALL"); und guck ob dann ein Fehler ausgegeben wird
Gruß,
Click
Thx für den Tipp
Es kommt ein Fehler aber nur bei error_reporting(E_ALL); nicht wie du es geschrieben hast error_reporting("E_ALL");
Notice: Undefined index: flag in eintragen.php on line 14
kann den Fehler leider nicht deuten :/
Grüße
hi,
Notice: Undefined index: flag in eintragen.php on line 14
kann den Fehler leider nicht deuten :/
Du versuchst, auf etwas lesend zuzugreifen, was gar nicht da ist:
//Abfrage ob das Formular abgeschickt wurde
if($_POST['flag']==1)
Nutze isset() oder empty() stattdessen.
gruß,
wahsaga
Dann scheint das Buch das ich zum lernen nutze echt Rotz zu sein schade!
Gruß
echo $begrüßung;
Dann scheint das Buch das ich zum lernen nutze echt Rotz zu sein schade!
Vermutlich. Es bringt dir ja anscheinend noch nicht mal bei, wie man Fehler sucht.
Wenn etwas anderes rauskommt, als man haben will, sind meist die Inhalte der beteiligten Variablen abweichend von den eigenen Vorstellungen. Kontrollausgaben mit echo, print, print_r() und var_dump() helfen bei der Aufklärung des Fehlerfalls. Und nicht nur Variablen, auch die Ergebnisse von Funktionen und Ausdrücken kann man sich ausgeben lassen.
echo "$verabschiedung $name";
Hi!
Aber nun bekomme ich einen parse error, unexpected $ in der letzten Zeile des Dokuments
Den Fehler hat Click ja bereits erkannt.
Mit Hilfe eines guten Editors hättest du den Fehler allerdings auch selbst entdecken können.
Ich weiß ja nicht, womit du arbeitest, aber meine IDE zeigt mir nicht geschlossene Klammern an bzw. könnte diese auch automatisch schließen.
Auch am Highlighting würde es mir sofort auffallen, wenn eine Klammer fehlt.
Ich wollte aber noch mal schnell eine Bemerkung zu deinem Code machen:
Poste nie, nie, nie deine Zugangsdaten in irgendeinem Forum.
Man kann die Adresse des MySQL-Servers glücklicherweise zwar nicht sehen, aber ich schätze mal, daß ich diesen eventuell rausfinden könnte, wenn ich eine Suchmaschine befragen würde.
Außerdem solltest du dich mal über SQL-Injections schlau machen.
Dein Code ist nicht ausreichend gesichert.
Du solltest alle Daten, die von außen an dein Script übergeben werden, immer als "böse" ansehen und ggf. bereinigen.
In jedem Fall solltest du eventuell geposteten SQL-Code mittels mysql_real_escape_string() unschädlich machen, bevor du den Krams in deine Abfragen einbaust.
Schöner Gruß,
rob
Hallo,
Den Fehler hat Click ja bereits erkannt.
Mit Hilfe eines guten Editors hättest du den Fehler allerdings auch selbst entdecken können.
Oder einfach den Quelltext vernünftig einrücken...
Gruß,
Click
--
$browser = new BrowserIdentifier();
if($browser->shortcut == "ie") {
do_unordinary_things_with_ie();
}
else {