2012-08-02 4 views
0

J'essaie de mettre à jour le mot de passe de la table 'nbk6_user'.MISE À JOUR du mot de passe dans la base de données MySQL avec PHP

lorsque le script est lancé, je reçois l'erreur: « Fehler »

que je fais le mysql_query droit?

Quelqu'un peut-il m'aider s'il vous plaît?

<?php 
include 'conf.php'; 
$connection = mysql_connect("****", "****", "****"); 
mysql_select_db($datenbank); 
session_start(); 

if(!isset($_SESSION["name"])) 
{ 
    die("Für diese Seite musst du dich zuerst anmelden!"); 
} 
$name = $_SESSION["name"]; 

$pw1 = $_POST["pw1"]; 
$pw2 = $_POST["pw2"]; 

$pw1 = trim($pw1); 
$pw2 = trim($pw2); 

if($pw1 == "") 
{ 
die("Kein Passwort gesetzt."); 
} 

if($pw1 == $pw2) 
{ 
    $query = mysql_query("UPDATE nbk6_user SET password='$pw1', WHERE name='$name'"); 
    if(!$query) 
    { 
     echo "Fehler"; 
    } 
} 
else 
{ 
    echo "Die Passwörter stimmen nicht überein"; 
} 
?> 
+0

enlever la virgule avant 'WHERE' – Gntem

Répondre

0

Vous ne devriez pas avoir le coma après SET et il est préférable pour éviter d'insérer les variables à l'intérieur d'une chaîne de caractères, lorsque vous traitez des requêtes MySQL (ou toute autre chaîne, c'est une mauvaise pratique).

Essayez:

$query = mysql_query("UPDATE nbk6_user SET password='".$pw1."' WHERE name='".$name."'"); 
if(!$query) 
{ 
    mysql_error(); 
    echo "Fehler"; 
} 

si la requête modifiée ne fixe pas mysql_error() vous expliquera où la question est.

0

Erreur dans la requête Utilisez cette

$query = mysql_query("UPDATE nbk6_user SET password='".$pw1."' WHERE name='".$name."'"); 

lire également la première réponse here, cela vous informer pourquoi vous ne devriez pas utiliser mysql_ * et utiliser mysqli et PDO, en prenant soin d'injections sql .

+0

puis-je obtenir cette erreur d' Parse error: erreur de syntaxe, T_CONSTANT_ENCAPSED_STRING inattendue /home/.sites/26/site2378/web/nbk6/changepw. php sur la ligne 57 (ligne 57 est la mysql_query - ligne) – benni

+0

Je pense que vous manquez les citations à la fin de requête, vérifier une fois mysql_query ("Mettre à Jour nbk6_user SET password =" '. pw1 $' » WHERE nom = "'. $ Nom.'" ") – amitchhajer

+0

-1. Changer les méthodes de concaténation de chaînes ne fait rien. '$ x =" a $ b "' est fonctionnellement identique à '$ x = 'a'. $ b'. Tout ce que vous avez fait est de réorganiser les chaises longues sur le titanic. –

1

essayer voir l'erreur avec mysql_error, mais je pense que u mettent « » après le mot de passe = « pw1 $ » Je pense donc juste essayer

0

Vous avez une virgule ballants:

... SET password='$pw1', WHERE ... 
         ^--- 
0

Dans un premier temps:

session_start(); doit être la première ligne de votre code.

Puis

$query = mysql_query("UPDATE nbk6_user SET password='$pw1', WHERE name='$name'"); 
must be 
$pw1=md5($pw1); 
$query = mysql_query("UPDATE nbk6_user SET password='$pw1' WHERE name='$name'"); 
Questions connexes