Avatar billede stengaard Praktikant
14. marts 2006 - 11:34 Der er 14 kommentarer og
1 løsning

hvad gør jeg forkert her

hvad gør jeg forkert her i dette script hvor brugerne af et community har mulighed for at ændre deres password.

Formen ----

<form action="changeaccountparse.php" method="post">
<input type="hidden" name="id" value="$id">
<div class="frmobj">
Brugernavn:</div> <?php
  include('access.php');
$id = $_SESSION['navn'];

$qry = "SELECT id, email, user, pass, navn, image, mobil, adresse, postnr, maaned, aar, kommune, member, foedselsdag FROM login WHERE user = '".$id."'";
$query = mysql_query($qry) or die(mysql_error());

while ($row = mysql_fetch_assoc($query)) {

echo '<b>'.$row['user'].'</b><br>';}
?>
<div class="frmobj">
Gammelt Password:</div> <?php
  include('access.php');
$id = $_SESSION['navn'];

$qry = "SELECT id, email, user, pass, navn, image, mobil, adresse, postnr, maaned, aar, kommune, member, foedselsdag FROM login WHERE user = '".$id."'";
$query = mysql_query($qry) or die(mysql_error());

while ($row = mysql_fetch_assoc($query)) {

echo '<b>'.$row['pass'].'</b><br>';}
?><br />
<div class="frmobj">Nyt Password: </div><input type="password" name="kodeord" value="<? echo "$pass"; ?>" style="width: 152px"><br />

<br />
<input type="submit" value="Updater Profil" name="update"> <input type= "button"  value="Tilbage"  onclick="history.back()" style="cursor:pointer;"> </form>

dernest scriptet der skulle update passwordet ( på brugernes profil)

<?
// Opdater oplysningerne
if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

$query = mysql_query("UPDATE login SET pass='" . $_POST[pass] . "', WHERE user='" . $_POST[id] . "'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
?>                <br>  <br>
<input type= "button"  value="Tilbage"  onclick="history.back()" style="cursor:pointer;">


den kommer med følgende fejl

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user='$id'' at line 1

fejllinien er her

$query = mysql_query("UPDATE login SET pass='" . $_POST[pass] . "', WHERE user='" . $_POST[id] . "'") or print mysql_error();
Avatar billede Slettet bruger
14. marts 2006 - 12:27 #1
Prøv:

$query = mysql_query("UPDATE login SET pass='$_POST[pass]' WHERE user='$_POST[id]'") or die(mysql_error());
Avatar billede Slettet bruger
14. marts 2006 - 12:29 #2
Desuden bør du nok bare gøre sådan:

mysql_query("UPDATE login SET pass='$_POST[pass]' WHERE user='$_POST[id]'") or die(mysql_error());

og ikke angive det i en variabel :-)
Avatar billede stengaard Praktikant
14. marts 2006 - 12:38 #3
den kommer med igen fejl men ændre ikke noget i db

<?
// Opdater oplysningerne
if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

mysql_query("UPDATE login SET pass='$_POST[pass]' WHERE user='$_POST[id]'") or die(mysql_error());
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
?>
Avatar billede Slettet bruger
14. marts 2006 - 12:41 #4
Så er det vel fordi $_POST[id] ikke er sat?
Avatar billede stengaard Praktikant
14. marts 2006 - 12:43 #5
ved denne funktion sletter den bare pass i db og skriver igen ting

<?
// Opdater oplysningerne
if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

mysql_query("UPDATE login SET pass='$_POST[pass]' WHERE user = '".$id."'") or die(mysql_error());
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
?>
Avatar billede Slettet bruger
14. marts 2006 - 12:45 #6
Prøv lige at gør sådan her, og se hvad output du får:

<?
// Opdater oplysningerne
if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

echo "$_POST[pass] - $id";

}
?>
Avatar billede minijensen1 Nybegynder
14. marts 2006 - 12:48 #7
Dit felt i HTML'en hedder "kodeord", men du prøver at hive det frem i PHP med "pass"

mysql_query("UPDATE login SET pass = '" . $_POST["kodeord"] . "' WHERE user = '" . $id . "'") or die(mysql_error());
Avatar billede Slettet bruger
14. marts 2006 - 12:49 #8
hehe ja der kan man bare se :-)
Avatar billede stengaard Praktikant
14. marts 2006 - 12:51 #9
<?
// Opdater oplysningerne
if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

echo "$_POST[pass] - $id";

}
?>

for kun mine bruger oplýsninger såsom brugernavn altså session navn
Avatar billede Slettet bruger
14. marts 2006 - 13:02 #10
ja, minijensen1 kom mig i forkøbet - det er altså $_POST[pass] der ikke er sat og ikke $_POST[id] :-)
Du skal altså ændre $_POST[pass] til $_POST[kodeord].
Avatar billede stengaard Praktikant
14. marts 2006 - 13:09 #11
ja men hvordan for jeg så dette til at virke så den sender en mail til brugeren

hvor den trækker bruger, email og det nye password ud fra db og sender en mail til brugeren

<?php

// Opdater oplysningerne

$bruger = $_POST['bruger'];
$pass = $_POST['pass'];
$email = $_POST['email'];
if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

mysql_query("UPDATE login SET pass='$_POST[pass]' WHERE user = '".$id."'") or die(mysql_error());

print("Dine oplysninger er blevet opdateret:<br><br>
        <b>Bruger: $bruger <br>
        Password: $pass <br>
        Navn: $navn <br>");
       
      // skriv mail til bruger!
    $subject = "Dit medlemskab på domain.dk !";
    $message = "Hej $navn, Du ændret dit password på, http://www.domain.dk !
    Vi har nu følgende oplysniger på dig som du skal huske til næste login:
   
    Brugernavn.: $bruger
    Password.: $pass
   
   
   
    Tak for interressen!
   
    Webmaster
   
    This is an automated response, please do not reply!";
    mail($email, $subject, $message,
        "From:  Webmaster<webmaster@domain.dk>\n
        X-Mailer: PHP/" . phpversion());
       
    echo 'Vi har sendt en mail til dig med dine nye login password!';
}
?>
Avatar billede Slettet bruger
14. marts 2006 - 13:19 #12
Det høre vel egentlig ikke under spørgsmålet, men here goes:

1. Igen skal du vel ændre $_POST[pass] til $_POST[kodeord]

2. Du skal angive to variabler $subject og $message.

$subject er emnet i mailen, og $message er beskeden, som du i ovenstående udskriver med print(); denne skal jo ikke printes på siden men istedet smides afsted med emailen.
Avatar billede stengaard Praktikant
14. marts 2006 - 13:22 #13
ja men er ikke helt med har prøvet dette her men det virker ikke der kommer bare en hvid skærm

<?php

// Opdater oplysningerne

if ($_POST["update"]) {
include ("access.php");
$id = $_SESSION['navn'];

mysql_query("UPDATE login SET pass='$_POST[pass]' WHERE user = '".$id."'") or die(mysql_error());

qry  = "SELECT id, email, user, pass, navn FROM login WHERE user = '".$id."'";

  $query = mysql_query($qry) or die(mysql_error());

  while ($row = mysql_fetch_assoc($query)) {

    echo '<h1>'.$row['navn'].'</h1>';
    echo '<b>Brugernavn.: ';
    echo '<b>'.$row['user'].' </b><br>';
    echo '<b>Password.: ';
    echo '<b>'.$row['pass'].' </b><br>';
    echo '<b>Email.: ';
    echo '<b>'.$row['email'].'</b><br><br>';
    }
       
      // skriv mail til bruger!
    $subject = "Dit medlemskab på domain.dk !";
    $message = "Hej $navn, Du ændret dit password på, http://www.domain.dk !
    Vi har nu følgende oplysniger på dig som du skal huske til næste login:
   
    Brugernavn.: $bruger
    Password.: $pass
   
   
   
    Tak for interressen!
   
    Webmaster
   
    This is an automated response, please do not reply!";
    mail($email, $subject, $message,
        "From:  Webmaster<webmaster@domain.dk>\n
        X-Mailer: PHP/" . phpversion());
       
    echo 'Vi har sendt en mail til dig med dine nye login password!';
}
?>
Avatar billede stengaard Praktikant
14. marts 2006 - 14:04 #14
ja men har ændret det i form til pass så de skulle være ens
Avatar billede stengaard Praktikant
14. marts 2006 - 14:27 #15
har oprettet et nyt spørgsmål ang. mail

http://www.eksperten.dk/spm/695063
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester