Avatar billede monir Nybegynder
20. maj 2003 - 09:42 Der er 20 kommentarer og
1 løsning

Hvad mangler jeg her???

Jeg har denne kode, som gerne skulle danne grobund for et opdaterbart login:
<?php
        $db=mysql_connect("xxxxxxxxxxxxx", "xxxxxxxx", "xxxxxxxx");
          mysql_select_db("xxxxxxx", $db);
        $result=mysql_query ("select * from 403_gearbox_bands where bandnavn = '$bandnavn' AND password = '$password'")
        or die (mysql_error());
       
        while ($t = mysql_fetch_assoc ($result)) {
        if (($bandnavn=="rastapopoulus") && ($password=="tintin")){$userstatus = "ok";}
        else if ($t['bandnavn'] == $bandnavn){$userstatus = "kendt";}
        else {$userstatus = "falsk";}
        }

if (($userstatus == "ok") || ($userstatus=="kendt"))
{
    if(userstatus == "kendt")
    {
    ($t = mysql_fetch_assoc ($result));
    $etellerandet="opdater";
    }
    else if (userstatus =="ok")
    {
    $etellerandet="submit";
    }   
    echo"
    <form enctype=\"multipart/form-data\" action=\"smidband.php\" method=\"post\">
      <p>
        <input type=\"text\" name=\"bandnavn\" value=\"$t[bandnavn]\">
        Bandname</p>
        <p>
        <input type=\"password\" name=\"password\">
        Password</p>
      <p>
      <input type=\"text\" name=\"genre\" value=\"$t[genre]\">
        Style/Genre</p>
      <p>
        <input type=\"text\" name=\"land\" value=\"$t[land]\">
      Country</p>
      <p>
        <input type=\"text\" name=\"by\ value=\"$t[bynavn]\">
        Town</p>
      <p>Profile text/Press release</p>
      <p>
        <textarea name=\"profil\" cols=\"30\" rows=\"12\" value=\"$t[profil]\"></textarea>
      </p>
      <p>&nbsp; </p>
      <p>
      <input name=\"userfile\" type=\"file\">
        (.jpg/.gif, 415 x 230, max.50 KB)</p>
        <p>
       
        <input type=\"submit\" value=\"$etellerandet\">
      </p>
    </form>
    ";}else{
    echo "acees denied. Try re-typing login and password";
    echo "<a href=\"band_pass_1.htm\"> BACK </a>";
}
    //<input name="" type="hidden" value="$etellerandet">
?>

Mit spørgsmål er således...
Når jeg logger ind med det prædefinerede username og password, kan jeg oprette en ny user... Hvis jeg bruger username og password på en user jeg allerede har lavet, skulle jeg jo kunne se deres udtræk i mine forms, og opdatere nye oplysninger i stedet for at submitte.
Hjææælp.(og 60 point)
Avatar billede lauer Nybegynder
20. maj 2003 - 09:51 #1
if(userstatus == "kendt")
og
if(userstatus == "ok")

der kan du vel se en rimelig stor fejl.

derefter skal du have lavet 2 forskellige SQL alt efter hvad
<input name="" type="hidden" value="$etellerandet"> indeholder.
Du skal selvfølgelig lige give et navn til den hidden.
Avatar billede actinium Nybegynder
20. maj 2003 - 09:55 #2
Det kan være pga at $t[genre] osv skal være inde i din while løkke
Avatar billede lauer Nybegynder
20. maj 2003 - 10:01 #3
det er kan også være en god ide at gå ud af echo når du udskriver arrays.

echo "<input type=\"text\" name=\"genre\" value=\"".$t[genre]."\">";
Avatar billede monir Nybegynder
20. maj 2003 - 10:16 #4
Er gået ud af echo, men det er tilsyneladende ikke det eneste problem
Avatar billede lauer Nybegynder
20. maj 2003 - 10:19 #5
okay, jeg vi se hvordan koden ser ud nu?
og en evt. beskrivelse hvad der går galt nu.
Avatar billede monir Nybegynder
20. maj 2003 - 10:28 #6
Jeg kan ikke se den store fejl du påpeger
Avatar billede lauer Nybegynder
20. maj 2003 - 10:30 #7
det skal være if ($userstatus == ...)
Avatar billede monir Nybegynder
20. maj 2003 - 10:32 #8
Koden ser ud som den plejer, bortset fra at jeg hopper ud af echo, sådan som du har beskrevet. Derudover har jeg først sluttet min while-løkke efter echo, og det har resulteret i at jeg har fået nogle korrekte udtræk ind i mine forms. Det er dog ikke alle udtrækkene der virker, men jeg får heller ingen fejlmeddelelse. Her er den nye kode:

$db=mysql_connect("xxxxxxxxxxx", "xxxxxxxx", "xxxxxxxxx");
          mysql_select_db("xxxxxxxx", $db);
        $result=mysql_query ("select * from 403_gearbox_bands where bandnavn = '$bandnavn' AND password = '$password'")
        or die (mysql_error());
       
        while ($t = mysql_fetch_assoc ($result)) {
        if (($bandnavn=="rastapopoulus") && ($password=="tintin")){$userstatus = "ok";}
        else if ($t['bandnavn'] == $bandnavn){$userstatus = "kendt";}
        else {$userstatus = "falsk";}
       

if (($userstatus == "ok") || ($userstatus=="kendt"))
{
    if(userstatus == "kendt")
    {
    ($t = mysql_fetch_assoc ($result));
    $etellerandet="opdater";
    }
    else if (userstatus =="ok")
    {
    $etellerandet="submit";
    }   
    echo"
    <form enctype=\"multipart/form-data\" action=\"smidband.php\" method=\"post\">
      <p>
        <input type=\"text\" name=\"bandnavn\" value=\"".$t[bandnavn]."\">
        Bandname</p>
        <p>
        <input type=\"password\" name=\"password\">
        Password</p>
      <p>
      <input type=\"text\" name=\"genre\" value=\"".$t[genre]."\">
        Style/Genre</p>
      <p>
        <input type=\"text\" name=\"land\" value=\"".$t[land]."\">
      Country</p>
      <p>
        <input type=\"text\" name=\"by\ value=\"".$t[bynavn]."\">
        Town</p>
      <p>Profile text/Press release</p>
      <p>
        <textarea name=\"profil\" cols=\"30\" rows=\"12\" value=\"".$t[profil]."\"></textarea>
      </p>
      <p>&nbsp; </p>
      <p>
      <input name=\"userfile\" type=\"file\">
        (.jpg/.gif, 415 x 230, max.50 KB)</p>
        <p>
       
        <input type=\"submit\" value=\"".$etellerandet."\">
      </p>
    </form>
    ";}else{
    echo "acees denied. Try re-typing login and password";
    echo "<a href=\"band_pass_1.htm\"> BACK </a>";
}
}    //<input name="" type="hidden" value="$etellerandet">
?>
Avatar billede lauer Nybegynder
20. maj 2003 - 10:35 #9
du har stadig ikke rettet den fejl som jeg lige skrev.

if(userstatus == "kendt")
    {
    ($t = mysql_fetch_assoc ($result));
    $etellerandet="opdater";
    }
    else if (userstatus =="ok")
    {
    $etellerandet="submit";
    }   
skal være

if($userstatus == "kendt")
    {
    ($t = mysql_fetch_assoc ($result));
    $etellerandet="opdater";
    }
    else if ($userstatus =="ok")
    {
    $etellerandet="submit";
    }
Avatar billede monir Nybegynder
20. maj 2003 - 10:45 #10
Jeg har rettet den fejl du påpegede, og nu virker min knap tilsyneladende som den skal. Nu er det imidlertid mine udtræk som igen ikke virker...Jeg forstår det simpelthen ikke???????????????
Avatar billede monir Nybegynder
20. maj 2003 - 10:52 #11
Og derudover kommer der kun en hvid blank side til syne hvis $userstatus er == ok... Meget mystisk
Avatar billede lauer Nybegynder
20. maj 2003 - 10:59 #12
prøv lige at læse din kode en gang igennem. Evt skrive den forfra. Den er meget rodet. Så tror jeg at du finder nogle småfejl :)
Avatar billede monir Nybegynder
20. maj 2003 - 11:20 #13
Jeg har ikke fundet nogen fejl i koden...Den er heller ikke så rodet her hos mig. Den ser sådan ud på grund af copy-paste
Avatar billede lauer Nybegynder
20. maj 2003 - 11:33 #14
hvad med ($t = mysql_fetch_assoc ($result)); det giver da ingen mening.
(du har også mysql_fetch_assoc() 2 steder.
Avatar billede monir Nybegynder
20. maj 2003 - 11:49 #15
$t giver mening da det er den varibel, jeg laver mit databaseudtræk med. Du havde dog ret i at den ikke skulle stå to gange. Jeg har fjernet det den sidste gang, og ladet whileløkken løbe helt til slutningen af if-sætningen, og nu virker alle mine udtræk, på nær $t[profil] samt min $etellerandet variable.
Avatar billede lauer Nybegynder
20. maj 2003 - 11:54 #16
Hvis du prøver at læse din kode igen.. så vil du kunne se fejlene. Det er simpelhen fordi du sjusker for meget, og tror at det virker fint.
Avatar billede monir Nybegynder
20. maj 2003 - 12:26 #17
Jeg har ryddet op i min kode og gjort den præsentabel, men kun funet en enkelt fejl.... Jeg kan stadig ikke få $userstatus==ok til at virke
Avatar billede lauer Nybegynder
20. maj 2003 - 12:35 #18
Jeg vil godt se hvad du så har fundet frem til

Kunne du evt. smide det i en .phps fil, så det er lidt lettere at læse sourcen. F.eks. på www.pastebin.com
Avatar billede monir Nybegynder
20. maj 2003 - 12:58 #19
Det med phps-filen har jeg ikke prøvet før, og har ikke tid til at sætte mig ind i det, da jeg er igang med opgave, så du må nøjes med en rodet men revalueret udgave, samt point:
       
        while ($t = mysql_fetch_assoc ($result))
        {
        $bandnavn_db = $t['bandnavn'];
        $genre_db = $t['genre'];
        $land_db = $t['land'];
        $bynavn_db = $t['bynavn'];
        $profil_db = $t['profil'];
        }
        if (($bandnavn=="rastapopoulus") && ($password=="tintin")){$userstatus = "ok";}
       
        elseif($bandnavn_db == $bandnavn){$userstatus = "kendt";}
       
        else{$userstatus = "falsk";}         
       
if (($userstatus == "kendt") || ($userstatus == "ok"))
{
    if($userstatus == "kendt")
    {
    $etellerandet="update";
    }
    elseif ($userstatus == "ok")
    {
    $etellerandet="submit";
    }
    echo"
    <form enctype=\"multipart/form-data\" action=\"smidband.php\" method=\"post\">
         
        <p>
        <input type=\"text\" name=\"bandnavn\" value=\"".$bandnavn_db."\">
        Bandname
        </p>
       
        <p>
        <input type=\"password\" name=\"password\">
        Password
        </p>
       
          <p>
          <input type=\"text\" name=\"genre\" value=\"".$genre_db."\">
        Style/Genre
        </p>
       
          <p>
        <input type=\"text\" name=\"land\" value=\"".$land_db."\">
          Country
        </p>
       
          <p>
        <input type=\"text\" name=\"by\" value=\"".$bynavn_db."\">
        Town
        </p>
       
          <p>
        Profile text/Press release
        </p>
       
          <p>
        <textarea name=\"profil\" cols=\"30\" rows=\"12\">$profil_db</textarea>
          </p>
       
          <p>
          <input name=\"userfile\" type=\"file\">
        (.jpg/.gif, 415 x 230, max.50 KB)
        </p>
       
        <p>
        <input type=\"submit\" value=\"".$etellerandet."\">
          </p>
       
        </form>
       
        ";}
        else{
        echo "acees denied. Try re-typing login and password";
        echo "<a href=\"band_pass_1.htm\"> BACK </a>";
}
    //<input name="" type="hidden" value="$etellerandet">
?>
Avatar billede lauer Nybegynder
20. maj 2003 - 13:09 #20
if (($bandnavn=="rastapopoulus") && ($password=="tintin")){$userstatus = "ok";}
       
        elseif($bandnavn_db == $bandnavn){$userstatus = "kendt";}
       
        else{$userstatus = "falsk";}

det kan kun blive en af de værdier, når det er elseif...
Hvis du vil have flere værdier skal du bruge switch ... www.php.net/switch

det eneste du skal gøre med .phps er at omdåbe filen fra .php til .phps, og så bliver kildekoden vist i stedet for at koden bliver udført.
Avatar billede monir Nybegynder
20. maj 2003 - 13:40 #21
Jeg skal heldigvis kun bruge en værdi(tror jeg), så dette her skulle være godt nok....
1000 tak for hjælpen.
Har du fået dine point.
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