Doppelte Anführungszeichen dürften helfen:
$query = 'SELECT *
FROM tb_var_user
WHERE LOWER(benutzername) = "' . mysql_real_escape_string($benutzername) . '"
AND passwort = "' . mysql_real_escape_string( $passwort ) . '"
AND status = "ACTIVE" ';
Hallo Leute!
Mein Script (Auszug) basiert auf dem Tutorial von Rizzo http://www.traum-projekt.com/forum/7...ach-profi.html an:
und liefert leider folgendes Ergebnis:PHP-Code:// Wenn das Formular abgeschickt wurde
if (isset( $_POST[login] ))
{
// Maskierende Slashes aus POST Array entfernen
if (get_magic_quotes_gpc())
{
$_POST = array_map( 'stripslashes', $_POST );
}
// Benutzereingabe umladen, von Leerzeichen befreien und
$benutzername = strtolower( trim( $_POST[benutzer] ) );
$passwort = md5( trim( $_POST[passwort] ) );
echo $benutzername . '<br>';
// Benutzereingabe mit User in der Datenbank vergleichen
$Verbindungskennung = db_connect();
$query = 'SELECT *
FROM tb_var_user
WHERE LOWER(benutzername) = ' . mysql_real_escape_string($benutzername) . '
AND passwort = ' . mysql_real_escape_string( $passwort ) . '
AND status = ACTIVE ';
$ergebnis = mysql_query($query, $Verbindungskennung);
echo mysql_error() . '<br>';
// Stimmen die Benutzereingaben �berein, wurde 1 Datensatz gefunden
if (mysql_num_rows($ergebnis) == 1)
{
// Abfrageergebnis fetchen
$usercookie = mysql_fetch_assoc( $ergebnis );
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@polizei.de AND passwort = d41d8cd98f00b204e9800998ecf8427e AND status =' at line 3
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\server_root\scripted12a.php(123) : eval()'d code on line 75Habe jetzt schon ziemlich lange dran geknobelt, es will mir aber einfach nicht aufgehen, wo mein fehler liegt. Vielleicht kann mir von euch einer einen tipp geben - wär' nett
Liebe Grüße,
Basti
live long and prosper...
Doppelte Anführungszeichen dürften helfen:
$query = 'SELECT *
FROM tb_var_user
WHERE LOWER(benutzername) = "' . mysql_real_escape_string($benutzername) . '"
AND passwort = "' . mysql_real_escape_string( $passwort ) . '"
AND status = "ACTIVE" ';
Strings in einem Statement müssen in Hochkomma gepackt werden.
Falls ACTIVE eine numerische Konstante sein soll, müssen die Hochkomma natürlich weg, aber der String muß, wie bei einem Funktionsaufruf, unterbrochen werden.Code:$query = 'SELECT * FROM tb_var_user WHERE LOWER(benutzername) = \'' . mysql_real_escape_string($benutzername) . '\' AND passwort = \'' . mysql_real_escape_string( $passwort ) . '\' AND status = \'ACTIVE\' ';
EDITAnsonsten hat es schon seinen Sinn, wieso ich in Statements Doppel-Quotes benutze. So kann man dann nämlich schön übersichtlich Single-Quotes einsetzen, ohne escapen zu müssen. Falls es Probleme mit Strings und den unterschiedlichen Arten Anführungszeichen gibt, lohnt vielleicht ein Blick auf dieses Tutorial.
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
Hallo Andreas!!
Vielen Dank für deine prompte Antwort- jetzt läuft mein script auch. Habe auch mal dein Quotes-Tut aufgemacht - sehr schön, einiges hatte ich dazu auch schon mal gehört. Aber wenn ich dich zu dem Thema trotztdem grade mal was fragen darf:
ich teste das script gerade, in dem ich den code jeweils in eine string-variable packe, und hinterher mit eval() aufrufe [Hintergrund: ich will das script, wenn es denn fehlerfrei läuft, in eine DB packen].
Ich frage mich eben, wie php text behandelt, den es aus der Datenbank liest. Wird der Wert (Text) der Variablen dann mit DQ's oder SQ's zugewiesen?
Die Werte der string-variablen werden momentan im Testbetrieb mit DQ's zugewiesen - kann ich später einfach das, was zwischen den beiden DQ's steht in eine DB packen, aufrufen und in eine weiter string-variable legen? Oder müsste ich den Code vorher anders 'quoten' damit das funktionier?
Basti
live long and prosper...
Hallo!
Ich muss hier wieder mal was anhängen, ich seh es einfach nicht. Folgender HTML-Code ergibt das gewünschte Ergebnis, wenn ich ihn per php ausgebe
hat der Submit-Button keine Zieladresse, das Formular wird nicht abgeschickt.PHP-Code:echo "
<div style='width: 495px; '>
<form method='post' style='float: left; ' action='upload.php'>
<table width='490' border='0'>
<tr><label style='font-family: Calibri, Arial, Times New Roman; font-size: 9pt; color: #666666; '>die mit * gekennzeichneten Felder sind Pflichfelder</label></tr>
<tr><td width='130'><label style='font-family: Calibri, Arial, Times New Roman; font-size: 9pt; color: #666666; '>zugriffsrecht*</label></td><td><input name='zugriffsrecht' type='text' style='margin: 6px 10px 6px 6px; height: 20px; width: 50px; top: 3px; left: 5px; position: relative; font-size: 8pt; ' size='20' /><label style='font-family: Calibri, Arial, Times New Roman; font-size: 8pt; color: #CC3333; '>es können max. zugriffrechte der eigenen stufe vergeben werden</label></td></tr>
<tr><td colspan='2'> <label style='font-family: Calibri, Arial, Times New Roman; font-size: 8pt; color: #999999; '>einstellige Integer, mit den Werten 0 (admin), 1 (supervisor), 2 (member), 3 (unsigned).</label></td></tr>
<tr><td><label style='font-family: Calibri, Arial, Times New Roman; font-size: 9pt; color: #666666; '>herstellerlink</label></td><td><input name='ext_link' type='text' style='margin: 6px 10px 6px 6px; height: 20px; width: 320px; top: 3px; left: 5px; position: relative; font-size: 8pt; ' size='20'/></td></tr>
<tr><td colspan='2'> <label style='font-family: Calibri, Arial, Times New Roman; font-size: 8pt; color: #999999; '>longtext, ohne beschränkung</label></td></tr>
<tr><td></td><td><input name='upload' type='submit' style='margin: 6px 10px 6px 6px; height: 20px; width: 70px; top: 3px; left: 10px; background: none; color: #CC0000; font-size: 10px; position: relative; ' value='hochladen' ></td></tr>
</table>
</form>
</div>";
In meinem Editor kann ich keine Unterbrechung des Strings entdecken, aber vielleicht sieht einer der Pro's was.
LG Basti
live long and prosper...
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)