mySQL = Keine Verbindung zu Datenbank möglich

  • #1
G

groovesurfer

Bekanntes Mitglied
Themenersteller
Dabei seit
28.02.2003
Beiträge
352
Reaktionspunkte
0
Hi Leute,

ich möchte mich an meine DB anmelden. Bekomme jedoch immer eine Fehlermeldung.

Code:
<!doctype html public -//W3C//DTD HTML 4.0 //EN>
<html><body>
<?php
$benutzer=$http_post_vars['benutzer'];
$pass=$http_post_vars['pass'];
$db=mysql_connect(localhost,root,)
mysql_select_db(datenbank);
        usw...

Die Fehlermeldung lautet:

Parse error: parse error, unexpected T_STRING in d:\htdocs\check.php on line 7

In Line 7 steht: mysql_select_db(datenbank);

Was mache ich denn falsch?

Grüsse
groovesurfer
 
  • #2
  • #3
Ach ne. So was doofes.

Vielen Dank.

Grüsse
groovesurfer
 
  • #4
Nun habe ich aber ein anderes Problem.

Hier mal der gesamte code:

Code:
<!doctype html public -//W3C//DTD HTML 4.0 //EN>
<html><body>
<?php
$benutzer=$http_post_vars['benutzer'];
$pass=$http_post_vars['pass'];
$db=mysql_connect(localhost,root,);
mysql_select_db(datenbank);
$anfrage=SELECT * FROM login WHERE benutzer LIKE->;
$anfrage.=$benutzer;
$anfrage.=';
$ergebnis=mysql_query($anfrage);
$anz=mysql_num_rows($ergebnis);
if($anz==1){
    $zeile=mysql_fetch_row($ergebnis);
    if($pass==$zeile[1]){
        print(<b>Login korrekt</b>);
        print(<p>Klicken Sie hier zum Zugang:</p>);
        print(<a href='test.htm'>Bereich</a>);
}
else{
    print(Benutzername korrekt, Passwort nicht korrekt!);
    print(<a href='login.htm'>Noch ein Versuch...</a>);
}
}
else{
    print(Benutzername nicht vorhanden!<br>);
    print(<a href='login.htm'>Noch ein Versuch</a>);
}
mysql_close($db);
?>
</body>
</html>

Nun bekomme ich folgende Fehlermeldung:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in d:\htdocs\check.php on line 18

In line 18 steht:

print(<a href='test.htm'>Bereich</a>);

Wo liegt denn hier der Fehler?


Grüsse
groovesurfer
 
  • #5
Schau mal hier:

Code:
$anfrage.=$benutzer;

Kann es sein das da jemand ein geklaut hat? ;)
Sollte nämlich so heißen.

Code:
$anfrage.=$benutzer;
 
  • #6
[LEHRER]
P.S. Wenn du solche Fehlermeldungen bekommst solltest du immer mal im Code DARÜBER schauen ob du nicht irgendwo ein ; oder ein oder ein-> vergessen hast. Das ist meistens schon die Lösung eines solchen Problems. Eine geöffnete aber nicht geschlossene (oder umgekehrt) Klammer kann das auch bewirken. Also bitte immer darauf achten das das was man öffnet auch wieder geschlossen wird.
[/LEHRER]
 
  • #7
print(<a href='test.htm'>Bereich</a>);
Versuch mal das:
Code:
print(<a href=\test.htm\>Bereich</a>);
$anfrage.=$benutzer;
IMHO eher weniger.
Code:
$anfrage.=$benutzer;
sollte richtig sein, da die Variable $benutzer angehängt werden soll.
Nachtrag: Der nette Hinweis, dass Username richtig, aber Passwort falsch ist, ist ein erhebliches Sicherheitsrisiko, da ein möglicher Angreifer so zumindest weiss, was falsch ist.

Eddie
 
  • #8
ok. Habe ich schon wieder übersehen. so was. Werde das nächste mal mit der Lupe an die Sache ran gehen ;)

@ Eddi = Du hast recht, dass nehme ich wohl besser raus.

@ all = thanx

Jetzt funktioniert es endlich...

grüsse
groovesurfer
 
  • #9
*gg* so und jetzt bin ich gespannt was es war *gg* Sagst du uns das auch noch mal?
 
  • #10
Eddie schrieb:
$anfrage.=$benutzer;
IMHO eher weniger.
Code:
$anfrage.=$benutzer;

Ähm ob mit oder ohne ist so ziemlich egal da alles was zwischen geparst wird. Im Gegensatz zu Zeichenketten die zwischen-> stehen.

Ebenso ist diese Änderung vollkommen unnötig da sie an der FUNKTION nichts verändert sondern nur eine andere Schreibweise des Codes darstellt. Allerdings WENN ich ein Parsen einer Zeichenkette mit einem einleite, dann sollte ich diese Einleitung auch wieder mit einem schliessen.

Eddie schrieb:
print(<a href='test.htm'>Bereich</a>);
Versuch mal das:
Code:
print(<a href=\test.htm\>Bereich</a>);
 
  • #11
Es war das-> bei $anfrage.=$benutzer;
Ich sollte halt doch mal die Augen auf machen. :eek:

greetz
 
  • #12
groovesurfer schrieb:
Es war das-> bei $anfrage.=$benutzer;
Ich sollte halt doch mal die Augen auf machen. :eek:

greetz

Ähm du meines es war das . Vorsicht bitte bei der Auswahl der Quotes. Denn es ist ein Unterschied zwischen Singel und Duoble Quotes. Sie bewirken in PHP ganz unterschiedliche Reaktionen. Wer es nicht glauben will der soll mal folgendes Programm abspeichern und durch den Parser jagen.

Code:
<?php 
  $s1 =->zeichenkette 1'; 
  $s2 =->zeichenkette 2 $s1'; 
  $s3 = zeichenkette 3 $s1; 
  $s4 = zeichenkette 4 $s2; 
  $s5 =->zeichenkette 5'.$s1; 
  $s6 = zeichenkette 6.$s1; 
  echo $s1<br>\n$s2<br>\n$s3<br>\n$s4<br>\n$s5<br>\n$s6; 
?>
 
  • #13
Hi

Der Unterschied zwischen
$anfrage.=$benutzer;
und
$anfrage.=$benutzer;
ist ein erheblicher.
Oben muss er den String nach Variablennamen parsen während er unten direkt damit arbeiten kann. Das ist ein Geschwindigkeitsunterschied der zwar hier minimal ist, sich aber summieren kann.
Diesen Unterschied hat man übrigens auch bei->test' und test. Letzteres muss er immer parsen.

Gruß, Michael
 
Thema:

mySQL = Keine Verbindung zu Datenbank möglich

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben