Beiträge von cottton

    Bitweise Operatoren halt


    Als wäre das völlig normal. Kennt ja jeder :D

    Also ich habs mir angesehen und nicht verstanden.
    Was es macht ist einigermaßen klar (steht ja da), aber wenn man damit noch nie was zu tun hatte (oder studiert hat :D ) braucht man wohl jemanden der es erklärt.
    Ich gehe mal davon aus, dass ich es nie brauchen werde :p

    liegt sicher am connecten.

    guck mal bei "// connect to the db"
    Prepared Statements

    try{}catch{}


    btw: lass ", array(PDO::ATTR_PERSISTENT => true)" weg falls du keine persistente verbindung möchtest

    edit: und was ist "ss" ?

    PHP
    $stmt->bind_param("ss", $endDate, $_GET['delete'] );
    PHP
    $stmt = $mysql->prepare( "UPDATE `login_sessions` SET `active` = 'false', `endDate` = ? WHERE `id` = ? " );


    ^erwartet 2 parameter (?,?)
    und du übergibst 3 =)
    Dann functioniert (soweit ich weiß) bindparam so nicht.

    guck mal hier:

    PHP
    $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
    $stmt->bindParam(1, $name);
    $stmt->bindParam(2, $value);


    http://php.net/manual/en/pdo.prepared-statements.php

    ich würde keine "?" empfehlen.
    Ich mag eher die "named placeholders"

    Falls mal jemand sowas braucht:

    array_switch( array , current , type )
    current: der zuletzt ausgegebene Wert (ohne macht kein sinn)
    type: gibt an, ob der Wert von [key] oder => val durchlaufen werden soll

    Verbesserungsvorschlöge erwünscht =)

    (ich kenne next ;) allerdings fehlte mir da bissl was)

    Heut ist tag des wahnsinning werdens :D
    So was ähnliches hatte ich hier auch schonmal gelesen glaub ich.
    Gibts bei JS keinen editor der die vordefinierten functions/vars farbig markiert?

    oh man ich glaubs nicht -.-
    hatte 2 mal curl_exec() benutzt. Somit wurde das script(interne api) 2 mal aufgerufen (logisch).
    ich fasse es nicht. Das hat man davon, wenn man andauernd copy/paste nutzt, anstatt es zu tippen -.-

    sorry, hat mich wahnsinning gemacht (stunden!) und ich war echt an nem punkt and dem ich mir nur noch nen bug vorstellen konnte.

    ich hab ne query: SELECT * FROM processes

    while(so und so ){
    $array[...] = $row[...]
    }

    Eine total simple query bei der ich aus der ganze tabelle alle zeilen lese und in ein array schicke.

    Wie kann es aber sein, dass beim LESEN mit dieser query die daten geändert werden?

    In der db steht zB counter: 2
    Im array steht dann aber ['counter'] => 3
    oO?!

    Ich hab vor der query das array standardmäßig erstellt, damit es vorhanden ist, wenn die db abkackt: $array[soundso]['counter'] = 0;

    Tests:
    db (mysql workbench) zeigt zb counter: 5
    direk vor der query(execute): counter => 0 // klar, weil nur "hart" erstellt
    direkt nach der query: counter => 6

    wtf?
    Bin ich jetzt total retarded, oder ist das ein bug?

    Zum Sinn: Das Beste und sicher jedem wichtigste ist, dass sql injection nicht mehr möglich ist, WENN man es so nutzt, wie es vorgesehen ist.

    Bsp wie man es "versaut":

    PHP
    $stmt = $dbh->prepare("SELECT * FROM tablename WHERE name = ".$_GET['name']." LIMIT $_POST['user_input'], :rows");


    Somit würde man die query mit user daten füllen.
    Also immer :name ect nutzen. Dann ist es "egal", was man beim execute(array('nickname' => $_GET['user_input'])) reinschickt.

    angenommen: $_GET['name'] = " ';cottton "
    dann wird hier ein bissl was schief laufen:

    PHP
    $stmt = $dbh->prepare("SELECT * FROM players WHERE nickname = '".$_GET['name']."' LIMIT 0,1"); 
    $stmt->execute();


    query: SELECT * FROM players WHERE nickname = ' ';cottton ' LIMIT 0,1

    richtig wäre:

    PHP
    $stmt = $dbh->prepare("SELECT * FROM players WHERE nickname = :nickname LIMIT 0,1"); 
    $stmt->execute(
     array(
     'nickname' => $_GET['name']
    )
    );


    query: ja, wie stellt man das dar?
    Ich hab noch kein Bsp gesehen, wie die query dann aussieht.
    Aber die query ist jedenfalls schon "fertig" - prepared.
    Kann also "nicht mehr geändert werden". Die Daten werden als Parameter übergeben.
    (Weiß nicht wie ich es sonst ausdrücken soll ;D )

    hab mit sqlite_open() noch nie was gemacht, aber dir fehlt sicherlich eine erweiterung o.ä.
    test:

    PHP
    if(function_exists('is_numeric')){
        echo '"is_numeric" true ,';
    }else{
        echo '"is_numeric" false ,';
    }
    if(function_exists('sqlite_open')){
        echo '"sqlite_open" true ,';
    }else{
        echo '"sqlite_open" false ,';
    }


    sich einfach mal in google nach dem fehler "call to undefinded function sqlite_open()"

    So jetz hatte ich mal den Kopf frei.

    Gefällt mir.
    Ich persönlich würde jetzt noch prepared statements nutzen. Dann sind sql injections nicht mehr möglich.

    Wäre jetzt auch mal schön zu sehen, ob es mit mehreren benutzern funktioniert.
    Evtl auch (als main admin) per click das passwort eines nutzers resetten.

    btw - was macht eigtl -> header( "Location: index.php" );
    Heisst das, dass ab diesem punkt, oder bei übergeben an den browser diese seite aufgerufen wird?

    Das ja mal schön, dass es doch noch vernünftige menschen gibt, die zum neuaufsetzen raten =)
    Ich hab sonst immer nur gelesen ~"und dann is alles wieder gut".
    tja .. system was aber comprimitiert, und ist es evtl noch. =)

    Naja.
    Ich hatte nix aufm rechner. War mir auch sicher, dass es nur über die website "angezeigt wurde".
    Neuinstall war trotzdem angesagt ;D war sowieso fällig.

    Dass man mit JS Tasten SPERREN kann is heftig =/

    Ich suche gerade die sinnvollste Methode eine val in einem Multi-array zu finden.
    Ich hab bis jetzt immer foreach genutzt, will aber irgentwie davon weg =)
    Hier mal ein Bsp:


    in_array funktioniert nicht.
    Ich suche auch schon bei php.net.
    Aber evtl weiß ja jemand auf Anhieb eine Funktion.


    EDIT:
    array_walk_recursive, läuft aber komplett durch. Also ein break oder continue funktionier nicht =/

    PHP
    echo '<br />array_walk_recursive: ';
    array_walk_recursive($server_data,
        function ($item, $key, $player){
            if($player == $item){
                //echo "$key => $item<br />";
                echo 'true ';
            }
        }
    , $player);

    Was nutzt ihr?