[PHP] Linux < - > Windows

Pagina: 1
Acties:

  • SAiKO
  • Registratie: September 2000
  • Laatst online: 12-05 12:34

SAiKO

Grote Smurf

Topicstarter
Welke verschillen zijn er tussen de php-scripts onder linux en windows? Ik heb gehoord dat sowieso met het lezen en schrijven van tekstfiles problemen zouden zijn wat betreft uitwisseling. Zijn er nog andere dingen waar ik rekening mee moet houden?

Verwijderd

rechten, casesensitive, noem maar op

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Behalve de filesystem problemen is er niks aan de hand zolang je de standaard php filefunctions gebruikt. (dus NIET `cat blaat > blaat.txt`)

Even een paar filesystem problemen opsommen:
• Unix gebruikt '/' en windows gebruikt '\'
• Unix is case-sensitive, windows is hooguit case-aware
• Unix textfiles eindigen regels met een \n, windows staat erop om \r\n te gebruiken.
• Unix heeft een rechtensysteem, Windows (excl. WinNT) niet.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Dit is eigenlijk wel een handige topic. Mijn scripts zijn vaak ook niet platform independent, wat ik wel graag wil. In ieder geval al bedankt voor de tips.

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 14-09 09:56
Wat ik nog wel eens gemerkt heb is dat system() het onder windows niet altijd goed doet ("cannot fork()...").

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Op maandag 20 augustus 2001 12:01 schreef Infinitive het volgende:
Wat ik nog wel eens gemerkt heb is dat system() het onder windows niet altijd goed doet ("cannot fork()...").
Hmm, da's niet zo vreemd natuurlijk fork() bestaat helemaal niet in windows, dat moet ShellExecute(Ex)() zijn.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Op maandag 20 augustus 2001 03:40 schreef Gerco het volgende:
• Unix textfiles eindigen regels met een \n, windows staat erop om \r\n te gebruiken.
Ik heb altijd gedacht dat het andersom was...

  • smaij
  • Registratie: November 2000
  • Laatst online: 23:37
Op maandag 20 augustus 2001 12:23 schreef The_dude het volgende:

[..]

Ik heb altijd gedacht dat het andersom was...
nee het is \n voor linux
en \n\r voor windows. dus is wel goed wat er staat

Ik die nu eindelijk een linux bak heeft, krijg met mijn php server de volgende error, kan dit komen omdat ik niet zogoed heb gelet op Case-Sencitive.
code:
1
2
3
4
5
Warning: Supplied argument is not a valid MySQL result resource in
/var/www/html/auth/test/Total_Users.php on line 19

Warning: Supplied argument is not a valid MySQL result resource in
/var/www/html/auth/test/Total_Users.php on line 21

de code die in mijn script staat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
session_start();
include ("common.inc.php");
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Total Users</title>
</head>
<body bgcolor="#C1D3E1" text="#3C5C6F" link="#3C5C6F" vlink="#3C5C6F" alink="#3C5C6F">
<h1 align="center"><font face="Lucida Console"><b>Total Users</b></font></h1>

<?php
 connecttodatabase();
 $Query = mysql_query("SELECT UserID, UserName, Active, IconID, Email, ICQNumber, MSN, Date_Registered FROM users");
 $Query_Rows = mysql_num_rows($Query);
 $Query_Active = mysql_query("SELECT UserID, UserName, Active, IconID, Email, ICQNumber, MSN, Date_Registered FROM users WHERE Active = '1'");
 $Query_Active_Rows = mysql_num_rows($Query_Active);
?>
<table border="1" width="100%" cellspacing="1" bordercolor="#3C5C6F" bgcolor="#A3BDD3" bordercolorlight="#3C5C6F" bordercolordark="#416578">
 <tr>
  <td width="25%" colspan="2" bgcolor="#80A6BB"><b>Total Users: </b><?php echo $Query_Rows ?></td>
  <td width="25%" colspan="2" bgcolor="#80A6BB"><b>Total Active Users: </b><?php echo $Query_Active_Rows ?></td>
  <td width="25%" colspan="2" bgcolor="#80A6BB"><b>View By Groups</b></td>
  <td width="25%" colspan="2" bgcolor="#80A6BB"><b>View Banned Users</b></td>
 </tr>
</table>
<table border="1" width="100%" cellspacing="1" bordercolor="#3C5C6F" bgcolor="#A3BDD3" bordercolorlight="#3C5C6F" bordercolordark="#416578">
 <tr>
  <td width="7%" bgcolor="#3C5C6F" align="center"><p align="center"><font color="#C1D3E1">UserID</font></td>
  <td width="17%" bgcolor="#3C5C6F" align="center"><p align="center"><font color="#C1D3E1">UserName</font></td>
  <td width="6%" bgcolor="#3C5C6F" align="center"><font color="#C1D3E1">Active</font></td>
  <td width="10%" bgcolor="#3C5C6F" align="center"><font color="#C1D3E1">IconID</font></td>
  <td width="19%" bgcolor="#3C5C6F" align="center"><font color="#C1D3E1">Email</font></td>
  <td width="8%" bgcolor="#3C5C6F" align="center"><font color="#C1D3E1">ICQ</font></td>
  <td width="10%" bgcolor="#3C5C6F" align="center"><font color="#C1D3E1">MSN</font></td>
  <td width="16%" bgcolor="#3C5C6F" align="center"><font color="#C1D3E1">Registration Date</font></td>
 </tr>
<?php
$UserNummer = 1;
$Color_Row = 1;

while ($UserNummer <= $Query_Rows){

   $Query_Array = mysql_fetch_array($Query);
   $Query_UserID = $Query_Array["UserID"];
   $Query_UserName = $Query_Array["UserName"];
   $Query_Active = $Query_Array["Active"];
   $Query_IconID = $Query_Array["IconID"];
   $Query_Email = $Query_Array["Email"];
   $Query_ICQNumber = $Query_Array["ICQNumber"];
   If ($Query_ICQNumber == ''){
     $Query_ICQNumber = '<center> - </center>';
   }
   $Query_MSN = $Query_Array["MSN"];
   If ($Query_MSN == ''){
     $Query_MSN = '<center> - </center>';
   }
   $Query_Date_Registered = $Query_Array["Date_Registered"];

?>
 <tr>
  <td width="7%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_UserID ?></td>
  <td width="17%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_UserName ?></td>
  <td width="6%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_Active ?></td>
  <td width="10%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_IconID ?></td>
  <td width="19%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_Email ?></td>
  <td width="8%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_ICQNumber ?></td>
  <td width="10%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_MSN ?></td>
  <td width="16%"<?php if($Color_Row == 2 ) echo 'bgcolor="#80A6BB"' ?>><?php echo $Query_Date_Registered ?></td>
 </tr>

<?php
 if ($Color_Row == 2 ){
   $Color_Row = 1 ;
 }
 Else {
   $Color_Row = 2 ;
 }
 $UserNummer++;
}
?>
</table>
</body>
</html>

sorry dat dit topic er de dupe voor word.. maar heeft denk ik wel een relatie :p

  • _Dexter_
  • Registratie: December 2000
  • Laatst online: 23-02-2021
Moet er niet een ; achteraan een SQL-query?

Als dat niet werkt druk dan eens de SQL foutmelding af nadat je query uitgevoerd hebt, dus voordat je de resultset gaat bekijken.

  • traviandus
  • Registratie: Februari 2001
  • Laatst online: 25-03-2025

traviandus

vague

Op donderdag 29 november 2001 08:25 schreef _Dexter_ het volgende:
Moet er niet een ; achteraan een SQL-query?
Nee. Die plakt PHP er zelf achter.

Verwijderd

Het is vrij verstandig om voordat je een result resource gebruikt even if() te doen
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$result = mysql_query("SELECT * from blaat");
if( $result )
{
  $row = mysql_fetch_row($result);
}
else
{
  echo "iets goed mis met m'n databasezooi...";
}
?>

ofzo.

  • smaij
  • Registratie: November 2000
  • Laatst online: 23:37
Op donderdag 29 november 2001 10:38 schreef fladder het volgende:
Het is vrij verstandig om voordat je een result resource gebruikt even if() te doen
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$result = mysql_query("SELECT * from blaat");
if( $result )
{
  $row = mysql_fetch_row($result);
}
else
{
  echo "iets goed mis met m'n databasezooi...";
}
?>

ofzo.
Dat kan.. maar zodra iets niet werkt, kijk ik meestal in mijn logfiles, om vervolgens de fout aan te passen. Deze komt op de uitvoer (in de browser) al te voorschijn en kan hem maar niet oplossen. Ik heb het nog steeds niet opgelost

  • smaij
  • Registratie: November 2000
  • Laatst online: 23:37
Op donderdag 29 november 2001 08:25 schreef _Dexter_ het volgende:
Moet er niet een ; achteraan een SQL-query?

Als dat niet werkt druk dan eens de SQL foutmelding af nadat je query uitgevoerd hebt, dus voordat je de resultset gaat bekijken.
Sorry snap ik niet. Hoe kan ik de foutmelding afdrukken als dit eigenlijk al gebeurt??

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op donderdag 29 november 2001 09:09 schreef traviandus het volgende:
Nee.
Dat klopt.
Die plakt PHP er zelf achter.
Maar dat niet. :)

De ";" is geen onderdeel van een query, het is een teken waaraan sommige client-side programma's zien dat je query afgelopen is. Maar ook die versturen queries vervolgens gewoon zonder ; naar de server. :)
Pagina: 1