Ergebnis 1 bis 10 von 10

Thema: MySQL Fehler oder wie?

  1. #1
    Teeny
    Registriert seit
    22.12.2006
    Ort
    Frieburg
    Beiträge
    23
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard MySQL Fehler oder wie?

    Hallo Leute,

    habe morz das Prob.
    Möchte einen Shop basteln und bekomme immer wieder beim reinlegen eines Artikels eine Fehlermeldung. Habe schon einiges probiert aber komme einfach nicht weiter.

    Schaut mal bitte auf:
    http://shadowroot.sh.funpic.de/PHP03/
    Kennung und Passwort sind beide Male "admin".

    Die Files findet Ihr unter:
    http://shadowroot.sh.funpic.de/php03.zip

    Hoffe Ihr findet das Problem weil ich bin einfach nur verzweifelt.
    Danke schon ein Mal im vorraus.

    Mfg Shadow13Nova
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in) Avatar von d4f
    Registriert seit
    22.04.2007
    Ort
    Luxemburg
    Beiträge
    1.493
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    Setz die Tabellen-/Feld-Namen im MySQL-Query immer in Backtick damit diese auch als solche erkannt werden.

    SCHLECHT:
    Code:
    SELECT tabelle.* FROM tabelle WHERE tabelle.id = 5
    RICHTIG:
    Code:
    SELECT `tabelle`.* FROM `tabelle` WHERE `tabelle`.`id` = '5'
    Wir sind alle ein BOFH:

  3. #3
    Meister(in) Avatar von Afrael
    Registriert seit
    26.04.2009
    Ort
    NRW
    Alter
    26
    Beiträge
    313
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    Ich meine, irgendwo gelesen zu haben, dass man die 5 nicht in Hochkommata zu nehmen bräuchte (bzw nicht soll), wenn das Feld ein Zahlentyp ist. Stimmt das?
    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  4. #4
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: MySQL Fehler oder wie?

    Wenn ich warenkorb.php aufrufe kommt eine Fehlermeldung. Wenn ich in die Datei schaue ist mir vermutlich auch klar wieso. Das Statement solltest Du so schreiben:

    Code:
    $anzahl = "SELECT count(*) as anzahl FROM warenkorb WHERE kundennummer=".$nummer." AND artikel-id=".$id;
    Und natürlich solltest Du vorher prüfen, ob in $nummer auch wirklich etwas steht. Wenn nicht wäre hier sehr gut erklärbar wieso der Fehler kommt.

    Außerdem würde ich Spaltennamen mit Bindestrich und anderen Sonderzeichen vermeiden, also nicht "artikel-id" schreibe.

    @Afrael: ja, hast recht. Aber auch ich schreibe das immer in Anführungszeichen. Erleichtert das Lesen etwas und MySQL hat damit scheinbar ohnehin kein Problem.

  5. #5
    Meister(in) Avatar von Afrael
    Registriert seit
    26.04.2009
    Ort
    NRW
    Alter
    26
    Beiträge
    313
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    @shadow13nova
    Ähm... da sind jetzt noch ein paar erhebliche logische bzw. Sicherheitsfehler drin. Machts dir was aus, wenn ich die hier anspreche (dann haben andere evtl auch was davon), oder soll ich dir lieber eine PM schreiben?
    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  6. #6
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    Stichwort: SQL Injection.
    Kannst dich recht einfach schützen.

  7. #7
    Meister(in) Avatar von Afrael
    Registriert seit
    26.04.2009
    Ort
    NRW
    Alter
    26
    Beiträge
    313
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    Du scheinst register_globals zu benutzen, d.h., dass Variablen, die über die URL übergeben werden, direkt in deinem Script eingesetzt werden. Das sollte man niemals nie machen. Jemand könnte über die URL deine internen Variablen überschreiben und somit dein Script ordentlich durcheinanderbringen. Benutz stattdessen
    ini_set("register_globals","Off");
    $meldung=$_GET['meldung'];
    usw.

    Außerdem solltest du genau sowas
    PHP-Code:
        if (isset($meldung))
        {
          print 
    "<font color='red'>Fehler: $meldung</font>";
        } 
    nicht machen. Informiere dich mal über XSS. Ich schlage vor, dass du jeder Fehlermeldung eine Nummer zuweist und diese über GET-Parameter übergibst. Anschließend pickst du anhand des Errorcodes die Meldung aus einem Array.

    In bestellung.php:
    PHP-Code:
    $sql "DELETE FROM warenkorb";
    mysql_query($sql) or die (mysql_error()); 
    Du willst doch sicherlich nicht, dass alle Einträge in allen Warenkörben gelöscht werden, oder?
    Außerdem dürfen Feldnamen, meine ich, keine Bindestriche enthalten, nimm lieber Unterstriche.
    "INSERT INTO bestellungen (bestellid,artikelid,kundennummer,anzahl) SELECT artikelid, kundennummer FROM warenkorb WHERE warenkorb.kundennummer=".$_SESSION['nummer']"
    Wie soll das gehen, was auch immer das soll? o.O
    warenkorb.php
    PHP-Code:
    $sql "select name, preis, anzahl from artikel, warenkorb where warenkorb.kundennummer=".$_SESSION['nummer']." AND artikel.id=warenkorb.artikel-id"
    wird, meine ich, so nicht funktionieren. Was du suchst, ist ein INNER JOIN.
    Ich glaube, bis auf ein paar kleine HTML-Details wars das.
    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  8. #8
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    @Koko
    Feldnamen dürfen Bindestriche haben, allerdings müssen sie dann in ` ` gesetzt werden.

    @nova
    Du solltest nach Möglichkeit statt " " lieber ' ' verwenden. Ist schneller bei der Auswertung. Schau dir mal bei php.net an, was bei " " alles für ein Unsinn gemacht werden kann, da willst du lieber was einfaches haben.
    Außerdem ist <font> veraltet. Du solltest <span> mit CSS-Vorgaben verwenden. Also statt <font color='red'> (<-- Da übrigens müssen " ", weil es HTML und nicht PHP ist) besser <span style="color: red;">. In (X)HTML Strict und XHTML 1.1 ist <font> sogar verboten.

    Viele liebe Grüße
    The User

  9. #9
    Teeny
    Themenstarter

    Registriert seit
    22.12.2006
    Ort
    Frieburg
    Beiträge
    23
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    @all Vielen Dank für die Antworten.
    Ihr könnt hier auch über Sicherheitsmängel aufmerksam machen.
    Soll aber ein ganz einfacher Warenkorb werden. Brauch keine Sicherheitsfeatures! Will nur das dieses Teil funktioniert^^.

    Mfg Shadow13Nova

  10. #10
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL Fehler oder wie?

    Also das Sicherheitsfeature, dass es nicht möglich ist, alles zu löschen, halte ich doch für angemessen.

Ähnliche Themen

  1. MySQL-Update fehler
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 20.08.2008, 18:49
  2. MySQL-Befehl Fehler
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 30.06.2008, 16:57
  3. MySQL Syntax Fehler
    Von ZTa im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 18.09.2006, 00:09
  4. mysql fehler
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 22.05.2005, 23:08
  5. Fehler in mysql Datenbank
    Von Ricken im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 12.08.2004, 22:19

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •