Avatar billede mini41 Nybegynder
09. februar 2004 - 09:16 Der er 12 kommentarer og
1 løsning

Fejl ved brug af PHP på server

Hejsa, jeg har et lille problem som er følgende:

Jeg har en 2000 server kørende, hvorpå jeg har installeret PHP 4.3.4

Når jeg afvikler script får jeg altid samme fejl:
Undefined variable: action in C:\WWW\New Folder\blabla.php
Jeg har bare installeret PHP på serveren men skal jeg sætte et eller andet parameter i PHP'en ?


Denne fil kræver ikke understøttelse af MYSQL
Avatar billede erikjacobsen Ekspert
09. februar 2004 - 09:18 #1
HVis du bruger $action, skal du sikkert erstatte det med $_GET['action']
eller $_POST['action]  -  men det er svært at se uden koden.
Avatar billede sukos Juniormester
09. februar 2004 - 09:22 #2
en nem løsning, er også at sætte register_globals til On i php.ini

Men lad hellere være med det!
Lav hellere scripts som virker uden fejl, med register_globals = Off i php.ini
Avatar billede mini41 Nybegynder
09. februar 2004 - 09:28 #3
Problemet er at jeg får denne fejl uanset, hvad prograg jeg forsøger at køre.

Jeg vedlægger lige koden for det omtalte program:
Her får jeg fejlen i $mode, da det er den første variable.



<?
if ($mode == "opret") {

$navn = ereg_replace("<","&lt;",$navn);
$navn = ereg_replace(">","&gt;",$navn);

$email = ereg_replace("<","&lt;",$email);
$email = ereg_replace(">","&gt;",$email);

$icq = ereg_replace("<","&lt;",$icq);
$icq = ereg_replace(">","&gt;",$icq);

$besked = ereg_replace("<","&lt;",$besked);
$besked = ereg_replace(">","&gt;",$besked);

$besked = ereg_replace("(\n\r|\r\n)","<br>",$besked);

if (ereg_replace("[0-9]","",$icq) == "") {
    if ($besked == "") {
        Echo "<P align=center><FONT face=Tahoma size=2><STRONG>Du skal nok lige skrive en besked ikk</STRONG></FONT></P>";
    }
    else {
        if ($navn == "") {
            Echo "<P align=center><FONT face=Tahoma size=2><STRONG>Du skal nok lige skrive dit navn ikk</STRONG></FONT></P>.";
        }
        else {
            $fil = "tagwall.txt";
            $tid = strftime("%d %B %Y", getlastmod()+3600);
            $str  = "<tr><td colspan=\"2\"><hr size=\"1\"></td></tr>\n<tr><td><FONT face=Tahoma size=2>Tid:</td><td><FONT face=Tahoma size=2>$tid</td></tr>\n</tr>\n<tr><td><FONT face=Tahoma size=2>Navn:</td><td><FONT face=Tahoma size=2>$navn</td></tr>\n<tr><td>Email:</td><td><a href=\"mailto:$email\"><FONT face=Tahoma size=2>$email</a></td></tr>\n<tr><td><FONT face=Tahoma size=2>Icq:</td><td><a href=\"http://wwp.icq.com/scripts/search.dll?to=$icq\"><FONT face=Tahoma size=2>$icq</td></tr>\n<tr><td colspan=\"2\"><br><FONT face=Tahoma size=2>$besked</td></tr>\n";
            $fp = fopen($fil, r);
            if($fp) {
                $filArray = file($fil);
                $result = implode("", $filArray);
                $result = "$str$result";
                fclose($fp);
            }
            $fp = fopen($fil, w);
            if($fp) {
                fputs($fp, $result);
                fclose($fp);
            }
        }
    }
}
else {
    echo "<P align=center><FONT face=Tahoma size=2><STRONG>Dit icq nummer er ugyldigt</STRONG></FONT></P>.";
}
$mode = "";

}
?>

<html>
<head>
    <title>Tagwall V1.0</title>
</head>

<body bgcolor="#bec2c1" text="black" link="blue" vlink="blue" alink="blue">
<P align=center>
<FONT face=Tahoma size=2><STRONG>Tagwall V1.0</STRONG></FONT></P>



<?
if ($mode == "") {
?>
<P align=center><a href="default.php?mode=tilfoj"><FONT face=Tahoma size=2>Tilføj besked</FONT></a></P>
<table border="0" align="center">
<?
readfile("tagwall.txt");
?>
</table>
<?
}
?>

<?
if ($mode == "tilfoj") {
?>
<P align=center><a href="default.php"><FONT face=Tahoma size=2>Tilbage til forum</FONT></a></P>
<form action="default.php" method="post">
<input type="hidden" name="mode" value="opret">

<table border="0" align="center">
<tr><td><FONT face=Tahoma size=2>Navn:</FONT></td><td><input type="text" name="navn" style="background-color: Black; color: White; font-family: Tahoma; font-size: 10;"></td></tr>
<tr><td><FONT face=Tahoma size=2>Email:</FONT></td><td><input type="text" name="email" style="background-color: Black; color: White; font-family: Tahoma; font-size: 10;"></td></tr>
<tr><td><FONT face=Tahoma size=2>Icq:</FONT></td><td><input type="text" name="icq" style="background-color: Black; color: White; font-family: Tahoma; font-size: 10;"></td></tr>
<tr><td colspan="2"><textarea name="besked" cols="30" rows="8" style="background-color: Black; color: White; font-family: Tahoma; font-size: 10;"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" value="Skriv" style="background-color: Black; color: White; font-family: Tahoma; font-size: 10;"></td></tr>
</table>

</form>
<?
}
?>


</body>
</html>
Avatar billede sukos Juniormester
09. februar 2004 - 09:33 #4
<?
if (isset($_POST["mode"]) && $_POST["mode"] == "opret") {
Avatar billede sukos Juniormester
09. februar 2004 - 09:34 #5
Og så ellers ændre alle dine andre vars, alt efter om det er get eller post
$_GET
$_POST
Avatar billede mini41 Nybegynder
09. februar 2004 - 09:38 #6
Men det kan da ikke være rigtigt at jeg skal ændre på de script's jeg henter på nettet, er det ikke et spørgsmål om at sætte PHP på server op ?
Avatar billede erikjacobsen Ekspert
09. februar 2004 - 09:50 #7
Jo, det er rigtigt. Henter du gamle scripts på nettet, skal du ikke regne med
at de uden videre virker i dag. Det er et udmærket kvalitetscheck: bruger de
scripts de "gamle" metoder, så kassér dem. Find nogle andre scripts i stedet for.

Det vil aldrig være min anbefaling at indstille PHP til at kunne klare de gamle scripts.
Avatar billede sukos Juniormester
09. februar 2004 - 09:51 #8
Jahhh, kik på min første kommentar.
Avatar billede sukos Juniormester
09. februar 2004 - 09:52 #9
enig med erik!
Avatar billede mini41 Nybegynder
09. februar 2004 - 10:10 #10
Det der undrer mig lidt er, at dette script virker hos min udbyder (som kører PHP 4.3.4) men under Linux.

Det burde jo så også virke hos mig, da jeg kører samme PHP version.
Avatar billede erikjacobsen Ekspert
09. februar 2004 - 10:30 #11
Men du kører ikke med de samme indstillinger. Din udbyder har valgt den nemme
løsning: lavet deres indstilling baglæns kompatibel. Det betyder at de får
færre support-henvendelser, og kan spare penge på den konto. Det betyder
*ikke* at det på nogen anden måde er en fornuftig beslutning. Du kan ikke
regne med at webhoteller i fremtiden understøtter andet end den "nye" måde
at gøre det på. Derfor: brug den nye måde.

(Og det er bare et godt råd, jeg fisker ikke efter at få point for det)
Avatar billede mini41 Nybegynder
11. februar 2004 - 15:58 #12
Jeg tror jeg lader det ligge hos udbyderen.
Tak for svarene der er point til den der svarer først.
Avatar billede mini41 Nybegynder
12. marts 2004 - 21:09 #13
Ingen svar så snupper jeg dem selv :)

Tak for hjælpen
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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