Avatar billede kimmys Nybegynder
16. februar 2005 - 00:06 Der er 24 kommentarer og
1 løsning

switch($side) virker ikke på serveren

Jeg har lige skiftet til en anden server og nu virker dette script ikke mere:

<?php
    if($viskilde == 1) highlight_file(__FILE__);
?>
<html>
<head>
<title>Min anden PHP</title>
</head>
<body>
<h1>Her er min side</h1>
<p><a href="test1.php">index</a> <a href="test1.php?side=1">link 1</a> <a href="test1.php?side=2">link 2</a> <a href="test1.php?side=3">link 3</a>
<p>Her er noget statisk tekst</p>
<?php
    switch($side) {
        case 1: include("side1.html"); break;
        case 2: include("side2.html"); break;
        case 3: include("side3.html"); break;
        default: echo "Du befinder dig på forsiden.";
    }
?>
<p>Copyright &copy; En eller anden<br>
<a href="test1.php?viskilde=1">Vis PHP</a></p>
</body>
</html>

på denne side virker det ikke
http://www.haddaway.dk/index.php

og på denne side gør det
http://subir.users.whitehat.dk/index.php?

hvad kan være fejl.. er det en indstilling?
Avatar billede Slater Ekspert
16. februar 2005 - 00:15 #1
.. prøv med $_GET['side'] i stedet for $side... det kommer an på PHP versionen om det andet virker.
Avatar billede kimmys Nybegynder
16. februar 2005 - 00:17 #2
det er noget af det nyeste PHP

får denne fejl nu:
Parse error: parse error, unexpected T_CASE in /home/subir/webdir/haddawy.dk/index.php on line 83
Avatar billede kimmys Nybegynder
16. februar 2005 - 00:19 #3
sorry... var mig der havde skrevet forkert.. tror det virker nu
Avatar billede gammelhat Nybegynder
16. februar 2005 - 00:23 #4
Forskellen skyldes helt præcis denne indstilling http://dk.php.net/register_globals
Avatar billede kimmys Nybegynder
16. februar 2005 - 00:26 #5
Kan I så forklare hvorfor Min Shout box ikke virker? den er også på forsiden til venstre..
Avatar billede Slater Ekspert
16. februar 2005 - 00:37 #6
Til højre, mener du ikke? Og det er jo rimelig umuligt at svare på, uden at kunne se din PHP-kode.
Avatar billede kimmys Nybegynder
16. februar 2005 - 00:41 #7
den del der er på hjemmeside:

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  <tr>
    <td width="100%" height="6"></td>
  </tr>
  <tr>
    <td width="100%"><?php include("onlyshout.txt"); ?>
&nbsp;</td>
  </tr>
  <tr>
    <td width="100%" height="6"></td>
  </tr>
</table>
<table border="2" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#9CADB5" width="100%" bgcolor="#EEEEEE" background="Pic/BG/Nyheds_BG.gif">
  <tr>
    <td width="100%">
<div align="center">
  <center>
<p style="margin-top: 0; margin-bottom: 0">Skriv en kort besked:</p>
<table style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0"><td class=main>
<form method="POST" action="shout.php">
<p>Navn :</p>
  </td><td><input size="15" maxlength="15" type="text" name="name"></td></tr><tr><td class=main>
Besked :</td><td><input size="15" maxlength="120" type="text" name="message"></td></tr><tr><td class=main>
Url :</td><td><input size="15" maxlength="25" type="text" name="url" value="http://www."></td></tr><tr><td class=main>
Email :</td><td>
    <input size="15" maxlength="25" type="text" name="email" value="Din@mail.dk"></td></tr><tr><td colspan=2 class=main>
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#9CADB5" width="100%">
  <tr>
    <td width="100%"><p align="center">
<input type="submit" value="Shout" style="font-size: 9 pt">&nbsp;&nbsp;&nbsp;<input type="reset" value="Reset" style="font-size: 9 pt"><br>
<a href=java script:location.reload()><strong>Reload</strong></a></p></td>
  </tr>
</table>
</table>
<table bordercolor="#008000" style="border-collapse: collapse" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align:center;cursor:pointer;vertical-align:middle;" colspan="2" onClick="foldIndUd('Shout');" onMouseOver="this.style.backgroundColor='';window.status='Click for at folde ud';" onMouseOut="this.style.backgroundColor=''; window.status='';">
Klik for at folde <b>smilies</b> ind/ud</td>
</tr>
<tr>
<td colspan="2" class="tabel" bordercolor="#008000">
<div id="Shout" style="display: none;margin:0px;">
<img src='s/smile.gif'>  :) <br>
<img src='s/smil2.gif'>  8)<br>
<img src='s/wacko.gif'>  :wacko:<br>
<img src='s/unsure.gif'>  :huh:<br>
<img src='s/toung.gif'>  :P<br>
<img src='s/suspici.gif'>  :suspicious:<br> 
<img src='s/wink.gif'>  :hehe:<br>
<img src='s/worr.gif'>  :worried:<br>
<img src='s/weird.gif'>  :eek:<br>
<img src='s/sad.gif'>  :(<br>
<img src='s/sad-2.gif'>  :sad:<br>
<img src='s/sick.gif'>  :X<br>
<img src='s/rolleye.gif'>  :rolleyes:<br>
<img src='s/push.gif'>  :push:<br>
<img src='s/oh.gif'>  :0<br>
<img src='s/ama.gif'> :o<br>
<img src='s/nuts.gif'>  8()<br>
<img src='s/notrust.gif'>  :|<br>
<img src='s/mad.gif'>  :mad:<br>
<img src='s/laugh.gif'>  :lol:<br>
<img src='s/huh.gif'>  :huh:<br>
<img src='s/embarr.gif'> :blush:<br> 
<img src='s/crying.gif'>  :cry:<br>
<img src='s/cool.gif'>  :cool:<br>
<img src='s/confu.gif'> :confused: <br>
<img src='s/che.gif'>  :cheese:<br>
<img src='s/blink.gif'>  :blink:<br>
<img src='s/bigsm.gif'>  :big:<br>
<img src='s/amuse.gif'>  :amuse:<br></div>
</td>
</tr>
</table>
<table bordercolor="#008000" style="border-collapse: collapse" cellpadding="0" cellspacing="0">
<tr>
<td style="text-align:center;cursor:pointer;vertical-align:middle;" colspan="2" onClick="foldIndUd('Shout');" onMouseOver="this.style.backgroundColor='';window.status='Click for at folde ud';" onMouseOut="this.style.backgroundColor=''; window.status='';">
<p style="margin-top: 0; margin-bottom: 0">Klik for at folde <b>smilies</b> ind/ud</td>
</tr>
</table>
  </center>
</div></td>
  </tr>
</table>

og shout.php filen:

<?php
// Thank You For Downloading Only Shout - ShoutBox
// Coded By : Umut Kale - www.onlyphp.com
// The data file where messages are stored.
$dataf = "onlyshout.txt";

// Max length must be edited in onlyshout.php also.
$length = 70;

// Number of messages shown.
$comments = 12;

//------------------------------
//------------------------------
//-------- Do Not Edit ----------
// ------------------------------
// ------------------------------

$textsize = 4;
if (!$name)
{ $name = "||"; }
else $name .= ":";

$name = str_replace("/\/","edited",$name);
$name = preg_replace("/>/","&gt;",$name);
$name = preg_replace("/</","&lt;",$name);
$name = preg_replace('/"/','',$name);
$email = preg_replace('/"/','',$email);
$message = preg_replace('/"/','',$message);
$url = preg_replace('/"/','',$url);
$name = str_replace("onmouse","",$name);
$email = str_replace("onmouse","",$email);
$message = str_replace("onmouse","",$message);
$url = str_replace("onmouse","",$url);
$message = preg_replace("/>/","&gt;",$message);
$message = preg_replace("/</","&lt;",$message);
$url = preg_replace("/>/","&gt;",$url);
$url = preg_replace("/</","&lt;",$url);
$url = str_replace("echo","****",$url);
$url = str_replace("/\/","edited",$url);
$email = preg_replace("/>/","&gt;",$email);
$email = str_replace("echo","****",$email);
$email = str_replace("/\/","edited",$email);
$email = preg_replace("/</","&lt;",$email);
$url = str_replace("/\/","edited",$url);
$message = str_replace("/\/","edited",$message);
$message = str_replace("ASSHOLE","****",$message);
$message = str_replace("?php","****",$message);
$message = str_replace("?php","****",$message);
$message = str_replace("FUCK","****",$message);
$name = str_replace("echo","****",$name);
$message = str_replace("echo","****",$message);
$message = str_replace("fuck","****",$message);
$message = str_replace("bitch","****",$message);
$message = str_replace("asshole","****",$message);
$message = str_replace("cunt","****",$message);
$message = str_replace("bullshit","****",$message);
$message = str_replace("shit","****",$message);
$message = str_replace(":)","<img src='s/smile.gif'>",$message);
$message = str_replace(":8","<img src='s/smil2.gif'>",$message);
$message = str_replace(":wacko:","<img src='s/wacko.gif'>",$message);
$message = str_replace(":huh:","<img src='s/unsure.gif'>",$message);
$message = str_replace(":P","<img src='s/toung.gif'>",$message);
$message = str_replace(":suspicious:","<img src='s/suspici.gif'>",$message);
$message = str_replace(":hehe:","<img src='s/wink.gif'>",$message);
$message = str_replace(":worried:","<img src='s/worr.gif'>",$message);
$message = str_replace(":eek:","<img src='s/weird.gif'>",$message);
$message = str_replace(":(","<img src='s/sad.gif'>",$message);
$message = str_replace(":sad:","<img src='s/sad-2.gif'>",$message);
$message = str_replace(":x","<img src='s/sick.gif'>",$message);
$message = str_replace(":rolleyes:","<img src='s/rolleye.gif'>",$message);
$message = str_replace(":push:","<img src='s/push.gif'>",$message);
$message = str_replace(":0","<img src='s/oh.gif'>",$message);
$message = str_replace(":o","<img src='s/amazed.gif'>",$message);
$message = str_replace("8()","<img src='s/nuts.gif'>",$message);
$message = str_replace(":|","<img src='s/notrust.gif'>",$message);
$message = str_replace(":mad:","<img src='s/mad.gif'>",$message);
$message = str_replace(":lol:","<img src='s/laugh.gif'>",$message);
$message = str_replace(":huh:","<img src='s/huh.gif'>",$message);
$message = str_replace(":blush:","<img src='s/embarr.gif'>",$message);
$message = str_replace(":cry:","<img src='s/crying.gif'>",$message);
$message = str_replace(":cool:","<img src='s/cool.gif'>",$message);
$message = str_replace(":confused:","<img src='s/confu.gif'>",$message);
$message = str_replace(":cheese:","<img src='s/che.gif'>",$message);
$message = str_replace(":blink:","<img src='s/blink.gif'>",$message);
$message = str_replace(":big:","<img src='s/bigsm.gif'>",$message);
$message = str_replace(":amuse:","<img src='s/amuse.gif'>",$message);
    $message = stripslashes($message);
    $name = stripslashes($name);
    $email = stripslashes($email);
    $url = stripslashes($url);
$wrap = intval((35)/($textsize-2))+1;
$message = wordwrap($message, $wrap, ' ', 1);
$comfile = file($dataf);if ($message != "") {$df = fopen ($dataf, "w");$message = stripslashes($message);fwrite ($df, "<b><i><a href=mailto:$email>@</a> <a href=$url target=_blank>$name</a></i></b> $message\n<br>");for ($i = 0; $i < $comments; $i++) {fwrite ($df, $comfile[$i]);}fclose($df);}
Header("Location: $HTTP_REFERER");
?>
Avatar billede Slater Ekspert
16. februar 2005 - 00:47 #8
Det er jo det samme ... $name, $message og $url eksisterer ikke - de hedder $_POST['name'], $_POST['message'] og $_POST['url'] ..
Avatar billede kimmys Nybegynder
16. februar 2005 - 00:48 #9
Har forresten også et andet problem nu..
http://www.haddaway.dk/Sider/Kontakt/kontakformt.php

Kode:

<link REL="STYLESHEET" type="text/css" HREF="../../style.css">
<body background="../../Pic/BG/Haddaway_info_BG2.gif">
<div align="center">
  <center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="24%" id="AutoNumber1" height="208">
  <tr>
    <td width="58%" height="189">
    <div align="center">
<center>
<table border="0" width="284" height="303" cellspacing="0" style="border-collapse: collapse" cellpadding="0">
  <tr>
    <td height="216" valign="top" width="284"> <form action="<?php echo $PHP_SELF; ?> " method="POST">
        <div align="center"><font color="#000000">Dit navn:<br>
          </font>
          <font color="#FFFFFF">
          <input type="text" class="but" name="navn" size="20"></font><font color="#000000">
          <br>
          <br>
          Din email adresse:<br>
          </font>
          <font color="#FFFFFF">
          <input type="text" class="but" name="epost" size="20"></font><font color="#000000">
          <br>
          <b><br>
          </b>Emne:<b><br>
          </b>
          </font>
          <font color="#FFFFFF">
          <input type="text" class="but" name="emne" size="20"></font><font color="#000000">
          <br>
          <b><br>
          </b>Besked:<br>
          <textarea wrap="on" class="but" rows="5" cols="29" name="tekst"></textarea>
          <br>
          </font>
          <font color="#FFFFFF">
          <input type="submit" class="button" value="Send Besked" name="send"></font><font color="#000000">
          </font>
          <font color="#FFFFFF">
          __</font><font color="#000000"> </font>
          <font color="#FFFFFF">
          <input type="reset" class="button" value="Slet Besked" name="reset"><font color="#000000">
          </font></font>
        </div>
        <div align="center"><font color="#000000">
          <br>

          <b><font style="font-size: 9pt">

          <?php

if ($send) {
    function tilbage($meddelelse) {
        echo  "$meddelelse\n";
        echo  "</body></html>\n";
        exit;
    }

    if (!$navn) tilbage( "! Du har glemt at skrive dit navn !");
    if (!$epost) tilbage( "! Du har glemt at skrive email adresse !");
    if (!$tekst) tilbage( "! Du har glemt at skrive noget beskedfeltet !");

  $tekst = "$tekst ";


    mail( "kim-s@c.dk", "Mail fra Club Haddaway - Emne: $emne, $navn",
"Navn: $navn
Mail: $epost
Emne: $emne
Tekst: $tekst", "From: $epost\nX-Mailer: http://$HTTP_HOST$REQUEST_URI");
echo  "Vi har modtaget din email, og svarer tilbage hurtigst muligt!\n";
}
?>
          </font></b>
        </div>
      </form></td>
  </tr>
</table>
    </center>
    </div>
    </td>
  </tr>
  </table></center>
</div>


Skal nok give flere point hvis I kan klare de ekstra spørgsmål!! =)
Avatar billede kimmys Nybegynder
16. februar 2005 - 00:49 #10
nå for satan... Har ikke så meget forstand på php.. men det er da surt de har ændret det!
Avatar billede kimmys Nybegynder
16. februar 2005 - 01:00 #11
"Det er jo det samme ... $name, $message og $url eksisterer ikke - de hedder $_POST['name'], $_POST['message'] og $_POST['url'] .."

Det vil sige at alle de steder der står noget med $name, $message og $url skal jeg skifte ud med det der svare til det du har skrevet $_POST['name'], $_POST['message'] og $_POST['url'] ..
Avatar billede kimmys Nybegynder
16. februar 2005 - 01:02 #12
og $email med $_POST['email'] osv ikke
Avatar billede alister_crowley Nybegynder
16. februar 2005 - 01:02 #13
kimmys Læs denne her: http://www.eksperten.dk/artikler/57

Det er MUST viden !
Avatar billede kimmys Nybegynder
16. februar 2005 - 01:08 #14
Sorry.. som sagt så har jeg ikke så meget viden inden for PHP.. men kan godt se det der er lidt nememere.. tester lige!
Avatar billede kimmys Nybegynder
16. februar 2005 - 01:24 #15
alister_crowley:
hvorfor virker det så ikke?

Har sat denne kode ind på index.php siden

<?php

/* Funktion der 'sætter' register_globals = Off */
/* Void unregister_globals() */

function unregister_globals()

{
    $COOKIE = $_COOKIE;
    $ENV = $_ENV;
    $FILES = $_FILES;
    $GET = $_GET;
    $POST = $_POST;
    $REQUEST = $_REQUEST;
    $SERVER = $_SERVER;


    if (isset($_SESSION))
    {
        $SESSION = $_SESSION;
    }

    foreach ($GLOBALS as $key => $value)
    {
        if ($key != 'GLOBALS')
        {
            unset($GLOBALS[$key]);
        }
    }

    $_COOKIE = $COOKIE;
    $_ENV = $ENV;
    $_FILES = $FILES;
    $_GET = $GET;
    $_POST = $POST;
    $_REQUEST = $REQUEST;
    $_SERVER = $SERVER;

    if (isset($SESSION))
    {
        $_SESSION = $SESSION;
    }
}

/* Husk at bruge funktionen */

unregister_globals();

?>

og har også sat den ind på shout.php filen!
Avatar billede alister_crowley Nybegynder
16. februar 2005 - 01:35 #16
fordi det er ikke det du skal gøre. Du skulle bare læse artiklen, og forstå meningen med Register_globals.

Der er ingen nem omvej, du er nød til at kode det hele om til det optimale.
Avatar billede kimmys Nybegynder
16. februar 2005 - 01:37 #17
Jamen kan jeg ikke bare tilføje dem til listen

<?php

/* Funktion der 'sætter' register_globals = Off */
/* Void unregister_globals() */

function unregister_globals()

{
    $COOKIE = $_COOKIE;
    $ENV = $_ENV;
    $FILES = $_FILES;
    $GET = $_GET;
    $POST = $_POST;
    $REQUEST = $_REQUEST;
    $SERVER = $_SERVER;

med fx

    $name = $_name;
    $email = $_email;
    $message = $_message;
    $url = $_url;
    $wrap = $_wrap;

? burde det så ikke virke?
Avatar billede alister_crowley Nybegynder
16. februar 2005 - 01:43 #18
nærmere..

$name = $_POST['name']; osv...
Avatar billede kimmys Nybegynder
16. februar 2005 - 01:58 #19
fuck mand det tager lang tid!!

Kommer I ikke med nogle svar :)
Avatar billede alister_crowley Nybegynder
16. februar 2005 - 04:37 #20
ikke mig ihvertfald, jeg samler ikke på points.

Og ja, det tager lang tid. Jeg lavede engang en webshop før jeg lærte det... det var lige flere tusinde linjer kode som skulle laves om.

Faktisk nemmest at begynde helt forfra og lave bedre struktureret og flotter kode :)
Avatar billede Slater Ekspert
16. februar 2005 - 12:28 #21
Ja, det er besværligt, men som alister siger, kan du bare nøjes med at lave variablerne $name, $url osv i starten, og sætte dem til $name = $_POST['name'] etc.

Men det er en væsentlig sikkerhedsmæssig forbedring, da man ellers ville kunne "fake" en POST-variabel, ved at ændre querystringen.
Avatar billede kimmys Nybegynder
16. februar 2005 - 12:34 #22
hvordan kan det være at jeg har et andet script som er fuld af "$incpath"  "$screenparam" osv.. der virker?
Avatar billede milo Nybegynder
16. februar 2005 - 15:19 #23
fordi de variabler er defineret i et dokument, og derved ikke bliver sendt via POST eller GET data.
Avatar billede kimmys Nybegynder
17. februar 2005 - 19:39 #24
okay, så det er ikke alle steder jeg behøver at rette det? er lidt forvirret desværre!
Avatar billede Slater Ekspert
21. februar 2005 - 10:51 #25
Nej, du KAN nøjes med at sætte variablerne ...
Det gør du ved at skrive følgende i starten af din PHP kode (dvs. før nogle af variablerne bliver brugt, naturligvis)

$name = $_POST['name'];
$url = $_POST['url'];

...osv med de andre variabler.
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