Avatar billede the_edge Nybegynder
31. marts 2007 - 16:13 Der er 20 kommentarer

Tjekker om en variable er sat.

Hejsa

Jeg vil gerne have tjekket om en variable er sat. problemmet er at bliver hele tiden taget selv om den ikke er sat. Det er fordi at når brugeren uploade et billed skal den kun overskrive det gamle hvis der er valgt et nyt. nu overksriver den bare hele tiden selv om man ikke har valgt noget. Det resultere i at der kommer det klassik tomme billed med et x

if (isset($_POST["Opret"],$_POST["billed"]))
    {
    sqlinsert("UPDATE Brugenavn SET Fornavn = '$fornavn ',Efternavn = '$efternavn',Email = '$email' ,Ombrugeren = '$ombrugeren',Beskeftigelse = '$beskeftigelse',Profilbilled = '$billed' where Brugernavn = '$brugernavn'");
    echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';
    }
   
   
    else if (isset($_POST["Opret"]))
    {
   
    sqlinsert("UPDATE Brugenavn SET Fornavn = '$fornavn ',Efternavn = '$efternavn',Email = '$email' ,Ombrugeren = '$ombrugeren',Beskeftigelse = '$beskeftigelse' where Brugernavn = '$brugernavn'");
    echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';
    }
Avatar billede the_edge Nybegynder
31. marts 2007 - 16:21 #1
jeg vil helst undgå en tjek boks hvis det er muligt
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 16:27 #2
if(trim(isset($_POST["Opret"],$_POST["billed"]))) {
...
}

Den fjerner "whitespaces" rundt om teksten.
Dvs, hvis der ingenting står i, så sparker isset ordenligt ind.
Avatar billede the_edge Nybegynder
31. marts 2007 - 16:36 #3
hmm det virker stadig ikke...  Jeg vidste ikke hele scriptet da jeg ikke trode det havde betydning...

men her er det hele

<?php
session_start();


include_once("sql.php");
include_once("help.php");

   
    function brugerret()
    {
    $brugernavn = $_SESSION["brugernavn"];

    conn();
    $result = mysql_query("select * from brugenavn where Brugernavn = '$brugernavn'") or die (mysql_error());

   
    while ($row = mysql_fetch_array($result))
    {
    echo '<center><h3>'.$row["Fornavn"].'</h3></center>';
   
    $fornavn = $row["Fornavn"];
    $efternavn = $row["Efternavn"];
    $email = $row["Email"];
    $Beskeftigelse = $row["Beskeftigelse"];
    $ombrugeren = $row["Ombrugeren"];
    $profilbilled = $row["Profilbilled"];
    $kodeord = $row["kodeord"];
    }

    echo "<h3 id=\"overskrift\"><center>Ret dine oplysninger</center></h3>";
   
   
    echo'
   
    <table align="center" border="0">
    <form action="index.php?pid=brugerret" method="POST" enctype="multipart/form-data">
   
    <tr><td><p>Fornavn :</p></td><td><input type="text" name="Fornavn" value="'.$fornavn.'"></td></tr>
    <tr><td><p>Efternavn :</p></td><td><input type="text" name="Efternavn" value="'.$efternavn.'"></td></tr>
    <tr><td><p>Email :</p></td><td><input type="text" name="Email" value="'.$email.'"></td></tr>
    <tr><td><p>Beskæftigelse:</p></td><td><input type="text" name="Beskeftigelse" value="'.$Beskeftigelse.'"></td></tr>
    <tr><td><p>Lidt om dig :</p></td><td><textarea name="Ombrugeren"  cols=16 rows=9>'.$ombrugeren.'</textarea></td></tr>
   
    <tr><td><p>Profil billed :</p></td><td><input type="file" name="billed" id="billed"></td></tr>
   
   
    <tr><td colspan="2"><hr> </td></tr>
   
    <tr><td><p>Ændrer dit gamle kodeord!!! :</p>  </td><td><input type="checkbox" name="tjek">  </td></tr>
   
    <tr><td><p>Indtast dit gamle Kodeord :</p>  </td><td><input type="password" name="gammeltkd">  </td></tr>
    <tr><td><p> </p>  </td><td><br /> </td></tr>
   
    <tr><td><p>Indtast dit kodeord:</p>  </td><td><input type="password" name="kodeord1">  </td></tr>
    <tr><td><p>Indtast dit kodeord igen :</p>  </td><td><input type="password" name="kodeord2">  </td></tr>
    <tr><td>&nbsp</td> <td><input type="submit" value="Ret" name="Opret"><input type="reset" name="reset"> </td></tr>
   
    </form>
    </table>

';
   
   
   
    $fornavn = trimmet($_POST["Fornavn"]);
    $efternavn = trimmet($_POST["Efternavn"]);
    $email = trimmet($_POST["Email"]);
    $beskeftigelse = $_POST["Beskeftigelse"];
    $ombrugeren = $_POST["Ombrugeren"];
    $kodeord = $_POST["kodeord2"];
   
    $billed = '';
    if ( !empty( $_FILES['billed'] ) && is_uploaded_file( $_FILES['billed']['tmp_name'] ) )
    {
  $DIR = "upload/";
  $navn = tempnam( $DIR, "UPL_" );
  if ( move_uploaded_file( $_FILES['billed']['tmp_name'], $navn ) )
  {
      $billed = file_get_contents( $navn );
      unlink( $navn );
      }
    }   

    $billed = mysql_escape_string( $billed );
   
   
   
   
    if(isset($_POST["tjek"]))
    {
       
        if ($_POST["gammeltkd"] == $kodeord)
        {

            if ($_POST["kodeord1"] != $_POST["kodeord2"])
            {
                echo "Dit nye kodeorder er ikke ens";
            }
           
            else if ($_POST["kodeord1"] == $_POST["kodeord2"])
            {
               
            sqlinsert("UPDATE Brugenavn SET Fornavn = '$fornavn ',Efternavn = '$efternavn',Kodeord = '$kodeord',Email = '$email' ,Ombrugeren = '$ombrugeren',Beskeftigelse = '$beskeftigelse',Profilbilled = '$billed' where Brugernavn = '$brugernavn'");
            echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';
            }
           
       
        }
    }

    if (isset($_POST["Opret"],$_POST["billed"]))
    {
    sqlinsert("UPDATE Brugenavn SET Fornavn = '$fornavn ',Efternavn = '$efternavn',Email = '$email' ,Ombrugeren = '$ombrugeren',Beskeftigelse = '$beskeftigelse',Profilbilled = '$billed' where Brugernavn = '$brugernavn'");
    echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';
    }
   
   
    else if (isset($_POST["Opret"]))
    {
   
    sqlinsert("UPDATE Brugenavn SET Fornavn = '$fornavn ',Efternavn = '$efternavn',Email = '$email' ,Ombrugeren = '$ombrugeren',Beskeftigelse = '$beskeftigelse' where Brugernavn = '$brugernavn'");
    echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';
    }
   




}   


if ($_SESSION["login"] == 1)
{
brugerret();
}

else echo "Du er ikke logget ind";






?>
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 16:39 #4
$brugernavn = $_SESSION["brugernavn"]; = $brugernavn = $_SESSION['brugernavn'];

og så skal du vidst nok erklærer den global inde i brugerret() for at den kan få adgang til den.
Avatar billede the_edge Nybegynder
31. marts 2007 - 16:43 #5
den bliver er klaret når man logger ind.
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 16:46 #6
ja men du skal erklærere den inde i funktionen for at få adgang til den.
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 16:46 #7
prøv at smide en "global $_SESSION['brugernavn'];

ind over: $brugernavn = $_SESSION['brugernavn'];
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 16:47 #8
hov, uden " foran selvfølgelig.
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 16:49 #9
kan også se at du ikke har smidt trim() ind i dine løkker...
Avatar billede the_edge Nybegynder
31. marts 2007 - 16:55 #10
hmm jeg får fejl når jeg smider global $_SESSION['brugernavn']; ind over (har smidt trim en nu )

Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\Program Files\xampp\htdocs\0v-9v\brugerret.php on line 11
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 17:00 #11
hmm mine tests siger at den heller ikke skal være der...

og du har lavet alle variable = '$variable', om til variable = '".$variable."', om i dine sql updates osv ?
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 17:02 #12
og prøv også lige at rette alle dine "sqlinsert" til "mysql_query" ...
Avatar billede the_edge Nybegynder
31. marts 2007 - 17:12 #13
nu er det ændret men stadig ikke nogen ændring ... hvor ser du disse '".$variable."' henne ? tænkte du på inde i post ?
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 17:55 #14
sqlinsert("UPDATE Brugenavn SET Fornavn = '$fornavn ',Efternavn = '$efternavn',Email = '$email' ,Ombrugeren = '$ombrugeren',Beskeftigelse = '$beskeftigelse',Profilbilled = '$billed' where Brugernavn = '$brugernavn'");
    echo '<META HTTP-EQUIV="refresh" CONTENT="0.1">';

her er en del af dem, gad bare ikke lige skrive navnet på dem alle.

alle dine $fornavn, $efternavn osv osv osv
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 17:56 #15
Fornavn = '$fornavn ' = Fornavn = '".$fornavn."'
Efternavn = '$efternavn' = Efternavn = '".$efternavn."'

osv osv, kan du følge mig ? :)
Avatar billede the_edge Nybegynder
31. marts 2007 - 19:23 #16
hmm nej ikke lige tror jeg :( hvor erklare dem Fornavn = '$fornavn ' = Fornavn = '".$fornavn."' så mange gange (er noob) :)
Avatar billede blackscorpion Nybegynder
31. marts 2007 - 19:28 #17
Fornavn = '$fornavn '

=

Fornavn = '".$fornavn."'

det er for at du kan se forskellen. :)
Avatar billede Slettet bruger
31. marts 2007 - 19:30 #18
Bare prøv med

if ($_POST["Opret"] && $_POST["billed"])
Avatar billede the_edge Nybegynder
01. april 2007 - 13:04 #19
hmmm det virker hellere ikke... den kommer ikke ned i den løkke
Avatar billede johan.o Nybegynder
03. april 2007 - 22:57 #20
Hm, er ikke helt sikker på at jeg har forstået problemet, men....

Når du trykker 'submit' i din form, sender den jo alle 'input' felterne i formen, uanset om der er skrevet noget i dem eller ej. Så hvis du kun checker på om $_POST['whatever'] er sat vil alle variablerne fra din form give et positivt resultat. Derfor bør du måske checke om der noget indhold i de forskellige variabler istedet.

if(isset($_POST['et eller andet felt'])) { ...så har brugeren trykket på submit...

dernæst....

if($_POST['et felt']!="") { ....så har brugeren skrevet noget....

Lad høre om det hjælper dig, ellers må du lige prøve at forklare problemet igen.

Mvh. Johan
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