Avatar billede eizo_2 Nybegynder
12. november 2006 - 14:55 Der er 20 kommentarer og
1 løsning

ret profil

Hejsa alle eksperten .. nu har jeg prøvet i de sidste par dage at få et ret profil script til at virke uden held ..
jeg kan godt oprette bruger  vise profiler .. men ret profil kan jeg bare ikke få til at virke ..


det skal lige siges det er længe siden jeg har lavet noget i php så nok bare mig der ikke er update med Php´en idag

koden: edit profil

<?

  if(!$fornavn || !$efternavn || !$postnr || !$bynavn || !$email || !$new_password)
    {
      echo "Du skal udfylde alle felterne som har en <b>*<b/> ud for sig!";
     
    }
  else
    {
      addslashes($fornavn);
      addslashes($efternavn);
      addslashes($adresse);
      addslashes($postnr);
      addslashes($bynavn);
      addslashes($alder);
      addslashes($icq);
      addslashes($fritekst);
      addslashes($tlf);
      addslashes($mobil);
      addslashes($email);
      addslashes($password);
      $password = md5($new_password);
      $today = date("d-m-Y");
      include("inc/db_ind.php");
      $update_profil = mysql_query("UPDATE profiler SET fornavn = '$fornavn', efternavn = '$efternavn', rank = '$rank', alder = '$alder', adresse = '$adresse', postnr = '$postnr', bynavn = '$bynavn', tlf = '$tlf', mobil = '$mobil',  email = '$email', icq = '$icq', fritekst = '$fritekst, password = '$password', lastlogin = '$today' WHERE username = '$username'");
                  echo "Din profil er nu blevet opdateret.";
    }

?>
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:13 #1
det vil ikke gøre noget hvis der er en der ligger inde med en anden kode ..

jeg skal bare have ret til at virke på den ene eller andet måde :-)
Avatar billede ahv Nybegynder
12. november 2006 - 15:19 #2
Hvad sker der når du kører den med en fejlfinder på?

<?
  if(!$fornavn || !$efternavn || !$postnr || !$bynavn || !$email || !$new_password)
    {
      echo "Du skal udfylde alle felterne som har en <b>*<b/> ud for sig!";
   
    }
  else
    {
      $password = md5($new_password);
      $today = date("d-m-Y");
      include("inc/db_ind.php");
      mysql_query("UPDATE profiler SET fornavn = '$fornavn', efternavn = '$efternavn', rank = '$rank', alder = '$alder', adresse = '$adresse', postnr = '$postnr', bynavn = '$bynavn', tlf = '$tlf', mobil = '$mobil',  email = '$email', icq = '$icq', fritekst = '$fritekst, password = '$password', lastlogin = '$today' WHERE username = '$username'") or die(mysql_error());
                  echo "Din profil er nu blevet opdateret.";
    }

?>
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:24 #3
ved jeg ikke for den første fejl jeg får ligger i

  if(!$fornavn || !$efternavn || !$postnr || !$bynavn || !$email || !$new_password)
    {
      echo "Du skal udfylde alle felterne som har en <b>*<b/> ud for sig!";

den skriver bare jeg skal udfylde det hele .. og det fatter jeg ik lige hvorfor den gør .. for alle felter og navn er udfyldt
den laver også samme fejl hvis der bare står

  if(!$fornavn || !$efternavn )
    {
      echo "Du skal udfylde alle felterne som har en <b>*<b/> ud for sig!";

så skriver den stadigvæk  (Du skal udfylde alle felterne som har en <b>*<b/> ud for sig
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:24 #4
og i min form er den sat rigtig op med name=fornavn
og hva de ellers hedder
Avatar billede ahv Nybegynder
12. november 2006 - 15:30 #5
Lad mig lige se din form
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:32 #6
den er lidt rodet lige nu

men den skal jo rettets til når det hele virker ..
tænker på opstilling og sådan


<form action="edit_profil.php" method="get">

  <b>Personlig info<br>

  *Fornavn:<br>
  <input type="text" size="30" name="fornavn" value="<? print $fornavn ?>" maxlength="50" class="input"><br>

  *Efternavn:<br>
  <input type="text" size="30" name="efternavn" value="<? print $efternavn ?>" maxlength="50" class="input"><br>
  *Alder:<br>
  <input type="text" size="30" name="alder" value="<? print $alder ?>" maxlength="50" class="input"><br>

  Adresse:<br>
  <input type="text" size="30" name="adresse" value="<? print $adresse ?>" maxlength="50" class="input"><br>

  *Post Nr.:<br>
  <input type="text" size="30" name="postnr" value="<? print $postnr ?>" maxlength="4" class="input"><br>

  *By:<br>
  <input type="text" size="30" name="bynavn" value="<? print $bynavn ?>" maxlength="50" class="input"><br>
  ICQ:<br>
  <input type="text" size="30" name="icq" value="<? print $icq ?>" maxlength="50" class="input"><br>

  Tlf.:<br>
  <input type="text" size="30" name="tlf" value="<? print $tlf ?>" maxlength="8" class="input"><br>

  Mobil:<br>
  <input type="text" size="30" name="mobil" value="<? print $mobil ?>" maxlength="8" class="input"><br>

  *E-mail:<br>
  <input type="text" size="30" name="email" value="<? print $email ?>" maxlength="50" class="input"><br>

  *Password: (<font size="2">skal udfyldes!)</font><br>
  <input type="password" size="30" name="new_password" maxlength="8" class="input"><br>
  Fri tekst<br>
  <textarea rows="6" name="fritekst" cols="28"><? print $fritekst ?></textarea><br>
  &nbsp; </b>


<tr>
    <td width="100%" colspan="2">
   
   
    <p align="center">

  <b>

  <input type="submit" name="submit" value="Ret personlig data" class="button"></b></td>
</form>
Avatar billede coderdk Praktikant
12. november 2006 - 15:34 #7
$fornavn skal vel være $_GET['fornavn'] og så fremdeles, $_POST hvis du bruger POST, du kan nok tilgå begge med $_REQUEST
Avatar billede ahv Nybegynder
12. november 2006 - 15:34 #8
Lav den her
<form action="edit_profil.php" method="get">

om til

<form action="edit_profil.php" method="POST">

også prøv med;
  if(!$_POST['fornavn'] || !$_POST['efternavn'])
    {
      echo "Du skal udfylde alle felterne som har en <b>*<b/> ud for sig!";
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:37 #9
får en mysql fejl nu

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 'f165a901e17e5c4b331146e89dbec6a0', lastlogin = '12-11-2006' WHER
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:40 #10
nu får jeg ikke fejl .. det var fritekst = '$fritekst, password    der manglet en ' 

men nu skriver den din profil er opdatet men der er ingen skreven i mysql
Avatar billede ahv Nybegynder
12. november 2006 - 15:40 #11
Hvordan ser din tabel ud i databasen?
Avatar billede ahv Nybegynder
12. november 2006 - 15:41 #12
Ok, husk at alle dine felter skal rettes således;

      mysql_query("UPDATE profiler SET fornavn = '$_POST[fornavn]', efternavn = '$_POST[efternavn]', rank = '$_POST[rank]', alder = '$alder', adresse = '$adresse', postnr = '$postnr', bynavn = '$bynavn', tlf = '$tlf', mobil = '$mobil',  email = '$email', icq = '$icq', fritekst = '$fritekst, password = '$password', lastlogin = '$today' WHERE username = '$username'") or die(mysql_error());
                  echo "Din profil er nu blevet opdateret.";

Du kan vel se forandringen, sådan skal alle dine variable fra formen se ud.
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:42 #13
`id` int(11) NOT NULL auto_increment,
  `username` varchar(12) NOT NULL default '',
  `password` varchar(50) NOT NULL default '',
  `fornavn` varchar(50) NOT NULL default '',
  `efternavn` varchar(50) NOT NULL default '',
  `rank` varchar(50) default NULL,
  `alder` char(3) default NULL,
  `adresse` varchar(50) NOT NULL default '',
  `postnr` varchar(4) NOT NULL default '',
  `bynavn` varchar(50) NOT NULL default '',
  `tlf` int(8) NOT NULL default '0',
  `mobil` int(8) NOT NULL default '0',
  `lastlogin` varchar(10) NOT NULL default '',
  `email` varchar(80) NOT NULL default '',
  `icq` varchar(14) default NULL,
  `fritekst` text,
  `spillestil` text,
  `vaaben` text,
  `bane` text,
  `team` text,
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `id` (`id`),
  FULLTEXT KEY `alder` (`alder`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
Avatar billede ahv Nybegynder
12. november 2006 - 15:46 #14
Du mangler vidst bare at opdatere din update query, blot fortsæt med at ændre dine varibler som jeg har gjort - alle dem der kommer fra din form. Husk at nogen af dine varibler har du selv defineret lige ovenover så de er fine nok.
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:51 #15
det hjalp på det  nu hvor jeg har dig ..

kan du så hjælpe med at man kan lave mellemrum / linjeskift i fritekst når man bare trykker på enter
Avatar billede ahv Nybegynder
12. november 2006 - 15:55 #16
Ja, når du vil udskrive det så prøve med noget lignende;

echo nl2br($felt_fra_db_med_fritekst);

hvor det lange variable navn jeg har givet selvfølgelig er udskiftet med det rigtige :)
Avatar billede eizo_2 Nybegynder
12. november 2006 - 15:57 #17
jeg bruger $row[fritekst] til at trække den ud for den bruger ..
Avatar billede ahv Nybegynder
12. november 2006 - 15:58 #18
echo nl2br($row['fritekst']);
Avatar billede eizo_2 Nybegynder
12. november 2006 - 16:00 #19
jamen for fanden da .. du er jo en gud .. det virker jo ..
Avatar billede ahv Nybegynder
12. november 2006 - 16:01 #20
Velbekommen,

Fortsat god dag.
Avatar billede eizo_2 Nybegynder
12. november 2006 - 16:10 #21
jo tak i lige måde .. kan være jeg vender tilbage en anden dag til dig :-)
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