DFBL-Benjamin Geschrieben 22. November 2002 Autor Geschrieben 22. November 2002 folgende Fehlermeldung erhalte ich jetzt: Parse error: parse error, unexpected T_VARIABLE in C:\FoxServ\www\php_dateien\datenbank\05Formular\eintragen.php on line 22 [/PHP] so habe ich das jetzt in meinem Programm stehen: [PHP] $sql = "insert into adresse(fname, sname, email) "; $sql .= "Values ("$HTTP_GET_VARS['fname']", "$HTTP_GET_VARS['sname']", "$HTTP_GET_VARS['email']")"; habe ich das jetzt so richtig geschrieben? Zitieren
Jaraz Geschrieben 22. November 2002 Geschrieben 22. November 2002 Hi, ich mach das immer so: $sql .= "Values ('".$HTTP_GET_VARS["fname"]."', '".$HTTP_GET_VARS["sname"]."', '".$HTTP_GET_VARS["email"]."')"; Aber die einfachen und doppelten Anführungsstriche kannst du beliebig einsetzen. Es muss halt nur nachher ein konsistenter String rauskommen. Gruß Jaraz PS: Jetzt weiss ich wieder, warum ich PreparedStatements in Java so Liebe. Zitieren
DFBL-Benjamin Geschrieben 22. November 2002 Autor Geschrieben 22. November 2002 ein Wunder es geht! danke Jarez! schon wieder eine Frage: wenn ich Datensätze lösche, dann fängt er trotzdem z. B. Stand ist 40 und ich habe die letzten 10 Datensätze gelöscht, warum fängt er dann beim 41 an und nicht bei 30? Zitieren
DFBL-Benjamin Geschrieben 22. November 2002 Autor Geschrieben 22. November 2002 ein Wunder es geht! danke Jarez! schon wieder eine Frage: wenn ich Datensätze lösche, dann fängt er trotzdem z. B. Stand ist 40 und ich habe die letzten 10 Datensätze gelöscht, warum fängt er dann beim 41 an und nicht bei 30? Zitieren
Jaraz Geschrieben 22. November 2002 Geschrieben 22. November 2002 Originally posted by DFBL-Benjamin danke Jarez! Auch wenn es nur ein Nick ist, ich heisse Jaraz. Originally posted by DFBL-Benjamin schon wieder eine Frage: wenn ich Datensätze lösche, dann fängt er trotzdem z. B. Stand ist 40 und ich habe die letzten 10 Datensätze gelöscht, warum fängt er dann beim 41 an und nicht bei 30? Weil das kein Zaehler ist, sondern ein Wert zur eindeutigen Identifizierung eines Datensatzes. Es kann ja sein, das du in anderen Tabellen drauf verzweigst. Wenn du dann löscht, besteht die Beziehung nicht mehr. Normalerweise sollten sowas zwar nicht passieren aber noch viel schlimmer ist es, wenn du nun die ID nochmal vergibst. Dann wird aus Babybrei auf einmal Domestos und das wollen wir doch wohl nicht. Gruß Jaraz Zitieren
DFBL-Benjamin Geschrieben 22. November 2002 Autor Geschrieben 22. November 2002 sorry, das ich dich falsch geschrieben habe! ist klar! kann man dann später z. B. wenn die Zeile gelöscht wurde, nicht mehr verwendet werden? wie kann ich z. B auf ein Feld zugreifen? Beispiel: ID Interpret Min 1 andere Tabelle z.B Interpreten da möchte ich die Nr. 5 haben 5:44 wie muss ich den Zugriff programmieren, das dann da die Zahl des Interpreten drinsteht? die Nr. ist gleich der ID in der Tabelle Interpret! Zitieren
Chaosmaker Geschrieben 23. November 2002 Geschrieben 23. November 2002 Wenn Du beim INSERT mit id='$zahl' dem Feld einen Wert gibst, sollte er das i.d.R. auch akzeptieren, sofern die entsprechende ID nicht schon vergeben ist. Zitieren
DFBL-Benjamin Geschrieben 24. November 2002 Autor Geschrieben 24. November 2002 wenn ich es jetzt folgender Maßen eingebe, dann bringt er mir einen Fehler: insert into urlaub(id_mitarbeiter, Resturlaub) values(???, 30); was muss ich da bei den Fragezeichen schreiben, wenn die ID, die ich benötige in der Tabelle "mitarbeiter" drin steht und der 2 Mitarbeiter gemeint ist. in der Tabelle Mitarbeiter heißt die Spalte folgender Maßen: ID_mitarbeiter! ich hoffe, mir kann jemand helfen? Zitieren
DFBL-Benjamin Geschrieben 26. November 2002 Autor Geschrieben 26. November 2002 kann mir niemand weiterhelfen? Zitieren
DFBL-Benjamin Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 schon wieder so ein Problem mit der Eingabe der Daten und dann Weiterverarbeitung, das soll dann so wie ein Login überprüfung sein: login.php <html> <head> <title>Termin- und Urlaubsplaner</title> <meta name="author" content="Benjamin Gaus_2"> <meta name="generator" content="Ulli Meybohms HTML EDITOR"> </head> <body bgcolor="#FFFFFF" link="#0000FF" alink="#0000FF" vlink="#0000FF"> <font size="2" color = "#0040FF"> <h2 align="center">Login-Formular</h2> <br> <form action=verarbeiten.php method=get target=> <table border=0 align=center width=20%> <tr> <td width=50%><font size=4 color=#0040FF>Benutzername: </font></td> <td width=50%><input type=Text name=benutzername size=10 maxlength=10></td> </tr> <tr> <td width=50%><font size=4 color = #0040FF>Passwort:</font></td> <td width=50%><input type=Password name=passwort size=10 maxlength=10></td> </tr> </table> <table border=0 align=center width=20%> <tr> <td align=center width=50%><input type=Submit name=login></td> <td align=center width=50%><input type=reset></td> </tr> </table> </form> </font> </body> </html> [/PHP] verarbeiten.php [PHP] <?php /* * Ueberpruefen ob die Zugangsdaten korrekt waren * */ // Zugangsdaten zur Datenbank $conn = mysql_connect("localhost","benjamin","********"); // Wechsel der Datenbank mysql_select_db(projekt_bkik); // Mysql-Befehl zum Ueberpruefen der Zugangsdaten mit den Datenbank-Daten $sql = "select * from mitarbeiter where "; [B] $sql .= "(((id = '".$HTTP_GET_VARS['benutzername']"') or (name = '".$HTTP_GET_VARS['benutzername']."')) "; $sql .= "and (passwort = '".$HTTP_GET_VARS['passwort']."'))";[/B] $result = mysql_query($sql, $conn); ?> und es kommt folgende Fehlermeldung Zeile 15 ist die, die Schwarz hervorgehoben ist! Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\FoxServ\www\intern\projekt_hp\login\verarbeiten.php on line 15 was habe ich jetzt falsch gemacht? gibt es irgendwo eine Fehlerbeschreibung bei Mysql bzw. PHP-Fehler? Zitieren
Wolle Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Originally posted by DFBL-Benjamin was habe ich jetzt falsch gemacht? Hinter dem ersten $HTTP_GET_VARS['benutzername'] fehlt der Punkt... Zitieren
DFBL-Benjamin Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 habs auch schon herausgefunden, wo ich mir das nochmal näher angeschaut habe! jetzt habe ich das Programm verarbeiten.php erweitert $result = mysql_query($sql, $conn); if($result) { echo "eingelogt!"; } else { echo "Ihre eingegebenen Daten stimmen nicht überein mit den Daten in der Datenbank!"; } [/PHP] die Funktion mysql_query soll mir true zurückliefern, macht es aber nicht. Weil bei select-Anweisungen zeigt der Zeiger auf die Ergebnisliste und gibt mir dann nicht wie ich das gerne hätte true zurück so wie bei insert, update oder delete! was könnte ich dann nehmen, das ich true erhalte? oder ist die Methode, so wie ich das machen will zuumständlich? wie löst ihr das bei einem Login-Formular? Zitieren
tauron Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Moin ! mit dem Befehl $anzahl = mysql_num_rows($result) kriegst Du die Anzahl der gefundenen Datensätze zurück, bei 0 ist es halt nicht vorhanden Ich mach das ähnlich, da meine Passwörter verschlüsselt gespeichert werden, lese ich das Passwort zu dem User aus der Datenbank in eine Variable und vergleiche die dann mit dem eingegebenem (das dann natürlich vorher auf die gleiche Weise verschlüsselt wird). gruß Christian Zitieren
DFBL-Benjamin Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 habe das jetzt so gemacht, wie ich das vermute, das du das so meinst! und dann kommt folgende Fehlermeldung: Parse error: parse error, unexpected T_IF in C:\FoxServ\www\intern\projekt_hp\login\verarbeiten.php on line 21 verarbeiten.php <?php /* * Ueberpruefen ob die Zugangsdaten korrekt waren * */ // Zugangsdaten zur Datenbank $conn = mysql_connect("localhost","benjamin","*******"); // Wechsel der Datenbank mysql_select_db(projekt_bkik); // Mysql-Befehl zum Ueberpruefen der Zugangsdaten mit den Datenbank-Daten $sql = "select * from mitarbeiter where "; $sql .= "id = ".$HTTP_POST_VARS['benutzername']." or name = ".$HTTP_POST_VARS['benutzername']." "; $sql .= "and passwort = ".$HTTP_POST_VARS['passwort']." "; $result = mysql_query($sql, $conn); $anzahl = mysql_num_rows($result) if($anzahl) { echo "eingelogt!"; } else { echo "Ihre eingegebenen Daten stimmen nicht überein mit den Daten in der Datenbank!"; } ?> [/PHP] was habe ich jetzt da falsch programmiert? Zitieren
tauron Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 $result = mysql_query($sql, $conn); $anzahl = mysql_num_rows($result); if($anzahl) Da fehlt ein Semikolon am Ende von der mysql_num_rows Zeile. gruß Christian Zitieren
DFBL-Benjamin Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 dafür kommt jetzt der Fehler: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\intern\projekt_hp\login\verarbeiten.php on line 19 was hat der schon wieder zu bedeuten! und dann kommt noch als Ausgabe, dass die eingegenen Daten die falschen seien! Zitieren
tauron Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 Das heisst, daß die SQL-Anweisung warscheinlich fehlerhaft ist und nicht korrekt ausgeführt wurde, und somit auch kein Ergebnis in $result geschrieben wurde. Daher kommt die Fehlermeldung bei num_rows ($result ist ja leer) und die Ausgabe mit den falschen Daten (als Folge ist $anzahl ja auch leer). Hab auch Deinen Fehler denk ich gefunden: wenn Du unter SQL Strings vergleichst, müssen diese in Gänsefüßchen/Hochkomma stehen, also müsste das ganze dann so ausschauen: $sql .= "id = '".$HTTP_POST_VARS['benutzername']."' or name = '".$HTTP_POST_VARS['benutzername']."' "; $sql .= "and passwort = '".$HTTP_POST_VARS['passwort']."' "; lass Dir in so einem Fall am besten immer einmal den kompletten SQL-String per Echo ausgeben, dann kann man sehr gut sehen woran es liegt. Zitieren
DFBL-Benjamin Geschrieben 13. Dezember 2002 Autor Geschrieben 13. Dezember 2002 jetzt gehts! aber der große Hit ist es halt noch nicht! weil er sagt mir manchmal, wenn ich falsche Zugangsdaten eingebe, das ich trotzdem eingeloggt bin, aber das darf doch normalerweise nicht sein! was ist sicherer? eine Zugangszahl wie 100 oder der Name des Kontoinhabers? ich möchte die Sicherste Art nehmen! und dann sollte es wenn ich das schaffe mit SSL übertragen werden! Zitieren
DFBL-Benjamin Geschrieben 16. Dezember 2002 Autor Geschrieben 16. Dezember 2002 kann mir keiner Ratschläge erteilen zu meiner obiger Frage? Zitieren
HotkeyM Geschrieben 17. Dezember 2002 Geschrieben 17. Dezember 2002 Na sicherer ist denk ich mal, eine ID, die mit AUTO_INCREMENT erzeugt wurde. Außer du hast die Namensspalte UNIQUE gesetzt... Aber ich denke mal, dass es besser ist, die ID zu nehmen. The HotkeyM Zitieren
DFBL-Benjamin Geschrieben 17. Dezember 2002 Autor Geschrieben 17. Dezember 2002 muss das noch weiter testen mit den Zahlen, komme grad leider nicht dazu! kann ich z. B. auch einen Anfangswert bei ID=100 und dann soll das auto_increment sein, geht das überhaupt? oder muss ich immer bei 1 Anfangen? Zitieren
HotkeyM Geschrieben 17. Dezember 2002 Geschrieben 17. Dezember 2002 Soweit ich weiß, fängt das immer mit 1 an... Aber da gibts Trick 17c: PHP-Script, dass 100 Datensätze erstellt und gleich wieder löscht Danach bleibt AUTO_INCREMENT eigentlich auf 101 stehen (als nächste ID) The HotkeyM Zitieren
DFBL-Benjamin Geschrieben 18. Dezember 2002 Autor Geschrieben 18. Dezember 2002 mal schauen! es sollte schon sicher sein, deshalb muss ich das jetzt mehrmals ausprobieren, ob das auch alles so funktioniert wie ich das haben will! Zitieren
DFBL-Benjamin Geschrieben 18. Dezember 2002 Autor Geschrieben 18. Dezember 2002 ich habe jetzt herausgefunden, warum das nicht so genau ging mit dem Passwort! ich hatte nur 4 Zeichen, dann habe ich das Doppelte genommen und es ging dann auch nur, bei den Passwörtern sich einzuloggen! jetzt meine Frage. wie bekomme ich, wenn die Anmeldung OK war, auf die Hauptseite, den Namen, des USERs, der dann Einträge z. B. tätigen kann. in login.php werden die Daten eingetragen und in verarbeiten.php wird überprüft ob man eingeloggt wird oder nicht, dann wird man weitergeleitet (index.php), wenn man eingeloggt ist auf die Startseite meiner Projektarbeit. Meine Frage: Wie bekomme ich dann den Namen auf die andere Seite? wie kann ich das Lösen? das der Namen auf der Startseite dann steht? Zitieren
HotkeyM Geschrieben 18. Dezember 2002 Geschrieben 18. Dezember 2002 Warum speicherst du die daten nicht in ner session oder nem cookie? da kann man dann die daten immer wieder ausgeben... ich machs z.b. immer über sessions, registriere den datensatz über session_register("Datensatz") dann geht sowas... The HotkeyM Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.