Beiträge von cottton

    Also hast Du in tabelle ´datum´ eine fortlaufende ID und die Spalte ´geburtsdatum´ - ok.

    Wenn Du nun das Formular ausgibts, also dem Benutzer anzeigst, dann muss Dir (dem PHP script) klar sein, wer gerade dieses Formular vor sich hat.
    zB wenn der Benutzer eingeloggt ist, dann kennst Du (also das PHP script) die ID.
    Und anhand der ID kannst Du beim UPDATE das ´geburtsdatum´ dem richtigen Benutzer zuweisen.

    Du musst also bei einem UPDATE erstmal dafür sorgen, dass der Benutzer, der das Script/die Seite/das Formular aufruft, auch identifizierbar ist.

    Naja klar, Du musst bestimmen wo dieser neue Wert (das Datum) geändert werden soll.

    Du hast ja bestimmt mehr als nur das ´geburtsdatum´ in einer Zeile in der Datenbank.
    In der Regel nutzt man IDs, zB fortlaufene IDs (AUTO_INCREMENT).

    Somit heisst:
    $sql="UPDATE `datum` SET `geburtsdatum` = '".$datum."' WHERE ´id´ = ".$id."";

    in etwa: UPDATE db "datum" und SET (setze) ´geburtsdatum´ zu $datum WHERE (wo) ´id´ gleich $id

    Was steht da noch alles in der db in einer Zeile? Gibts eine ID ?

    Klammern wech, und WHERE mit rein =)

    PHP
    $sql="UPDATE `datum` SET `geburtsdatum` = '".$datum."' WHERE ´id´ = ".$id."";

    Und (sobald die Seite online erreichbar ist) denk an filtern des Benutzer-Inputs mit zB mysql_real_escape_string() in der query, und zb auch checkdate($_POST['monat'],$_POST['tag'],$_POST['jahr']).

    Hab auch gerade was gelernt :D
    => INSERT INTO `datum` (`geburtsdatum`) VALUES ('2001-09-30) == fuktioniert
    => INSERT INTO `datum` (`geburtsdatum`) VALUES ('2001-09-31') == funktioniert NICHT

    denn der Tag '2001-09-31' existiert nicht =)

    Zitat von http://dev.mysql.com/doc/refman/5.1/de/using-date.html


    Wenn Sie den SQL-Modus ALLOW_INVALID_DATES eingestellt haben, gestattet MySQL Ihnen die Speicherung von Datumswerten bei nur rudimentärer Überprüfung: MySQL verlangt lediglich, dass der Tag im Bereich von 1 bis 31 und der Monat im Bereich von 1 bis 12 liegt.


    'ALLOW_INVALID_DATES' ist wohl on default NICHT deaktiviert. Sql prüft also, ob der Tag existiert. Wenn nicht, dann werden 0000-00-00 gespeichert.
    Es wird auch eine Warning ausgegeben:

    Zitat


    1 row(s) affected, 1 warning(s): 1265 Data truncated for column 'geburtsdatum' at row 1


    Da es allerdings kein Fehler ist, wird die Query ausgeführt.

    Fazit: sogesehen eine schöne Sache. Denn Du bekommst nur echte Daten in die db. Nur muss jetzt entweder eine Daten-Prüfung per JS(im Browser vor Absenden)/PHP(nach Absenden und vor Sql Query --empfohlen) her.
    Könnte mir auch vorstellen, dass man Sql "vertraut" und einfach prüft, ob das DATE denn richtig gespeichert werden konnte.
    (Muss ich selbst auch noch mal reingucken =)

    EDIT:
    einfache prüfung via PHP:

    PHP
    if(checkdate($_POST['monat'],$_POST['tag'],$_POST['jahr'])===true){
        $sql="INSERT INTO `datum` (`geburtsdatum`) VALUES ('".mysql_real_escape_string($datum)."')"; 
    }else{
        # error msg
    }

    Schätze ´geburtsdatum´ ist vom Typ DATE. Dann wird der Wert, den Du reinschickst, ein falsches Format haben und somit bekommst Du 0000-00-00.

    Lass Dir mal die Query ausgeben:

    Angenommen Du hast eine Vorhandene Datenbank mit der Tabelle "rechnungen" und "benutzer".

    Irgendwann registriert sich ein Benutzer bei Dir:

    Seite "Registrierung" (pseudo code):
    wenn $_POST[email]== ok und $_POST[name]== ok und $_POST[pw] == ok
    dann
    erstelle neuen benutzer in db: INSERT INTO benutzer SET name = $_POST[name], email = $_POST[email], pw = $_POST[pw];
    sonst
    fehlermeldung ausgeben


    irgendwann "erscheint" eine Rechnung die Du zB in der db speicherst:
    INSERT INTO rechnungen SET name = *sein name halt*, betrag = *betrag ...* ....


    Wenn sich der Benutzer erfolgreich einloggt hat:
    lade benutzer:
    SELECT * FROM benutzer WHERE name = $_POST[name];
    SELECT * FROM rechungen WHERE name = $_POST[name];


    Und jetzt hast Du Daten von dem bestimmten, eingeloggten Benutzer die Du auf der Seite anzeigen kannst.

    PS: das ist alles sehr "locker" daher geschrieben um es einfacher zu erklären.
    Benutzer sollten zB in der db per ID angesprochen werden, eingehende Benutzerdaten (wie zB $_POST) gefiltert werden ect.
    Ich kann Dir jetzt aber nicht komplette Beispiele schreiben. Die gibts im Netz in Mengen =)

    Dann musst Du nur das laden und ausgeben, was der User mit der ID "soundso" sehen soll.

    Ich denke mal hier lädst Du die Daten:

    PHP
    $sql = "SELECT * FROM autority";


    Und das ändest Du in
    ~

    PHP
    $sql = "SELECT * FROM autority WHERE id = 1234";

    Ich weiß nicht so ganz wo ich ansetzen soll :D

    Soweit ich Dich verstanden hab, geht es um einen Login, bei dem der eingeloggte Nutzer seine betimmte Seite einsehen kann.
    Dann stelle ich mir das so vor:

    - Nutzer verursacht Kosten
    - Rechnung wird erstellt
    - Rechnung wird in Datenbank gespeichert mit Nutzer ID
    - Nutzer (mit ID nr. '3') loggt sich ein und :
    - anhand der ID des Nutzers lädst Du die Rechung as der Datenbank: SELECT * FROM tabelle_rechungen WHERE id = 3;

    Du gibst die Tabelle noch vor dem DOCTYPE aus.
    besser:

    Was functioniert eigentlich nicht?

    Frage zu sublime:
    Kann man irgentwo einstellen, dass bei STRG+SHIFT+Pfeiltasten oder auch bei Doppelklick auf eine PHP Variable das $ mit markiert wird?
    Ich versuch mir das blöde copy/paste zwar gerade abzugewöhnen, aber manchmal will man eben doch mal schnell was kopieren. Und wenn man dann mit der Maus "manuell" markieren muss, ist das nervig =)

    So. Da scriptly öftermal gecrasht ist und der ja keine Updates mehr bekommt UND wegen dem Video über Sublime Text bin ich nu doch zu Sublime gewechselt =)

    Mich hatte zwar genervt, dass alles so "bunt" dargestellt wird, aber nach paar Stunden merkt man das garnicht mehr.
    Und ich mus sagen - ich find das Ding genial =)
    Das geht vom STRG-markieren bis hin zu simplen Sachen wie Tabs "schieben" (anordnen).
    Und mMn sehr angenehm: dunkel :D Kein Augenkrebs mehr =)

    Ha! Geht! =)
    Hast recht - muss ja nicht die function rein. Bei mir hatte JS immer die "falsche" Klasse als Referenz genommen.
    Hab das Ganze gleich mal in ne func callback() gepackt =)

    Das schöne an call() ist, dass man die Referenz mitgeben kann.
    Also prüft callback() einfach:

    Code
    wenn FUNCTION dann rufe auf FUNCTION und
        wenn KLASSE dann gib mit referenz KLASSE und
            wenn PARAMETER dann gib mit PARAMETER

    :D

    EDIT: apply funktioniert besser, da man die werte (para) als array [array,val,'ect'] mitgeben kann:

    JavaScript
    function callback(cl,meth,para){
        return (meth)?meth.apply((cl)?cl:null,(para)?[para]:null):false;
    }

    hier mal ein ordentliches beispiel:

    @ alert("in Klasse_1:\r\nKlasse_1 in receive angekommen und bsp-wert this.eigenschaft == "+this.eigenschaft);
    kommt undefined oO?
    raff ich net

    Witzbold :D
    Sind zuviele. ~10 val und 3 arrays :D


    EDIT: ich ahne was mir hier passiert ist:

    Zitat von http://www.peterkropff.de/site/javascript/grundlagen_oop.htm


    Objektgebundenheit

    Bei dieser Vorgehensweise ist sowohl die Eigenschaft als auch die Methode an das erzeugte Objekt gebunden. Erzeugt man ein neues Objekt unter demselben Namen, so werden alle bereits existierenden Eigenschaften und Methoden ins Nirwana befördert und euch haut es eine saftige Fehlermeldung um die Ohren.

    das war ja nur ein bsp und ich hab mich sogar vertipp:
    muss AndereKlasse.andereFunc(Klasse_1.methode) sein denk ich.

    Knn hier nicht die ganzen klassen posten - sind zu umfangreich geworden.
    Aber fakt ist: wenn AndereKlasse das callback aufruft (also Klasse_1.methode()), dann ist var wert "undefined" =(

    Ja.
    Das mit der Datenbank muss nicht sein. Kann auch aus einem File gelesen werden ...
    Aber per Datenbank macht schon mehr Sinn.

    Du hast also ein php Script, in dem eine Seite erstellt wird wie zB:


    und so weiter.

    Ich wundere mich gerade warum die Werte einer Klasse weg sind.

    Ablauf ect:


    wenn jetzt callback() aufgerufen wird, dann bin ich ja wieder in der Klasse_1. Aber die ist "leer".
    'wert' ist undefined, aber warum?

    Hast Du das hier genutzt? => http://www.phpbuddy.eu/login-systeme-…fi.html?start=1
    Ich hoffe Du weißt was dabei passiert :D Ich weiß ja nicht in wie weit Du Dich mit php ect auskennst. Aber ich bin (fast) immer dafür, dass man den code genau versteht, den man einbaut.

    Wenn Du in php schon gut unterwegs bist, dann - ja wie lauras sagte - die Seite personalisieren.
    Heißt in Stichpunkten:

    - user eingeloggt -> user id bekannt
    - des Nutzers Daten laden (Datenbank)
    - anhand der Daten die Seite X per php erstellen *
    - Nutzer die Seite X anzeigen

    * Diese Seite existiert physisch also nicht wirklich (wenn, dann nur als "Grundlage" ohne Inhalt), sondern wird per php unter Verwendung der Benutzerdaten erstellt.

    Ich würde das garnicht machen :D
    Der Nutzer soll doch selbst wählen wo er hin will =)

    Ich weiß ja nicht was Du vor hast.
    Wenn Du nur willst, dass der Nutzer nach dem erfolgreichen Login "von der Loginseite weg ist", dann würde ich ein header('Location: http://meineSeite.com/index.php'); setzen.
    Aber ich mache das sowieso komplett anders (andere würden sagen umständlich :D ).