Avatar billede ondmis Nybegynder
26. oktober 2005 - 23:26 Der er 18 kommentarer

Fejl efter hotelflytning af Linkdumpscript på linkdump.ondmis.dk

Kære Eksperter :)

Jeg har fået et problem på min side www.linkdump.ondmis.dk efter jeg har flyttet fra surftown.dk til elitehost.dk

Som du kan se hvis du prøver at poste et link, så virker det ikke.
Loginoplysningerne er ændret, men heller ikke admin kan logge ind i scriptet via browseren, som man plejer at kunne.

Jeg mistænker at det er forskellige versioner af php på de to webhosts der kan have skylden for fejlen, men mere kan jeg ikke selv finde ud af :/

Hvis nogen kunne have en ide om hvilken rettelse jeg kunne foretage for at få det til at virke ville det være meget velkomment.

Her er php serverbeskrivelserne fra henholdsvis surftown(tidligere): http://ws1.surf-town.net/phpinfo.php

Og elitehost(nuværende): http://www.rejsearkivet.dk/phpinfo.php

Håber nogen derude kan hjælpe, og tøv ikke med at bede om mere info hvis jeg mangler noget.

På forhånd tak og med venlig hilsen Ondmis.dk
Avatar billede leif Seniormester
26. oktober 2005 - 23:28 #1
Bruger du $navn eller $_GET["navn"] ? Når du henter variabler fra adresselinien ?
Avatar billede jaw Nybegynder
26. oktober 2005 - 23:28 #2
Det første der springer mig i øjnene er register_globals ! Du har garanteret kodet, så dine form-variabler er $felt og ikke $_POST['felt']. Du skal ændre alle til $_POST, $_GET og $_SESSION så kører det vist for dig igen :)
Avatar billede whatever Nybegynder
26. oktober 2005 - 23:30 #3
Du må gerne vis os den del af din kode, der gemmer linken.
Avatar billede ondmis Nybegynder
26. oktober 2005 - 23:38 #4
håber det er den rigtige kodedel, men jeg tar chancen:

<?PHP
INCLUDE "config.php";

if($sAction == "plug")
{
  if(!verifyhtml($sPlugurl)){DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "The plug url you entered contained HTML characters, please go back and change this.");}
  if(!verifyhtml($sPlugname)){DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "The plug name you entered contained HTML characters, please go back and change this.");}
  if(!verifyhtml($sPlugdescription)){DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "The plug description you entered contained HTML characters, please go back and change this.");}
  if(!verifyhtml($sPlugtype)){DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "The plug type you entered contained HTML characters, please go back and change this.");}
  $sIP = getenv("REMOTE_ADDR");
  $sStripurl = $sPlugurl;
  preg_match("/^(http:\/\/)?([^\/]+)/i",$sStripurl, $sMatches);
  $sStripurl = $sMatches[2];
  preg_match("/[^\.\/]+\.[^\.\/]+$/",$sHost,$sMatches);
  $sStripurl == $sMatches[0];
  $sStripurl = str_replace("www.", "", $sStripurl);
  func_MysqlConnect6();
  $sQuery = "SELECT * FROM plugathug WHERE plugurlshort='$sStripurl'";
  $sQueryresult = mysql_query($sQuery) or die ("<font face=verdana>Error: " . mysql_error());
  $sNum = mysql_numrows(mysql_query($sQuery));
  if ($sNum == 1)
    {
    while ($sRow = mysql_fetch_array($sQueryresult))
      {
      $sLastIP = $sRow["ip"];
      $sLastposttime = $sRow["lastposted"];
      $sIsbanned = $sRow["banned"];
      }
    $sTotaltime = $sWaitdays * 86400;
    $sLastposttime = time() - $sLastposttime;
    if($sLastposttime > $sTotaltime AND $sIsbanned == "false")
      {
      $sDate = date($sDateformat);
      $sTime = time();
      if($sValidate == "yes"){$sBanned = "true";}else{$sBanned = "false";}
      $sQuery = "UPDATE plugathug SET ip='$sIP', plugurl='$sPlugurl', dateposted='$sDate', lastposted='$sTime', plugdescription='$sPlugdescription', plugname='$sPlugname', plugtype='$sPlugtype' WHERE plugurlshort='$sStripurl'";
      $sQueryresult = mysql_query($sQuery) or trigger_error("MySQL error nr ".mysql_errno().": ".mysql_error());
      }
      else
      {
      DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "You are banned or are posting your plug again too soon, you must wait $sWaitdays days before the original post date before posting this again.");
      }
    }
    else
    {
    if($sPlugurl != "" AND $sPlugurl != "http://" AND $sPlugname != "Sitename" AND $sPlugdescription != "Description")
      {
      $sDate = date($sDateformat);
      $sTime = time();
      if($sValidate == "yes"){$sBanned = "true";}else{$sBanned = "false";}
      mysql_query ("INSERT INTO plugathug (ip, plugname, plugurl, plugurlshort, plugdescription, plugtype, dateposted, lastposted, banned) VALUES ('$sIP', '$sPlugname', '$sPlugurl', '$sStripurl', '$sPlugdescription', '$sPlugtype', '$sDate', '$sTime', '$sBanned')") or trigger_error("MySQL error nr ".mysql_errno().": ".mysql_error());
      }
      else
      {
      DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "Some of the fields you entered were missing or invalid.");
      }
    }
  if($sValidate == "yes")
  {
    $sReturnurl = getenv("HTTP_REFERER");
    DIE ($sStyle . $sPlugsconfirmheaderHTML . $sAdminbeforeHTML . "Your plug was submitted successfully!<BR>The administrator requires each plug to be verified before it is listed.<BR>To return to the page you came from click <A HREF=$sReturnurl>here</A>");
  }
    else
  {
    $sReturnurl = getenv("HTTP_REFERER");
    PRINT "<script language=\"JavaScript\">window.location='$sReturnurl'</script>";
  }
  mysql_close();
}
  elseif($sAction == "out")
{
  func_Addclickout($sPlugurl);
}
Avatar billede ondmis Nybegynder
26. oktober 2005 - 23:39 #5
skal huske at sige at intet stort set virker, kan hverken logge ind som admin via browseren, se et link, eller poste et.

Så fejlen må være af en generel karakter
Avatar billede leif Seniormester
26. oktober 2005 - 23:47 #6
Problemet er at du henter variabler med kun $navn, når du er på en server med register_globals = off skal du nu hente variabler med $_GET["navn"] hvis de kommer fra adresselinien, med $_POST["navn"] hvis de bliver sendt med post via en form og $_SESSION["navn"] hvis de kommer fra en session styring.
Avatar billede whatever Nybegynder
26. oktober 2005 - 23:48 #7
Årsagen er som andre har nævnt, at SurfTown har PHP indstillingen register_globals slået til, mens Elitehost har den slået fra. Som standard er det slået fra i PHP, grundet nogle sikkerhedsrisici. Du kan læse mere om problemet her: http://dk2.php.net/manual/en/language.variables.predefined.php

Indstillingen påvirker hele dit script, så du skal gå hele scriptet igennem, og tilrette det.
Avatar billede leif Seniormester
26. oktober 2005 - 23:51 #8
Så for at sige det, hele din kode skal kodes om !

Du kan dog ændre det nemt i visse tilfælde ved at fx. tilføje til toppen:
$sAction = $_GET["sAction"];

Den sætter variablen ind i variablen $sAction, dvs. du ikke skal ændre alle steder $sAction er brugt, men dette skal gøres for alle variabler som kommer enten via adresselinien, post, session eller cookie.
Avatar billede ondmis Nybegynder
26. oktober 2005 - 23:52 #9
Jeg er bange for du har ret, men at jeg samtidig er for ringe til det her til at kunne udføre de rettelser du kommer med, kan nogen skære det ud i pap for mig?

(hvor i koden skal der rettes? Hvordan ser jeg om det er session/adresselinie/variabel)

Ved godt jeg er en lallende amatør, så tak for tålmodigheden :)
Avatar billede leif Seniormester
26. oktober 2005 - 23:58 #10
Det kan du ikke se direkte ud af koden, men hvis du trykker send kan du se at den sender dig til siden action.php?sAction=plug det betyder at $sAction kommer fra adresselinien og skal derfor hentes med $_GET["sAction"]
Avatar billede leif Seniormester
26. oktober 2005 - 23:58 #11
Alle steder hvor du henter variabler skal ændres !
Avatar billede leif Seniormester
27. oktober 2005 - 00:00 #12
Men fx. sender du med POST variablerne:
sPlugurl
sPlugname
sPlugdescription
sPlugtype

De skal så hentes med:
$_POST["sPlugtype"]
$_POST["sPlugdescription"]
osv.
Avatar billede leif Seniormester
27. oktober 2005 - 00:01 #13
Det lyder som om du ikke selv har kodet scriptet, er det korrekt ?
Avatar billede leif Seniormester
27. oktober 2005 - 00:03 #14
Men vil råde dig til at læse det der står på siden som whatever henviser til der, så pænt hvad det er som er ændret, da der er mere end bare dem vi har omtalt her.
Avatar billede ondmis Nybegynder
27. oktober 2005 - 12:10 #15
Ja, det er korrekt at jeg ikke selv har kodet scriptet, det hedder plug-a-thug, og jeg tror ikke det laves mere...

Det virker meget besværligt at skulle ændre alle de ting i siger, mon der findes et program der kan auto-ændre det, eller et andet linkdump-script der er bedre måske?
Avatar billede leif Seniormester
27. oktober 2005 - 12:13 #16
Det er ikke besværligt, men da du ikke har kode erfaring vil det tage tid.
Avatar billede leif Seniormester
27. oktober 2005 - 12:13 #17
Kig på fx. www.hotscripts.com
Avatar billede leif Seniormester
27. oktober 2005 - 12:13 #18
Eller lign.
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