Avatar billede kren1000 Nybegynder
10. januar 2006 - 19:20 Der er 8 kommentarer og
1 løsning

PHP/Mysql - problem i opdatering af bruger

Hej eksperter
Jeg har 2 filer, en form hvor man for sine brugeroplysninger frem og rette i dem. Formen sender en til en "usynlig" opdateringsside, og derefter til visning på en 3. side med de nye rettelser.

Jeg har lavet en forkortet udgave her, for nemmere at spotte fejlen, men kan stadig ikke hitte ud af fejlen, jeg bliver sendt til en tom side ved "submit". Her er begge filer, kan nogen hjælpe mig?

Bruger_rediger 2.php
-----------------------------------------------------------------
<?php session_start(); ?>
<?php if ($_SESSION[godkendt]) { ?>
   
    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <link href="css/stylesheet.css" type="text/css" rel="stylesheet">
        <title>Dk-kontakt - Rediger din profil</title>
        <script LANGUAGE="JavaScript">
function felterok() {
  error = 0;

  var coll = document.getElementsByTagName("input");
       
  for( var t=0; t < coll.length; t++)
  {

    if( (coll.item(t).value == "") )
                    {
                      error = 1;
                    }

  }


  if (error == 0) {
    document.forms[0].submit();
  }
  else
  {
    alert("Du SKAL udfylde alle felter!");
  }
}

</script>
    </head>
    <body>
        <div align="center">
            <table width="700" border="1" cellspacing="0" cellpadding="0" align="center">
                <tr>
                    <td height="75">
                        <div align="center">DK- banner </div>                    </td>
                </tr>
                <tr>
                  <td height="20">
                    <table align="center" cellspacing="0" cellpadding="0" border="0">
      <tr>
      <td width="100px" align="center"><a href="index.php">Forside</a></td>
      <td width="100px" align="center"><a href="tilmelding.php">Tilmelding</a></td>
      <td width="100px" align="center"><a href="betingelser.php">Betingelser</a></td>
      <td width="100px" align="center"><a href="soeg.php">Søg profiler</a></td>
      <td width="100px" align="center"><a href="kontakt.php">Kontakt os</a></td>
      <td width="100px" align="center"><a href="login.php">Login</a></td>
      </tr>
                      </table></td>
              </tr>
                <tr>
                   
                    <td height="20" align="center">
                    <table align="center" cellspacing="0" cellpadding="0" border="0">
      <tr>
      <td width="100px" align="center"><a href="bruger_menu.php">Brugerforside</a></td>
      <td width="100px" align="center"><a href="bruger_rediger.php">Rediger profil</a></td>
      <td width="100px" align="center"><a href="bruger_soeg.php">Søg partner</a></td>
      <td width="100px" align="center"><a href="bruger_profil.php">Egen profil </a></td>
      <td width="100px" align="center"><a href="bruger_status.php">Ændre status</a></td>
      <td width="100px" align="center"><a href="bruger_logaf.php">Log af</a></td>
      </tr>
                      </table></td>
                </tr>
                <tr>
                  <td height="200" align="center">
                <table width="700"><tr><td>
                  <!--            HER KOMMER INDHOLDET        -->
             
            <?php
            $mydb = mysql_connect(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX);
              mysql_select_db(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX);
           
            $sql =    "select * from users where brugernavn = '$_SESSION[login_navn]'";
                     
            $query = mysql_query($sql,$mydb) or die(mysql_error().$sql);
   
            $raekke=mysql_fetch_array($query);
   
            ?>
           
            <form action="redigering_indsaet 2.php" method="post" enctype="multipart/form-data">
            <table width="587" border="0" cellspacing="0" cellpadding="0">
               
                <tr>
                    <td colspan="2" bgcolor="white" height="17"><b>Redig&eacute;r eksisterende bruger</b></td>
                </tr>
                <tr>
                    <td height="12"></td>
                    <td height="12"></td>
                </tr>
                <tr>
                    <td height="22">By</td>
                    <td valign="middle" height="22"><input type="text" name="byen" size="24" value="<?php echo $raekke[byen]; ?>"></td>
                </tr>
                <tr>
                    <td height="22">e-mail</td>
                    <td valign="middle" height="22"><input type="text" name="email" size="24" value="<?php echo $raekke[email]; ?>"></td>
                </tr>
                <tr>
                    <td height="22">Telefon</td>
                    <td valign="middle" height="22"><input type="text" name="telefon" size="10" value="<?php echo $raekke[telefon]; ?>"></td>
                </tr>
                <?php
                // -------------------------------------------------INTERESSER------------------------------------------------------------------------
                ?>
               
            </table>
           
            <!--<input type="hidden" name="id" value="<?php //echo $raekke['id']; ?>">-->
            <input type="button" value="Ret brugeroplysninger" onclick="felterok()"></form>
            </td>
            </tr>
            </table>
               
            <!--            HER SLUTTER INDHOLDET        -->
                 
            <tr>
            <td>
            </td>
            </tr>
            </table>
        </div>
    </body>

</html>
<?php }  ?>
----------------------------------------------------------------
Redigering_indsaet 2.php

<?php session_start();
   
    $mydb = mysql_connect(xxxxxxxxxxxxxxxxxx);
    mysql_select_db(xxxxxxxxxxxxxxxxxxxxxxxx,$mydb);
       
    $areacode = substr($_POST['postnummer'], 0, 1);
       
   
    if($_POST[Ret_brugeroplysninger]=="Ret brugeroplysninger")
   
    {
   
    $sql2="update users
       
        set
       
        byen='$byen',
        email='$email',
        telefon=$telefon
       
        where brugernavn = '$_SESSION[login_navn]'";       
       
        $query = mysql_query($sql2,$mydb) or die(mysql_error().$sql2);
           
    header("Location: bruger_profil.php");
    }
?>
Avatar billede anderseiler Nybegynder
10. januar 2006 - 19:30 #1
Lige umiddelbart ser det ud til, at din button ikke har fået noget navn. Prøv:

<input type="button" name="Ret_brugeroplysninger" value="Ret brugeroplysninger" onclick="felterok()">

Ved det ikke, spottede det bare lige hurtigt igennem. Men det kunne godt ligne en fejl.

Mvh
Anders Eiler
Avatar billede kren1000 Nybegynder
10. januar 2006 - 19:35 #2
Ja ok, det er klart nok:). Det kom jeg til at fjerne ved en fejl. Det er nu rettet, men det virker stadig ikke, men tak for din kommentar alligevel, jeg ved godt at koden er lidt lang og sikkert rodet:)
Avatar billede erikjacobsen Ekspert
10. januar 2006 - 23:58 #3
Du bør ikke bruge $byen, men aflæse værdien i $_POST
Avatar billede erikjacobsen Ekspert
11. januar 2006 - 00:00 #4
Og lav et hidden felt, med et navn, fx. "olsen" og en eller anden tilfældig værdi. Så tester du ikke på
if($_POST[Ret_brugeroplysninger]=="Ret brugeroplysninger")
men
if(isset($_POST["olsen]))
Avatar billede erikjacobsen Ekspert
11. januar 2006 - 00:01 #5
ok:
  if(isset($_POST["olsen"]))
Avatar billede kren1000 Nybegynder
11. januar 2006 - 16:34 #6
Ja ok, jeg tror du har fat i noget der:). Her er det nye jeg har lavet, det virker ikke, men jeg er også meget i tvivl om hvordan det skal skrives.

Her er mine rettelser til formen:
-------------------------------------------------------------------------------------
<input type="hidden" name="test" value="<?php echo $raekke['id']; ?>">
<input type="button" name="Ret_brugeroplysninger" value="Ret brugeroplysninger" onclick="felterok()"></form>

Og her i selve updaten:
------------------------------------------------------------------------------------

if(isset($_POST["test"]))
       
    {
   
    $sql2="update users
       
        set
       
        byen=$_POST[byen]
        email=$_POST[email]
        byen=$_POST[telefon]
       
        where brugernavn = '$_SESSION[login_navn]'";
Avatar billede kren1000 Nybegynder
11. januar 2006 - 18:56 #7
Jeg er nu kommet et stykke videre og for nu denne fejlmeddelelse:

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 '(byen, email, telefon) values ('candyby','hvem','22222222update users set (byen, email, telefon) values ('candyby','hvem','22222222') where id = 13

Og min kode ser sådan ud:

<input type="hidden" name="test" value="<?php echo $raekke[id]; ?>">
            <input type="button" name="Ret_brugeroplysninger" value="Ret brugeroplysninger" onclick="felterok()"></form>

Og i updaten:

if(isset($_POST["test"])) {
   
    $sql="update users set (byen, email, telefon)
                    values ('$_POST[byen]','$_POST[email]','$_POST[telefon]')
                    where id = $_POST[test]";       
               
        $query = mysql_query($sql,$mydb) or die(mysql_error().$sql);
        header("Location: bruger_profil.php");
Avatar billede kren1000 Nybegynder
12. januar 2006 - 16:00 #8
Jeg fandt ud af en helt anden måde og gøre det på.

Tak for hjælpen anyway, Lukker og slukker.
Avatar billede kren1000 Nybegynder
12. januar 2006 - 16:00 #9
Lukker
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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