Avatar billede henrik6666 Nybegynder
05. maj 2005 - 18:18 Der er 15 kommentarer og
1 løsning

php self formular

Hvordan pokker laver man en PHP_SELF formular i php-version 4.3.11 ?
Avatar billede sukos Juniormester
05. maj 2005 - 18:20 #1
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">

???????????
Avatar billede sukos Juniormester
05. maj 2005 - 18:21 #2
Eller, hvis du har nogle getvariabler i adresselinien:
<form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="post">
Avatar billede henrik6666 Nybegynder
05. maj 2005 - 18:44 #3
Kan du ikke lige skrive hele formularen for det er variablerne jeg har lidt problemer med at php'en husker ..

<form method=post action="<? echo $_SERVER["PHP_SELF"]; ?>"> - problemet ligger så ikke her !
Avatar billede sukos Juniormester
05. maj 2005 - 18:54 #4
Brug altid gerne ' eller "
<form method="post" action="<? echo $_SERVER["PHP_SELF"]; ?>">

For at få fat i de felter som du har lavet til formen, så brug $_POST, nu når det post og ellers $_GET hvis det er get, altså for method


<form method="post" action="<? echo $_SERVER["PHP_SELF"]; ?>">
Navn: <input type="name"><br>
Alder: <input type="age"><br>
<input type="submit" value="Vis">
</form>

<?php
if(isset($_POST["name"], $_POST["age"])) {
echo $_POST["name"] ." - ". $_POST["age"];
}
?>


På servere med register_globals sat til on, kan du godt bruge
<?php
if(isset($name, $age)) {
.........

Men for at sige det mildt, så er det dumt!
Avatar billede henrik6666 Nybegynder
05. maj 2005 - 18:57 #5
register_globals er sat til off men jeg prøver lige noget af det sidste du skrev :-)
Avatar billede henrik6666 Nybegynder
05. maj 2005 - 19:15 #6
Jeg kommer ingen vegne ! Har du lyst til at kikke hele scriptet igennem ?
Avatar billede henrik6666 Nybegynder
05. maj 2005 - 19:40 #7
Det er en Poll jeg lavede for et stykke tid siden som virkede i php version 4.2.x men efter et webhotel skift lavede jeg den om til at virke i php version 4.0.6 da det åbenbart var den professionelle version webhotellet kunne tilbyde ;-) Nu her et år efter har jeg så skiftet til B-One hvor php versionen hedder 4.3.11 ! Du kan sikkert få dig en griner eller 2 af koderne men jeg er ikke prof ;-) Det vigtigste er dog at det virker dog ikke i 4.3.11

<html>
<head>
<style>
body {margin-top: 0px; margin-left: 0px;}

table {
  font-family: "Arial, Helvetica, sans-serif";
  font-size:12px;
  font-style:normal;
  font-weight:bold;
  text-transform:default;
  color:#B4B4B4;
  background-color:transparent;
}

.gul{
  font-family: "Arial, Helvetica, sans-serif";
  font-size:12px;
  font-style:normal;
  font-weight:bold;
  text-transform:default;
  color:#FFCC00;
  background-color:transparent;
}
</style>
<title>Poll ..</title></head>
<body bgcolor="#000A13" scrolling="no">
<script language=JavaScript>
var img1 = new Image(100,21);
img1.src = "poll/unselect.gif";
var img2 = new Image(100,21);
img2.src = "poll/selected.gif";
function over() {
  event.srcElement.src = img2.src;
}
function out() {
  event.srcElement.src = img1.src;
}
</script>
<?php
$connection = mysql_connect("localhost","xxxxxx","xxxxxx");
mysql_select_db("xxxxxx", $connection);
?>
<?php
if ($_post["action"] == "update"){

$svar1 = $_post['svar1'];
$svar2 = $_post['svar2'];
$svar3 = $_post['svar3'];

$result = mysql_query("select nr,id,svar1,svar2,svar3 from poll where nr = '1'");
$row    = mysql_fetch_array($result);

echo "<div align=\"center\"><table width=\"190\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
echo "<td width=\"190\" height=\"50\" colspan=\"2\"><div align=\"center\"><span class=\"gul\">";
echo "poll spørgsmål ?";
echo "</span></div></td></tr><tr><td width=\"40\" height=\"50\"><div align=\"center\">$row[svar1] -</div></td>";
echo "<td width=\"150\">svar 1</td></tr><tr><td height=\"50\"><div align=\"center\">$row[svar2] -</div></td>";
echo "<td>svar 2</td></tr><tr> <td height=\"50\"><div align=\"center\">$row[svar3] -</div></td>";
echo "<td>svar 3</td></tr></table></div>";
?>

<?php
if ($nytsvar == 1) {
$faktor1 =$row[svar1] + $nytsvar;
$faktor2 =$row[svar2] + $nytsvar - 1;
$faktor3 =$row[svar3] + $nytsvar - 1;
}

if ($nytsvar == 2) {
$faktor1 =$row[svar1] + $nytsvar - 2;
$faktor2 =$row[svar2] + $nytsvar - 1;
$faktor3 =$row[svar3] + $nytsvar - 2;
}

if ($nytsvar == 3) {
$faktor1 =$row[svar1] + $nytsvar - 3;
$faktor2 =$row[svar2] + $nytsvar - 3;
$faktor3 =$row[svar3] + $nytsvar - 2;
}

mysql_query("update poll set svar1 = '$faktor1' , svar2 = '$faktor2' , svar3 = '$faktor3' where nr = '1'");
} else {
?>

<form method=post action="<? echo $_SERVER["PHP_SELF"]; ?>">
<div align="center">
  <table width="190" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="190" height="50" colspan="2"><div align="center"><span class="gul">Poll
            sp&oslash;rgsm&aring;l ?</span></div></td>
    </tr>
    <tr>
      <td width="40" height="50"><div align="center">
      <INPUT TYPE=radio NAME=nytsvar value=1 style="display:none">
        <INPUT type=image src="poll/unselect.gif" NAME=nytsvar1 value=1 onmouseover="over()" onmouseout="out()" style="cursor: default" onClick="this.form.nytsvar[0].checked=true;this.form.submit()">
      </div>
      </td>
        <td width="150">svar 1</td>
    </tr>
    <tr>
      <td height="50">
      <div align="center">
      <INPUT TYPE=radio NAME=nytsvar value=2 style="display:none">
        <INPUT type=image src="poll/unselect.gif" NAME=nytsvar2 value=1 onmouseover="over()" onmouseout="out()" style="cursor: default" onClick="this.form.nytsvar[1].checked=true;this.form.submit()">
      </div>
      </td>
        <td>svar 2</td>
    </tr>
    <tr>
      <td height="50">
      <div align="center">
      <INPUT TYPE=radio NAME=nytsvar value=3 style="display:none">
        <INPUT type=image src="poll/unselect.gif" NAME=nytsvar3 value=1 onmouseover="over()" onmouseout="out()" style="cursor: default" onClick="this.form.nytsvar[2].checked=true;this.form.submit()">
      </div>
      </td>
        <td>svar 3</td>
    </tr>
  </table>
  </div>
<input type=hidden name=action value=update>
</FORM>
<?
}
?>
</body>
</html>
Avatar billede henrik6666 Nybegynder
05. maj 2005 - 19:44 #8
$HTTP_POST_VARS er udskiftet med $_post - eneste jeg umiddelbart kunne læse mig til at jeg skulle gøre ved php version skiftet !
Avatar billede sukos Juniormester
05. maj 2005 - 21:01 #9
Kikker ikke lige din kode igennem nu,(og, nej, jeg griner ikke! ==:O] ), men prøv at starte med at udskifte $_post med $_POST
Avatar billede sukos Juniormester
05. maj 2005 - 21:03 #10
Og så ligger der vist et script på azero.dk, som kan smides i toppen, og så vil det funke igen.!!!
Men kod hellere rigtigt, fremfor alternativer! :O)
Avatar billede sukos Juniormester
06. maj 2005 - 09:09 #11
Avatar billede henrik6666 Nybegynder
06. maj 2005 - 11:59 #12
Scriptet har ingen effekt desuden kan man hos B-One selv aktivere om man vil have register_globals on eller off. Jeg har brugt scriptet på 2 andre domæner hvor register_globals også var off.

Jeg tror det handler om at videreføre variabler til næste side som tilsyneladende skal gøres på en anden måde med php version 4.3.11 og måske andre versioner også men lige præcis hvordan har jeg svært ved at hitte ud af selvom jeg har surfet rundt på www.php.net mange gange !

Nogen der hjælpe ? Evt med link eller andre forslag ?
Avatar billede henrik6666 Nybegynder
06. maj 2005 - 13:34 #13
Nå men det virker alligevel fint med 4.3.11 ;-) og dog ! Det virker som om det er her den er gal :

<INPUT TYPE=radio NAME=nytsvar value=2 style="display:none">
        <INPUT type=image src="poll/unselect.gif" NAME=nytsvar2 value=1 onmouseover="over()" onmouseout="out()" style="cursor: default" onClick="this.form.nytsvar[1].checked=true;this.form.submit()">
Avatar billede sukos Juniormester
06. maj 2005 - 13:45 #14
Det er jo noget javscript noget..............
Avatar billede henrik6666 Nybegynder
06. maj 2005 - 14:19 #15
Måske .. hos B-one viderefører den "tomme" variabler og billederne vises men hos Web10 overføres variabelværdien men billederne select.gif og unselect.gif vises ikke ?!?

På www.php.net kan jeg ikke finde andet end dette :
IMAGE SUBMIT variable names
When submitting a form, it is possible to use an image instead of the standard submit button with a tag like:

<input type="image" src="image.gif" name="sub" />

When the user clicks somewhere on the image, the accompanying form will be transmitted to the server with two additional variables, sub_x and sub_y. These contain the coordinates of the user click within the image. The experienced may note that the actual variable names sent by the browser contains a period rather than an underscore, but PHP converts the period to an underscore automatically.
Avatar billede henrik6666 Nybegynder
08. maj 2005 - 11:04 #16
lukker
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