Avatar billede need4speed Nybegynder
21. januar 2004 - 20:19 Der er 46 kommentarer og
3 løsninger

Ny standard

Jeg har fået vide at efter den nye standard skal man bruge $_POST[xxx] pga sikkerhedsmæssige årsager.

hvor skal jeg rette det henne?

<html>
<head>
<title>!</title>
<style type="text/css">
<!--
.kant {
    border: 1px outset #B7B7AC;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: normal;
    color: #000000;
}
-->
</style>
<style type="text/css">
<!--
a {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #000000;
}
a:visited {
    color: #666666;
    text-decoration: none;
}
a:hover {
    color: #666666;
}
a:active {
    color: #000000;
}
body {
    background-color: #F9F8F3;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<table border="0" width="391" cellpadding="4" cellspacing="8" style="background-image:url('bagside.gif'); background-repeat:no-repeat; background-attachment:fixed; background-position:100px 25px;">
  <tr>
    <td width="100%"><table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="370" valign="top">
            <p><a name="top"></a></p></td>
          <td></td>
        </tr>
        <tr>
          <td width="370">
            <p>&nbsp;</p></td>
          <td></td>
        </tr>
        <tr>
          <td valign="top">
            <table border="0" cellpadding="5" cellspacing="5">
              <tr>
                <td width="391">
                  <table border="0" width="100%" cellpadding="0" cellspacing="0">
                    <tr>
                      <td width="182" valign="top">
                        <table border="0" cellpadding="0" cellspacing="3" width="378">
                          <tr>
                            <td width="372" valign="top">
                              <?
                include("db.inc");           
  $result = mysql_query("select * from reklame where id = '$_POST[id]'");
  $row    = mysql_fetch_array($result);
                ?>
                              <p><font size="1" face="Verdana">
                                <input type="hidden" name="kon" value="<?=$row[kon]?>" size="20">
                              </font></p>
                              <p><font size="1" face="Verdana"><b>Navn:</b> <?echo("$row[navn]");?><br>
                                    <font size="1" face="Verdana"><font "face="Arial" size="1">
                                    <?

                        //her er Navn

if($row['kon'] == "kvinde"){

echo "<b>Sk&aring;l: </b> ".$row['skal']."<br>";

}

//

                        ?>
                                    </font></font> <b>Adresse:</b><?echo("$row[adresse]");?><br>
                                    <b>Postnr:</b> <?echo("$row[post]");?><br>
                                    <strong>Elever </strong>: <?echo("$row[elever]");?><br>
</font></p>
                              <p><font size="1" face="Verdana"><b>Beskrivelse</b></font> </p></td>
                          </tr>
                          <tr>
                            <td valign="top"><span class="style2"><?echo("$row[beskrivelse]");?></span></td>
                          </tr>
                      </table></td>
                    </tr>
                </table></td>
              </tr>
            </table>
            <p align="center"> &nbsp;
                <?
$path = "billeder/";
if (file_exists($path.$row[pic]) || $row[pic] != "") {?>
                <img src="<?=$path.$row[pic]?>" alt="">
                <? } ?>
            </p>
            <table border="0" width="391" cellpadding="0" cellspacing="13">
              <tr>
                <td width="367" height="13">
                  <p align="right"><a href="#top" target="_self"><img src="pilop.gif" width="12" height="13" border="0"></a></p></td>
              </tr>
          </table></td>
          <td></td>
        </tr>
        <tr>
          <td width="370">
            <p>&nbsp;</p></td>
          <td></td>
        </tr>
    </table></td>
  </tr>
</table>
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:20 #1
Siden virkede inden de slog rettighederne fra :(
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:24 #2
prøv at skifte:

  $result = mysql_query("select * from reklame where id = '$_POST[id]'");
  $row    = mysql_fetch_array($result);

til:

  $id    = $_POST['id'];
  $result = mysql_query("select * from reklame where id = '$id'");
  $row    = mysql_fetch_array($result);
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:26 #3
så får jeg en
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/webs/kantine/admin/showinfo.php on line 66
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:27 #4
ups vent lige
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:27 #5
den id... går ud fra du får den fra en form?
hvis du henter den fra adresse-linien, skal du bruge get.
-dvs at hvis du får den fra fx: index.php?id=343
er det:
$id    = $_GET['id'];
  $result = mysql_query("select * from reklame where id = '$id'");
  $row    = mysql_fetch_array($result);
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:27 #6
der kommer heller intet frem... via den metode det skyldes at global rights eller noget i den stil er blevet slået fra.
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:28 #7
jeg bruger selv $_GET og $_POST konstant.
du ér godt klar over hvornår du skal bruge post, og hvornår du skal bruge get, ikke?
-ellers er det hurtigt forklaret :)
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:28 #8
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:29 #9
okay, så er det GET du skal bruge
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:29 #10
hehe.. nej jeg ikke hvornår man skal bruge hvilket :( er total frustreret efter mit webhotel har lavet det nummer.
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:32 #11
prøv at gå ind på www.kantinereklame.dk/admin kode admin og taarn007
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:32 #12
hehe ja jeg kender det godt, mit webhotel gjorde det samme for ca ½ år siden.

okay.
Hvis du får dine data fra en form med ---> method=post <--- skal du bruge $_POST
hvis du får dine data fra en from med ---> method=get <--- (eller en form hvor method ikke er defineret, default er get, skal du bruge $_GET

Hvis du får dine data fra URL'en, som fx www.domain.dk/index.php?id?34234 skal du bruge $_GET - prøv at ændre method fra post til get i en form, så kan du se forskellen med det samme hvis du kigger i adresse-linien - for dér viser den alle data!
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:33 #13
ellers en pæn side du har der
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:35 #14
men i dette eksempel hvor man trykker på den øverste som hedder test, skal man jo bruge $_GET da den hiver infoen fra linket ik?
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:35 #15
btw: altid kald dine inc filer for inc.php -ellers kan koden deri læses direkte, fx:
http://www.kantinereklame.dk/admin/db.inc <--
.inc er ikke beskyttet ligesom .php er - bare en god vane :)
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:35 #16
tja... synes du virkelig har da lavet nogle som meget pænere men takker.
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:35 #17
jo, korrekt
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:36 #18
well mente ikke at den var vildt imponeret sådan grafisk, men den ser ud til at være okay pæn mht layout og farve-valg :) Kan godt se den er "under construction" lol
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:37 #19
hehe.. det er admin delen jeg arbejder på :) men har lavet noget flash til siden, det kan du få lov at se om lidt. Vil bare gerne have løst problemet.
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:38 #20
anyway hvis :
$id    = $_GET['id'];
  $result = mysql_query("select * from reklame where id='$id'");
  $row    = mysql_fetch_array($result);

ikke løser problemet, kan jeg desværre ikke hjælpe mere tror jeg...
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:38 #21
what... ja det er da vildt usikkert ellers.
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:40 #22
yes det virkede... arrhhh lækkert!
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:40 #23
glad for at kunne hjælpe :P
-normalt er det mig der henter hjælp herinde ;)
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:42 #24
Skal lige have hælp med et andet eksempel... her kommer dataen fra en post form, så skal submit siden se sådan her ud ik?

<table width="95%"  border="0" cellpadding="5" cellspacing="0" class="kant">
  <tr>
    <td bgcolor="#FFFFFF"><form name="form3" method="post" action="admintilfoj2.php">
        <p><font size="2" face="Verdana"><b>Rettelsen er blevet udf&oslash;rt korrekt </b></font></p>
        <p><font size="2" face="Verdana">Tilf&oslash;jet - Klik her for at komme </font><a href="adminret.php" target="_self"><font size="2" face="Verdana">tilbage</font></a><font size="2" face="Verdana"> </font><font size="1" face="Verdana"> </font><font size="1" face="Verdana"> </font></p>
        </form></td>
  </tr>
</table>
<?
// adminposr43.php
?>
<?php
include("db.inc");

mysql_query("update reklame set navn = '$_POST[navn]', city = '$_POST[city]', adresse = '$_POST[adresse]', post = '$_POST[post]', beskrivelse = '$_POST[beskrivelse]', elever = '$_POST[elever]', tlf = '$_POST[tlf]' where id = '$_POST[id]'") or die (mysql_error());


?>
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:47 #25
jo, det burde virke, selvom jeg personligt plejer noget i stil med:

<?php
include("db.inc");

$navn = $_POST['navn'];
$city = $_POST['city'];
$adresse = $_POST['adresse'];
$post = $_POST['post'];
$beskrivelse = $_POST['beskrivelse'];
$elever = $_POST['elever'];
$tlf = $_POST['tlf'];
$id = $_POST['id'];

mysql_query("update reklame set navn = '$navn', city = '$city', adresse = '$adresse', post = '$post', beskrivelse = '$beskrivelse', elever = '$elever', tlf = '$tlf' where id = '$id'") or die (mysql_error());
?>


-sådan mere for at danne mig et overblik over variablerne før jeg smider dem i databasen... men dit burde også virke fint.
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:48 #26
fandt ud af det.. manglede selffølgelig

$id    = $_GET['id'];
  $result = mysql_query("select * from reklame where id='$id'");
  $row    = mysql_fetch_array($result);
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:49 #27
Ok noget mere overskuelig måde du har sat det op på... :)
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:49 #28
ja okay, hvis id ikke er et hidden field i formen :)
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:53 #29
har lige den sidste version hvis du gider...
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:54 #30
<?php
include("db.inc");

mysql_query("delete from reklame where id = '$id'");
?>
<?
if ($submit) {
    mysql_query("DELETE FROM reklame WHERE id ='$id'");
    echo "<script> alert('slettet!'); </script>";
}
?>


<meta name="generator" content="Namo WebEditor v5.0(Trial)">
<style type="text/css">
<!--
.style1 {
    font-size: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
-->
</style>
<form name="form" action="<?=$PHP_SELF;?>" method="post" OnSubmit="return confirm('Er du sikker på, at du vil slette?');">
<table border="0" cellspacing="1" cellpadding="2" style="font-family:Verdana,serif; font-size:medium;">
<?
$query = mysql_query("SELECT * FROM reklame") or die(mysql_error());
$antal = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
?>
    <tr bgcolor="#ffffff">
        <td><input type="radio" name="id" value="<?=$row[id];?>"></td>

        <td width="200"><span class="style1">
        <?=$row[navn];?>
        </span> </td>
    </tr>
<?
}
?>

</table>
<br>
<input type="submit" name="submit" value="  slet  ">


</form>
<br>
        </font><font size="1" face="Verdana">
        </font></p>
      <p><font size="1" face="Verdana">

      </font></p>
    </form></td>
  </tr>
</table>
Avatar billede need4speed Nybegynder
21. januar 2004 - 20:55 #31
skal jeg så også lave en der hedder $query    = $_GET['query']; ??
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:56 #32
nej, kun når der er tale om data overført fra en anden side, eller hentet fra URL'en.
-medmindre du har et felt i din form der hedder query?
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:57 #33
første del:


<?php
$id = $_GET['id'];

include("db.inc");

mysql_query("delete from reklame where id = '$id'");
?>
<?
if ($submit) {
    mysql_query("DELETE FROM reklame WHERE id ='$id'");
    echo "<script> alert('slettet!'); </script>";
}
?>
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:59 #34
forresten bare af nysgerrighed... det der jeg lige skrev... sletter den ikke i databasen, og SÅ checker submit, og sletter igen? - burde den ikke checke submit først, og SÅ slette?
Avatar billede angelenglen Nybegynder
21. januar 2004 - 21:03 #35
-dvs noget i stil med:

<?php
$id = $_GET['id'];
include("db.inc");

if ($submit) {
    mysql_query("DELETE FROM reklame WHERE id ='$id'");
    echo "<script> alert('slettet!'); </script>";
}
?>


(det samme, men uden den der sletter inden submit er checket.)
Avatar billede need4speed Nybegynder
21. januar 2004 - 21:08 #36
måske skulle jeg lige tage backup men hele det script jeg postet er det jeg brugte før.
Avatar billede need4speed Nybegynder
21. januar 2004 - 21:12 #37
Men jo du har en point.. det ligner den sletter først og spørger og sletter igen.. lol
Avatar billede angelenglen Nybegynder
21. januar 2004 - 21:14 #38
hehe så har du sikkert bare været heldig at du ikke har trykket "slet" på noget du ikke ville af med ;) -for ellers skulle du nok opdage det når du trykkede "Fortryd" og det alligevel blev slettet ;-)
Avatar billede need4speed Nybegynder
21. januar 2004 - 21:15 #39
hehe ja lige præcis :) er der ikke andet som skal rettes i scriptet?
Avatar billede angelenglen Nybegynder
21. januar 2004 - 21:22 #40
ikke noget jeg sådan lige kan se...
Avatar billede need4speed Nybegynder
21. januar 2004 - 21:24 #41
Mangler hvis nogle ændringer til den sidste del

<?
$query = mysql_query("SELECT * FROM reklame") or die(mysql_error());
$antal = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
?>
Avatar billede angelenglen Nybegynder
21. januar 2004 - 21:26 #42
hvorfor? der er ingen variabler der der henter data fra hverken en anden side, eller url'en.... tror den er okay.
Avatar billede need4speed Nybegynder
21. januar 2004 - 21:27 #43
Nej det er der ikke, men den fjerne altså ikke den valgte profil.
Avatar billede angelenglen Nybegynder
21. januar 2004 - 21:30 #44
<?
$query = mysql_query("SELECT * FROM reklame") or die(mysql_error());
$antal = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
?>

den kode i sig selv gør ikke andet end at hente data ud af databasen og smide det idn i $row ?

anyway jeg er nødt til at gå nu :(
Håber du finder ud af det...
Avatar billede need4speed Nybegynder
21. januar 2004 - 21:32 #45
Men er ihvertfald blevet en del klogere.. tak for hjælpen!
Avatar billede angelenglen Nybegynder
22. januar 2004 - 00:48 #46
.......men du fik det da til at virke, ikke?
Hvis der er andet jeg skal gøre inden du accepterer et svar, må du sige til :)
Avatar billede need4speed Nybegynder
27. januar 2004 - 19:03 #47
Jo fik det til at virke og takker
Avatar billede angelenglen Nybegynder
27. januar 2004 - 23:47 #48
...............lukker du så snart?
Avatar billede need4speed Nybegynder
28. januar 2004 - 15:09 #49
Sorry troede faktisk jeg havde lukket det :P
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