woher kommt diese fehlermeldung?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

woher kommt diese fehlermeldung?

Beitrag von langeweile »

ich habe einen code geschrieben, um lateinvokabeln abzufragen.
dieser klappt jetzt auch, jetzt habe ich einen admin bereich erstellt (wird nachher noch passwortgeschützt. hiermit kann man lateinvokabeln hinzufügen, hier erstmal der code:

Code: Alles auswählen

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=post>
Latein:<input type="text" name="latein" size="40" maxlength="80"><br>
Deutsch:<input type="text" name="deutsch" size="40" maxlength="80"><br>
Wortart:<input type="text" name="wortart" size="40" maxlength="80"><br>
Genitiv Sg.:<input type="text" name="genitiv" size="30" maxlength="80">
Genus:<input type="text" name="genus" size="5" maxlength="1"><br>
Nomintaiv m.:<input type="text" name="nominativ_m" size="30" maxlength="80">
Nomintaiv f.:<input type="text" name="nominativ_f" size="30" maxlength="80">
Nomintaiv n.:<input type="text" name="nominativ_n" size="30" maxlength="80"><br>
Präsens Aktiv:<input type="text" name="praesens_a" size="30" maxlength="80">
Perfekt Aktiv:<input type="text" name="perfekt_a" size="30" maxlength="80">
PVP:<input type="text" name="pvp" size="30" maxlength="80">
<input type="submit" value="Absenden">
</form>
<?php
include ("dbconnect.php");
$latein = $_POST['latein'];
$deutsch = $_POST['deutsch'];
$wortart = $_POST['wortart'];
$genitiv = $_POST['genitiv'];
$genus = $_POST['genus'];
$nominativ_m = $_POST['nominativ_m'];
$nominativ_f = $_POST['nominativ_f'];
$nominativ_n = $_POST['nominativ_n'];
$praesens_a = $_POST['praesnes_a'];
$perfekt_a = $_POST['perfekt_a'];
$pvp = $_POST['pvp'];
if ($latein or $deutsch or $wortart == "")
{
echo "Bitte fülle alle benötigten Felder aus";
}
else
{
if ($wortart == nomen or adjektiv or pronomen or verb or adverb or praeposition or konjunktion or zahlwort)
{
$db_update = "INSERT INTO Vokabeln (latein, deutsch, wortart, genitiv, genus, nominativ_m, nominativ_f, nominativ_n, praesens_a, perfekt_a, pvp)
VALUES ("$latein",
 "$deutsch", "$wortart", "$genitiv", "$genus", "$nominativ_m", "$nominativ_f", "$nominativ_n", "$praesens_a", "$perfekt_a", "$pvp");
$db_update_now = mysql_query($db_update);
}
else
{
echo "Bitte gib eine gültige Wortart an";
}
}
?>


aber wenn ich die seite aufrufe kommt folgende fehlermeldung:

Code: Alles auswählen

Parse error: parse error, unexpected T_VARIABLE in /var/www/web12/html/latein/admin.php on line 37



dies liegt also eindeutig an diesem codeteil:

Code: Alles auswählen

$db_update = "INSERT INTO Vokabeln (latein, deutsch, wortart, genitiv, genus, nominativ_m, nominativ_f, nominativ_n, praesens_a, perfekt_a, pvp)
VALUES ("$latein",
 "$deutsch", "$wortart", "$genitiv", "$genus", "$nominativ_m", "$nominativ_f", "$nominativ_n", "$praesens_a", "$perfekt_a", "$pvp");

aber wo ist denn da der fehler? ich habe doch alle variblen voher definiert, oder?


vielen dank im vorraus
langeweile
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Du hast vergessen die " Zeichen zu maskieren.... oder benutze einfache Hochkommatas.

Entweder:

Code: Alles auswählen

[...]
VALUES ('$latein', '$deutsch', '$wortart', '$genitiv', [...]
Oder:

Code: Alles auswählen

[...]
VALUES (\"$latein\", \"$deutsch\", \"$wortart\", \"$genitiv\", [...]
Jojoponn139
Mitglied
Beiträge: 133
Registriert: 05.08.2006 01:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von Jojoponn139 »

Thema geklärt... ich hab ihm per ICQ geholfen...
Jojoponn139
phpBB-de.org
Jojoponn139
Mitglied
Beiträge: 133
Registriert: 05.08.2006 01:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von Jojoponn139 »

Dr.Death hat geschrieben:Du hast vergessen die " Zeichen zu maskieren.... oder benutze einfache Hochkommatas.

Entweder:

Code: Alles auswählen

[...]
VALUES ('$latein', '$deutsch', '$wortart', '$genitiv', [...]
Oder:

Code: Alles auswählen

[...]
VALUES ("$latein", "$deutsch", "$wortart", "$genitiv", [...]
FALSCH!!! ----Der Fehler liegt überhaupt nicht an der MySQL-Abfrage, sondern in der IF-Abfrage darüber!!!

PS: Syntaktisch ABSOLUT korrekter SQL-Code würde so aussehen:

Code: Alles auswählen

$db_update = "INSERT INTO `Vokabeln` (`latein`, `deutsch`, `wortart`, `genitiv`, `genus`, `nominativ_m`, `nominativ_f`, `nominativ_n`, `praesens_a`, `perfekt_a, pvp`) 
VALUES ("$latein", "$deutsch", "$wortart", "$genitiv", "$genus", "$nominativ_m", "$nominativ_f", "$nominativ_n", "$praesens_a", "$perfekt_a", "$pvp");
NIX HOCHKOMMA!!! -Eine Maskierung der Anführungszeichen würde nur bewirken, dass in die Datenbank nicht die tatsächlichen Inhalte der Variablen geschrieben würden, sondern die Namen der Variablen...

Im übrigen darf man sich nicht immer auf die Fehlerangaben des Server verlassen: Jedes PHP-Kind sollte wissen, dass eine IF-Abfrage mit mehreren Bedingungen nicht so aussehen darf:

Code: Alles auswählen

if($var1 == $var2 or $var3)
sondern so aussehen muss:

Code: Alles auswählen

if($var1 == $var2 or $var1 == $var3)
Jojoponn139
phpBB-de.org
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

Beitrag von langeweile »

vielen dank, jetzt gehts, ich entwickle den code mal weiter und wenn wieder ein problem auftaucht, frage ich nochmal :wink:
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

FALSCH!!! ----Der Fehler liegt überhaupt nicht an der MySQL-Abfrage, sondern in der IF-Abfrage darüber!!!
Und du bist sicher das du PHP kannst? :lol:

Er beginnt die Abfrage mit " am Anfang als String, also muss auch jedes ihm String vorkommende " maskiert werden ( \" )
Würde mich wundern wenn der Parser da so akzeptieren würde :roll:
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Ich wollte es nicht erneut erwähnen....
Jojoponn139
Mitglied
Beiträge: 133
Registriert: 05.08.2006 01:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von Jojoponn139 »

ROFL!! --JA ich bin sicher! -Diese Syntax ist korrekt und jemand, der das bezweifelt hat schlicht und einfach keine Ahnung.

PS: Mit dieser Syntax arbeite ich seit den gesamten 4Jahren meiner PHP_Erfahrung.... -.... Und olle "langeweile" sagt auch, dass es geht :::: und ich habe auch bereits komplette Datenbankbasierte Besucherstatistikscripte gemacht, die mit dieser Syntax arbeiten.

Außerdem arbeitet das komplette Ajax und MySQL-Basierte Newssystem als MOD für phpBB2 von GFX-United (uns) auf diese Art u. Weise.

Also kommen wir wieder zu meinem Motto:
"Wenn man keine Ahnung hat; einfach mal Fresse halten"

PS: Ich habe diese Syntax aus einer Schulung in MySQL mit PHP!

Falls ihr noch was zu dem Thema zu sagen habt, erzählt das "langeweile"; denn er ist "der lebende Beweis", dass es geht!

ACH UND:
fanrpg hat geschrieben:
FALSCH!!! ----Der Fehler liegt überhaupt nicht an der MySQL-Abfrage, sondern in der IF-Abfrage darüber!!!
Und du bist sicher das du PHP kannst? :lol:

Er beginnt die Abfrage mit " am Anfang als String, also muss auch jedes ihm String vorkommende " maskiert werden ( " )
Würde mich wundern wenn der Parser da so akzeptieren würde :roll:
-- Die doppelten Anführungsstriche Bedeuten für PHP, dass es dort den Inhalt der Variablen einfügen soll ;;; man hätte sie warscheinlich auch weglassen können aber es geht auch so! -Denn wenn die Variablen ersetzt sind, sieht der MYSQL-Parser die Striche garnicht mehr, sondern den Variableninhalt! ---Mit einer Maskierung oder einfachen Anführunsstrichen würde ich dann in der Datenbank nicht den WERT der Variable stehen haben, sondern schlicht den NAMEN der Variable! ...

IM ÜBRIGEN beweist die Frage, ob ich überhaupt PHP kann deine Dummheit! .... Denn dieser Abschnitt der Abfrage ist reines MySQL und hat bis auf das Variablenersetzen nichts mit PHP zu tun! ...--- aber du denkst sicherlich, dass die If-Abfragen darüber korrekt sind....

Den Rest denke ich mir lieber nur --> Währe zu persönlich...
Zuletzt geändert von Jojoponn139 am 04.12.2006 15:17, insgesamt 1-mal geändert.
Jojoponn139
phpBB-de.org
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

Beitrag von langeweile »

ich muss dir zustimmen, es geht
Jojoponn139
Mitglied
Beiträge: 133
Registriert: 05.08.2006 01:20
Wohnort: Berlin
Kontaktdaten:

Beitrag von Jojoponn139 »

DANKE! --->>> Tja also wer kann hier gleich KEIN PHP???
Würde mich wundern wenn der Parser da so akzeptieren würde
TJA fanrpg oder wie du heißt ::: dann wundere dich mal!
Jojoponn139
phpBB-de.org
Antworten

Zurück zu „Coding & Technik“