WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   [Hjälp]Php4 -> Php5 (https://www.wn.se/forum/showthread.php?t=34422)

PaLL3 2009-01-13 13:18

Tjenare..

Här kommer jag med ytterligare ett problem...
Jag använder ett script men det fungerar inte i php5, men fungerar i php4.
Kan någon hjälpa mig med att konvertera det till php5?

Scriptet:
Kod:

<?php

define('INSIDE' , true);
define('INSTALL' , false);

$rogue_root = './';
include($rogue_root . 'extension.inc');
include($rogue_root . 'common.' . $phpEx);

$warrantrow = doquery("SELECT * FROM {{table}} WHERE id={$user['current_warrant']}",'warrant',true);
$pricerow = doquery("SELECT * FROM {{table}} WHERE id_planet={$warrantrow['id']}",'price',true);
$dpath = (!$user["dpath"]) ? DEFAULT_SKINPATH : $user["dpath"];

$select = mysql_query("SELECT * FROM rogue_users");

$page = mysql_fetch_object($select);

$login=$user['username'];
$currentwarrant=$user['current_warrant'];

?>

<div style="border:none;background-color:transparent;position:absolute;width:20px;left:150;top:50;visibility:visible">
<table width="600" align="center" border=1>

<?php
if($user['credits'] < 0){
echo " <tr><td class=\"mainTxt\" align=\"center\"><font color=red><b><center>eRRoR</b></center></font></td></tr>";
      mysql_query("UPDATE rogue_warrant SET `credits`=0 WHERE username = '" . $login . "'") or die(mysql_error());
exit;
}
?>

<link rel="stylesheet" type="text/css" href="css/css.css">
<form method="post" action="shop.php" name="f"><th>
<table width="441" height="477" align="center"><BR>
 <BR>
 <tr>
  <td class=subTitle colspan=3><b>VIP</b></td>
 </tr>
 <tr><td class=mainTxt>
<tr>
<td class=subTitle width=20>#</td>
<td class=subTitle width="208"><b>Options</b></td>
<td class=subTitle width="199">
<b>Total Amount</b></td>
</tr>
<tr>
<td width=20 class=mainTxt><input type=radio name=bought value="insur"></td>
<td class=mainTxt width="208">1 Insurance</td>
<td class=mainTxt width="199">50 Credits</td>
</tr>

<td colspan=2 class=mainTxt><BR>
 <b>Amount Credits:</b> <?php echo $user[credits]; ?></td>
<td align=right class=mainTxt width="199"><BR>
<p align="left"><input type=input value="1" size=3 name="bid" maxlength=2>x

<input type=submit value="Buy" name="submit">
<p align="left"></tr></td>
<table width="441" align="center">
</div>

<?php

if (isset($_POST['bought'])) {

      $amount = htmlspecialchars(addslashes($_POST['bought']));
      $amount = substr($amount,0,2);
      if(!is_numeric($amount)){
      echo 'Invalid Character';
      exit;
      }
  if($bought == "insur") { 
    $gebruik=htmlspecialchars(addslashes($_POST['bought']));
      $cost = 50;
      $costtotal = $cost*$amount;
      $aam = 20000;
      $comes = $aam*$amount;
}

if($costtotal > $user[credits]){
print (" <tr><td class=\"mainTxt\" align=\"center\">Not enough credits. <a href=\"#\" onclick=\"window.open('call.php','VIP','width=650,height=410','resizable=no','toolbar=no')\">Buy some more</a> before you try again.</td></tr>\n");
exit;
}
if($amount ==0) {
  print (" <tr><td class=\"mainTxt\" align=\"center\">You must chose more than 0!</td></tr>\n");
exit;
}
if($amount > 100) {
  print (" <tr><td class=\"mainTxt\" align=\"center\">Max amount is 99!</td></tr>\n");
exit;
}
if($amount < 0) {
  print (" <tr><td class=\"mainTxt\" align=\"center\">You need to order atleast 1!</td></tr>\n");
exit;
}

if($bought == "insur") {
$query = mysql_query("UPDATE `rogue_users` SET `credits`=`credits`-'$costtotal' WHERE username = '$login'");
$query = mysql_query("UPDATE `rogue_warrants` SET `insur`=`insur`+'$comes' WHERE `id` = '$currentwarrant'");
$query = mysql_query("UPDATE rogue_warrants, rogue_users SET rogue_warrants.credits = rogue_users.credits WHERE rogue_warrants.id_owner = rogue_users.id") or die(mysql_error());
   
   
  print (" <tr><td class=\"mainTxt\" align=\"center\">You have bought <b>".$aam." Insurance(s)</b> <b>$amount</b> times <br></td></tr>\n");
}


exit;


?>

Tack på förhand...
PaLL3

martine 2009-01-13 13:41

Du får titta på felmeddelanden du får och sedan titta på koden och kolla med php.net så kommer du säkert hitta felet. Medlemmarna på wn.se är ingen automatisk felsökningsfunktion. ;)

PaLL3 2009-01-13 13:55

Nä, jag anser inte att det första man ska göra är att kräva hjälp. Jag har alltid uppskattat hjälpen jag fått härifrån och alltid visat uppskattning. Varför jag vänder mig hit för information är då jag alltid fått hjälp som fungerat, och det första jag gör är inte att sätta mig och skicka in ett inlägg i detta forumet så fort ngt strular.

OT: Jag får inga felmeddelanden, bara blank sida. Använder jag en äldre version av webservern kan jag köra php4 och då fungerar scriptet. Jag har letat och letat efter information vad som kan göras, men jag får väl ta ditt råd och kolla med php.net och sluta använda wn.se som automatisk felsökningsfunktion...

*EDIT* Löst problemet. Var inte kodningen det var fel på. Scriptet funkar i php5 med.

PaLL3

crazzy 2009-01-13 14:08

Skadar iofs inte att skriva vad som felade och hur du löste det?

PaLL3 2009-01-13 14:09

php5 har globals off som standard.. måste ändra det i httpd.conf
har precis installerat om servern på en ny burk och glömde ändra den inställningen.. {insert_facepalm}

crazzy 2009-01-13 14:12

Menar du register_globals? Isåfall hoppas jag att du kontrollerar variablerna ordentligt innan du använder de... (Orkar inte läsa skriptet just nu)

mrjb 2009-02-05 20:59

Citat:

$login=$user['username'];
Hoppas för din sajts säkerhets skull du har riktigt bra koll på var den där variabeln kommer ifrån...

emilv 2009-02-05 23:21

Citat:

Originally posted by PaLL3@Jan 13 2009, 15:09
php5 har globals off som standard.. måste ändra det i httpd.conf
har precis installerat om servern på en ny burk och glömde ändra den inställningen.. {insert_facepalm}

register_globals har varit deprecated sedan 2002. I PHP 6 kommer register_globals plockas bort helt.
Vill du göra koden framtidssäker (och säker överhuvudtaget) ser du till att sluta använda register_globals redan nu (7 år efter deprecated...) och använder $_GET, $_POST, $_SESSION och $_COOKIE istället.


Alla tider är GMT +2. Klockan är nu 20:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson