SQL Update geht nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • h3ll
    antwortet
    Woran kann was liegen? "geht nicht" ist keine Fehlerbeschreibung.

    htmlspecialchars() hat in SQL-Code nichts verloren. Das gehört nur in die HTML-Ausgabe.

    Wenn du schon prepare() verwendest, warum setzt da dann nicht auch die Parameter damit? Und bevor du fragst wie: Steht alles im PHP-Handbuch.

    mail() sollte nicht verwendet werden. Nimm stattdessen eine Mailer-Klasse.

    Einen Kommentar schreiben:


  • thommy1972de
    hat ein Thema erstellt SQL Update geht nicht.

    SQL Update geht nicht

    Ich habe folgendes Skript:
    PHP-Code:
    if (filter_input(INPUT_POST"email"FILTER_VALIDATE_EMAIL)) { $email htmlspecialchars($_POST["email"]); }
    if (
    filter_input(INPUT_POST"kdnr"FILTER_VALIDATE_INT)) { $kdnr htmlspecialchars($_POST["kdnr"]); }
    $passwort password_hash($_POST["passwort"]);


    if (
    mysqli_connect_errno()) {
        
    printf("Connect failed: %s\n"mysqli_connect_error());
        exit();
    }

    /* prepare statement */
    if ($stmt $mysqli->prepare("SELECT kdnr, email, passwort, firstlogin, firstversuche, anrede, nachname, vorname FROM kunden WHERE kdnr = '$kdnr' AND email = '$email' LIMIT 1")) {
        
    $stmt->execute();
        
    $stmt->bind_result($db_kdnr$db_email$db_passwort$db_firstlogin$db_firstversuche$db_anrede$db_nachname$db_vorname);
    $stmt->fetch();

        
    if(
    $db_firstlogin == 0) { // Wenn zum ersten mal Login

    if($db_firstversuche >= 5) { // Wenn mehr oder gleich 5 Versuche
    echo "Sie haben mehr als 5x Versucht eine Bestätigungsemail zu senden. Deswegen wurde ihr Account gesperrt. <br />Bitte kontaktieren Sie uns unter: ----- um ihren Account wieder zu Entsperren."
    exit; 
    }
        
        
    if(!empty(
    $db_email)) { // Wenn Email vorhanden

        
    echo "<br /><hr><br />Sie melden sich heute zum 1. mal in unserem System an !<br />Daher müssen wir ihre Identität noch verifizieren."
        
    $betreff utf8_decode("Ihr Bestätigungscode");
        
    $from "From: NAME <xxxxxx>\n";
        
    $from .= "Reply-To: antwort@domain.de\n";
        
    $from .= "Content-Type: text/html\n";

        
    $random1 rand(99999,999999999);
        
    $random password_hash($random1PASSWORD_DEFAULT);
        
    $text utf8_decode("Hallo ".$db_anrede." ".$db_nachname." ".$db_vorname.".<br /><br />Ihr Bestätigungscode lautet: ".$random1."<br /><br />Falls Sie die Seite schon geschlossen haben, folgen Sie bitte diesem Link:<br /><center><br />Link zum Bestätigen: <br /><a style='background: #454545; color:#fff; text-decoration:none;' href='http://www.webseitee/verify.php&email=".$db_email."&code=".$random."'> Hier klicken </a></center>  <br /><br /><hr><p style='font-size='1px'><hr><br /> \n\nDanke");
     
        
    mail($db_email$betreff$text$from);

        
    // Eintrag in DB der nicht geht !!!!

    if ($stmt $mysqli->prepare("UPDATE kunden SET firstlogin = '1' WHERE email = 'eine Email Adresse @ adddi. de'")) {
        
    $stmt->execute();
    }


    }

    Woran kann das liegen ??? Hab schon mit ` und ' ohne Anführungszeichen und mit mit ? und bind_param
    Er macht einfach in firstlogin keine 1 rein
Lädt...
X