MySQL Query funzt ned
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
beitrag
benutzername
email
fehler
fehlermeldung
funktion
gel
insert
irgend
lag
notebook
parameter
pawort
register
syntax
test
variable
version
vielen dank
-
Hallo, ich habe folgendes Problem:
Ich habe diese Funktion geschrieben:
function register($array)
{
$sql = "INSERT INTO user
(user, passwort, email, visible, ".$array['system'].")
VALUES
('".$array['Benutzername']."', '".md5($array['Passwort'])."', '".$array['eMail-Adresse']."',
'".$array['visible']."', '".$array['referrer']."')";
$result = mysql_query($sql) or die(mysql_error());
}
Der Query sieht so aus:
INSERT INTO user (user, passwort, email, visible, notebook ) VALUES ('test', '098f6bcd4621d373cade4e832627b4f6', 'test', '1', 'test.htm')
Das funktioniert nicht und es erscheint folgender Fehler:
Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen (diese kann f?r verschiedene Server-Versionen unterschiedlich sein) bei 'document.write(win <- ab da ist es abgeschnitten
Dieser Code ruft eine Seite auf, von der die Funktion gestartet wird:
<form action="registrieren.php" method="post" name="reg" onSubmit="return pruefe(1)">
<table cols="2">
<tr>
<td>Benutzername:</td>
<td><input type="text" name="Benutzername" width="100px"></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input type="password" name="Passwort" width="100px"></td>
</tr>
<tr>
<td>eMail-Adresse:</td>
<td><input type="text" name="eMail-Adresse" width="100px"></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2">Soll Deine eMail-Adresse angezeigt werden?</td>
</tr>
<tr>
<td colspan="2">
<input type="radio" name="visible" checked="checked" value="1">Ja
<input type="radio" name="visible" value="0">Nein</td>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td colspan="2"><center><b>System</b></center></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
<script type="text/javascript">document.write(window.name)</script>
:</td>
<td><input type="text" name="referrer" width="100px"></td>
</tr>
<tr>
<td><input type="hidden" name="system" value="
<script type='text/javascript'>document.write(window.name)</script>
"</td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="submit2" value="registrieren"></center></td>
</tr>
</table>
So wird die Funktion dann letztendlich gestartet:
register($_POST);
Hat jemand eine Idee, wo der Fehler liegt, oder wie ich etwas verbessern kann? Vielen Dank im Voraus.
Beitrag ge?ndert am 1.05.2006 19:44 von ku-shi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ganz klar der fehler:
bei <td><input type="hidden" name="system" value="
<script type='text/javascript'>document.write(window.name)</script>
ist das java script unter "" wodurch das javascript als text angenommen wird und nicht als javascript...die variable system enth?lt folgich nicht das ergenis der javascript funktion sondern: <script type='text/javascript'>document.write(window.name)</script>
und das kann mysql nat?rlich nicht verarbeiten
achja noch als edit:
dir fehlt auch noch die abschluss > beim input tag:
<input type="hidden" name="system" value="
<script type='text/javascript'>document.write(window.name)</script>
">
wie der richtige syntax geht wei? ich leider nicht, da ich nicht viel mit javascript arbeite...
musst rum probieren oder warten das jemand anderer noch postet
mfg
Beitrag ge?ndert am 1.05.2006 19:58 von drame
Beitrag ge?ndert am 1.05.2006 20:03 von drame -
Das Problem mit der Mysql-Anfrage entsteht wahrscheinlich durch die Anf?hrungszeichen. Du solltest zus?tzlich die Funktion mysql_escape_string() verwenden.
Hat jemand eine Idee, wo der Fehler liegt, oder wie ich etwas verbessern kann?
Es w?re sch?ner und ?bersichtlicher, wenn du OHNE Tabelle designen w?rdest. Wof?r gibt es denn CSS ? UND: Center ist veraltet. (http://de.selfhtml.org/navigation/sidebars/html.htm)
#### BACK TO THE ROOT(S) ####
Wie w?re es au?erdem mit der Verwendung von <label></label> ?
p.a.:
<label for="yes">Ja</label><input type="radio" name="visible" id="yes">
<label for="no">Nein</label><input type="radio" name="visible" id="no"> -
Also das JavaScript funktioniert schon.
In meinem Code ist das das 'Notebook', das dadurch ausgegeben wird.
Es bringt aber eine Fehlermeldung, die trotzdem irgend etwas damit zu tun zu haben scheint.
Ich verstehe nicht, dass es einerseits funktioniert, andererseits aber Fehlermeldungen verursacht.
h?ttet Ihr sonst irgend eine Idee, wie man eine Variable aus JavaScript in eine f?r PHP geeignete umwandelt? Das w?rde mein Problem ja dann l?sen. -
Ich habe es jetzt gel?st und zwar so:
Ich habe die Variable "system" einfach per JS an die URL angeh?ngt, mit der ich das Popup ?ffne, also
window.open('register.php?system='+system, 'Register', parameter);
und dann per PHP mit "$_GET['system']" ausgelesen. Jetzt funktioniert es prima, es lag also doch am JS in Anf?hrungsstricheln. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage