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">'; }
Annonceindlæg fra Deloitte
31. marts 2007 - 16:21
#1
jeg vil helst undgå en tjek boks hvis det er muligt
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.
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> </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"; ?>
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.
31. marts 2007 - 16:43
#5
den bliver er klaret når man logger ind.
31. marts 2007 - 16:46
#6
ja men du skal erklærere den inde i funktionen for at få adgang til den.
31. marts 2007 - 16:46
#7
prøv at smide en "global $_SESSION['brugernavn']; ind over: $brugernavn = $_SESSION['brugernavn'];
31. marts 2007 - 16:47
#8
hov, uden " foran selvfølgelig.
31. marts 2007 - 16:49
#9
kan også se at du ikke har smidt trim() ind i dine løkker...
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
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 ?
31. marts 2007 - 17:02
#12
og prøv også lige at rette alle dine "sqlinsert" til "mysql_query" ...
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 ?
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
31. marts 2007 - 17:56
#15
Fornavn = '$fornavn ' = Fornavn = '".$fornavn."' Efternavn = '$efternavn' = Efternavn = '".$efternavn."' osv osv, kan du følge mig ? :)
31. marts 2007 - 19:23
#16
hmm nej ikke lige tror jeg :( hvor erklare dem Fornavn = '$fornavn ' = Fornavn = '".$fornavn."' så mange gange (er noob) :)
31. marts 2007 - 19:28
#17
Fornavn = '$fornavn ' = Fornavn = '".$fornavn."' det er for at du kan se forskellen. :)
Slettet bruger
31. marts 2007 - 19:30
#18
Bare prøv med if ($_POST["Opret"] && $_POST["billed"])
01. april 2007 - 13:04
#19
hmmm det virker hellere ikke... den kommer ikke ned i den løkke
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
Vi tilbyder markedets bedste kurser inden for webudvikling