Gå til innhold

ZiZe

Medlemmer
  • Innlegg

    49
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av ZiZe

  1. Har fått satt opp en ny boks her hjemme til testing, utvikling og leking.

     

    har satt opp 2 virtual hosts på hver sin ip.

    server1 10.0.0.100

    server2 10.0.0.101

     

    Er det mulig og laste inn feks. php4 i server1 sin virtual host definisjon og php5 i server2 sin?

    Eller må jeg rett og slett gå for 2 apache installs?

    vet jeg kan bruke feks. libapachephp5-mod og php4-cgi, og bruke .php4 til php4 scripts og .php til php5, men dette er ikke en optimal løsning for min del.

     

    *leter videre gjennom den store mørke veven*

  2. Edit: la til en sjekk etter og ha lest litt om skuddår

     

    Mitt bidrag:

    www.zize.org/dabear_challenges/challenge1.php

     

    Klikk for å se/fjerne innholdet nedenfor

    PHP

    <form method="POST" action="<?= $_SERVER['PHP_SELF']; ?>" >

    <input type="text" name="year" value="" >

    <input type="submit" name="checkYear" value="Sjekk årstall" >

    </form>

    <hr>

    <?php

    $nowY sprintf('%d'$_POST['year']);

     

    if($nowY 0)

    {

    if(substr($nowYstrlen($nowY)-22) == '00' && $nowY 400 == 0)

    echo $nowY .' er ett skuddår!';

    elseif(($year 4) === && substr($nowYstrlen($nowY)-22) &#33;= '00')

    echo $nowY .' er ett skuddår!';

    else 

    echo $nowY .' er ikke ett skuddår.. :\'(';

    }

    else 

    echo 'Skriv inn ett årstall som ett positivt heltall';

    ?>

     

    men date('L', mktime(0,0,0,2,0,$year)); vil være enkelere hvertfall

    Klikk for å se/fjerne innholdet nedenfor

    PHP

    <form method="POST" action="<?= $_SERVER['PHP_SELF']; ?>" >

    <input type="text" name="year" value="" >

    <input type="submit" name="checkYear" value="Sjekk årstall" >

    </form>

    <hr>

    <?php

     

    $nowY sprintf('%d'$_POST['year']);

    if($nowY 0)

    {

    if(date('L'mktime(00020$nowY)) == 1)

    echo $nowY .' er ett skuddår!';

    else 

    echo $nowY .' er ikke ett skuddår.. :\'(';

    }

    else

    echo 'Skriv inn ett årstall som ett positivt heltall';

     

    echo '<hr>';

    //kortere måte og gjøre det på

    if($nowY > 0)

    echo $nowY . ($nowY > 0 && date('L', mktime(0,0,0,2,0,$nowY)) == 1 ? ' er ett skuddår&#33;':' er ikke ett skuddår.. :\'(');

    else

    echo 'Skriv inn ett årstall som ett positivt heltall';

     

    ?>

  3. tror ikke jeg kommer til og gjøre så mye nes programmering med det første da man har andre ting og gjøre, men helt klart genialt og lese litt om det tekniske bak vidunderet som tok jomfrudommen min en gang for 16-17 år siden.

    ahh, the memories :)

     

    Er nok del 1 som er den mest interessante for meg men håper det kommer mer her.

     

    takker :thumbup:

  4. Heisann.

     

    Det jeg mener er at du må legge til den linjen der øverst i alle scriptene dine som skal kalles opp via crontaben.

    /usr/bin/php er da stien til php.

     

    så legg til

     

    #!/usr/bin/php i toppen av alle php scriptene du bruker som cron tasks.

    dette _må_ stå helt øverst i php filen, over <?php.

     

    sampleCron.php

    #!/usr/bin/php
    <?php
    //mitt cronscript
    $mailTo = '[email protected]';
    $mailSubject = 'En testmail';
    $mailFrom = '[email protected]';
    
    $mailBody = "En testmail \r\n";
    $mailbody.= date("H:i:s d/m/Y, time()) ."\r\n";
    
    mail($mailTo, $mailSubject, $mailBody, "From: ". $mailFrom ."\r\n");
    ?>
    

    chmod +x sampleCron.php

     

    så skal alt funke fint.

     

    en ting til jeg vil anbefale er og plassere cron task scriptene utenfor webpath så ikke hvem som helst kan kalle dem opp.

     

    chmod +x <script>.php på alle cron task scriptene, dette gjør du da via terminalen når du har ssh'et inn til serveren.

    <> skal ikke være med.

  5. Der ja, takker for all hjelp :)

    Her bruker jeg GetWindowRect mest bare for og sammenligne debug outputen jeg fikk, for og skjønne litt mer hvorfor den registrerte noen fullscreen programmer, mens ikke andre :)

     

    findProcs.cs

    using System;
    using System.Runtime.InteropServices;
    using System.Threading;
    using System.Diagnostics;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Fullscreen
    {
    public class findProc
    {
     private Thread wThread = null;
     
     public findProc()
     {
     	wThread = new Thread(new ThreadStart(workerThread));
     	wThread.Start();
     }
    
     private void workerThread()
     {
     	IntPtr hwnd;
     	IntPtr hwndTL;
     	IntPtr hwndBR;
     	
     	POINT pTl;
     	POINT pBr;
    
     	RECT winRect;
     	string pName = "";
    
     	Debug.WriteLine("Starting debug:", "start");
     
     	while(true)
     	{
       hwnd = GetForegroundWindow();
    
       if( hwnd.Equals(IntPtr.Zero) ||
    hwnd == Process.GetCurrentProcess().MainWindowHandle ||
    !IsWindow(hwnd) )
       {
       	Thread.Sleep(1000);
       	continue;
       }
    
       pTl = new POINT(Screen.PrimaryScreen.Bounds.Left, Screen.PrimaryScreen.Bounds.Top);    
       pBr = new POINT(Screen.PrimaryScreen.Bounds.Right - 1, Screen.PrimaryScreen.Bounds.Bottom - 1);
       
       hwndTL = WindowFromPoint(pTl);
       hwndBR = WindowFromPoint(pBr);
       GetWindowRect(hwnd, out winRect);
    
       foreach(Process pp in Process.GetProcesses())
       {
       	if(pp.MainWindowHandle == hwnd)
       	{
         pName = pp.ProcessName;
         break;
       	}
       }
       
    
       if(hwnd == hwndTL && hwnd == hwndBR)
       {
       	Debug.WriteLine(pTl.ToString(), "TopLeft");
       	Debug.WriteLine(pBr.ToString(), "BottomRight");
       	Debug.WriteLine(winRect.ToString(), "window size");
       	Debug.WriteLine("Vi har et fullscreen window ("+ pName +")", "Fullscreen");
       }
       else
       {
       	//Debug.WriteLine("Vi har ikke et fullscreen window ("+ pName +")", "Normal");
       	Thread.Sleep(1000);
       	continue;
       }
    
       Debug.Flush();
       Thread.Sleep(2000);
     	}
     }
    
     
     //www.pinvoke.net/default.aspx/user32/IsWindow.html
     [DllImport("user32.Dll")]
     private static extern bool IsWindow(IntPtr hWnd);
    
     //www.pinvoke.net/default.aspx/user32/GetForegroundWindow.html
     [DllImport("user32.Dll")]
     private static extern IntPtr GetForegroundWindow();
    
     //www.pinvoke.net/default.aspx/user32.WindowFromPoint
     [DllImport("user32.dll")]
     static extern IntPtr WindowFromPoint(POINT Point);
    
     //www.pinvoke.net/default.aspx/user32/GetWindowRect.html
     [DllImport("user32.dll")]
     static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
    }
    }
    

     

    Structs.cs

    using System;
    using System.Runtime.InteropServices;
    
    namespace Fullscreen
    {
    [StructLayout( LayoutKind.Sequential )]
    public struct POINT 
    {
     public int X;
     public int Y;
    
     public POINT( int x, int y ) 
     {
     	this.X = x;
     	this.Y = y;
     }
    
     public static implicit operator System.Drawing.Point( POINT p ) 
     {
     	return new System.Drawing.Point( p.X,  p.Y );
     }
    
     public static implicit operator POINT( System.Drawing.Point p ) 
     {
     	return new POINT( p.X, p.Y );
     }
    
     public override string ToString()
     {
     	return String.Format("X: {0} Y: {1} ", X, Y);
     }
    
    }
    
    [Serializable, StructLayout(LayoutKind.Sequential)]
    public struct RECT
    {
     public int Left;    
     public int Top;    
     public int Right;    
     public int Bottom;
    
     public override string ToString()
     {
     	return string.Format("Top:{0}, Left:{1}, Right:{2}, Bottom:{3}", Top, Left, Right, Bottom);
     }
    
    }
    }
    

  6. Heisann og takker for svar :)

     

    Har testet litt nå, og dette funker fint mot vanlige windows programmer, sant som du sier at internet explorer viser 1 pixel større alle veier.

     

    men når jeg tester dette mot fullscreen applikasjoner, spill feks, så viser den noe helt galt.

    bruker denne klassen i en console application.

    postet hele klassen jeg bruker, men det er i metoden checkProc() all action foregår.

    tester med spillet "Soldat".

    jeg merket og at GetForegroundWindow() ikke registrerer noe hvis soldat som jeg testet med var foreground window, funker visst bare med vanlige windows forms.

     

    her er da output fra console applikasjonen

    Screen bounds: (firefox maximized)

    Top: 0, Left: 0, Bottom: 864, Right: 1152

    Process: firefox

    Top: -4, Left: -4, Bottom: 808, Right: 1156

    ____________________________________

     

    Screen bounds: (firefox fullscreen)

    Top: 0, Left: 0, Bottom: 864, Right: 1152

    Process: firefox

    Top: 0, Left: 0, Bottom: 864, Right: 1152

    ____________________________________

     

    Screen bounds: (soldat fullscreen)

    Top: 0, Left: 0, Bottom: 864, Right: 1152

    Process: Soldat

    Top: 432, Left: 576, Bottom: 432, Right: 576

    ____________________________________

     

    som man ser her, så er visst ikke spill vinduet 1*1 pixel en gang?

     

    using System;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.Drawing;
    using t = System.Threading;
    using f = System.Windows.Forms;
    
    namespace ConsoleApplication1
    {
    public class fullscreen
    {
     private t.Thread checkThread = null;
    
     public fullscreen()
     {
     	checkThread = new t.Thread(new t.ThreadStart(this.threadStart));
     }
     
     //disse brukes av main metoden i console programmet for og styre threaden
     public void Start()
     {
     	checkThread.Start();
     }
     public void Stop()
     {
     	checkThread.Abort();
     }
     public void Suspend()
     {
     	checkThread.Suspend();
     }
     public void Resume()
     {
     	checkThread.Resume();
     }
     
     
     private void threadStart()
     {
     	while(true)
     	{
       this.checkProc();
       t.Thread.Sleep(5000);
     	}
     }
    
     //her er da metoden som sjekker vinduet som er øverst i Z-orderen
     private void checkProc()
     {
     	
     	IntPtr hwnd = GetForegroundWindow();
     	RECT hwndRect;
    
     	foreach(Process pp in Process.GetProcesses())
     	{
       if(pp.ProcessName.ToLower() == "soldat" || pp.ProcessName.ToLower() == "firefox")
       {
       	Rectangle scrRect = f.Screen.PrimaryScreen.Bounds;
         Console.WriteLine("Screen bounds:");
         printRect(scrRect);
    
         GetWindowRect(pp.MainWindowHandle, out hwndRect);
         Console.WriteLine("Process: {0}", pp.ProcessName);
         printRect(hwndRect);
         Console.WriteLine("____________________________________\r\n");
       	break;    	
       }
     	}
     }
    
     private void printRect(Rectangle rect)
     {
     	Console.WriteLine("Top: {0}, Left: {1}, Bottom: {2}, Right: {3}", rect.Top, rect.Left, rect.Bottom, rect.Right);
     }
     private void printRect(RECT rect)
     {
     	Console.WriteLine("Top: {0}, Left: {1}, Bottom: {2}, Right: {3}", rect.Top, rect.Left, rect.Bottom, rect.Right);
     }
    
     // Import og signaturer til de win32 api kallene vi trenger
     [DllImport("user32.dll")]
     private static extern IntPtr GetForegroundWindow();
    
     [DllImport("user32.dll")]
     private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
    }
    
    [Serializable, StructLayout(LayoutKind.Sequential)]
    public struct RECT
    {
     public int Left;
     public int Top;
     public int Right;
     public int Bottom;
    }
    
    }
    

  7. Jeg har noen idèer til et program jeg skal prøve meg på, men står litt fast og tenke å se om kansje noen her hadde noen tips.

    En av funksjonene i programmet skal værtfall kunne sjekke om man kjører ett fullscreen program, og vilken prosess dette er.

    jeg har gått gjennom hele msdn (nesten :p) og google så krampene i fingrene snart tar knekken på meg :hmm:

     

    Siden jeg ikke fant noenting som kan hjelpe meg i .net rammeverket har jeg gått over på og søke gjennom unmanaged api calls (platform invoke).

     

    her er dll filene og signaturene jeg har prøvd så langt:

    // Returnerer en IntPtr til handle til vinduet/prosessen som er øverst i "the Z-order"

    // ifølge msdn

    [DllImport("user32.dll")]

    static extern IntPtr GetForegroundWindow();

     

    // Denne tar imot en handle til prosessen/vinduet

    // og sjekker om vinduet er maximized.

    [DllImport("user32.dll")]

    private static extern bool IsZoomed(IntPtr hWnd);

     

    så jeg lagde en test, med en timer og et kall til en funksjon som kjørte

    brukte GetForegroundWindow(), brukte IntPtr for og matche mot <Process>.Handle i en for loop, fant den matchende prosessen, og returnerer prosessnavnet og en indikasjon på om vinduet er min eller maks i en string.

    men det virker ikke som at IsZoomed tar fullscreen programmer som maximized, for den returnerer om jeg starter feks. cs.

    hl - minimized

    og jeg kjører cs fullscreen seff ;)

     

    Så nå lurer jeg på om noen har vært borti noe lignende før?

  8. SQL spørring for og hente informasjon om tabeller:

    SHOW TABLE STATUS FROM db_navn LIKE 'tabell_navn'
    

    denne vil hente ut en del kolonner med informasjon om "tabellnavn", hvor det du er interessert i er feltene 'Data_length' og 'Index_length'.

    SHOW TABLE STATUS FROM db_navn LIKE 'tabell_%'
    

    gir deg en rad for hver tabell den finner.

     

    "FROM db_navn" og "LIKE 'noeher' " er optional, er de ikke med bruker de databasen du er tilkoblet og henter info om alle tabellene

     

    denne gir deg tabellnavn og størrelse

    <?php
    $dbLink = mysql_connect('host', 'user', 'password');
    mysql_select_db('db_navn', $dbLink);
    
    $query = "SHOW TABLE STATUS FROM mysql";
    $result = mysql_query($query);
    
    while($statusRader = mysql_fetch_array($result)) {
     $totalSize = $statusRader['Data_length'] + $statusRader['Index_length'];
    echo 'tabellnavn: '. $statusRader['Name'] .'<br>';
    echo 'Størrelse: '. $totalSize .'<hr>';
    }
    ?>
    

    gir:

    tabellnavn: columns_priv
    Størrelse: 1024
    
    tabellnavn: db
    Størrelse: 3225
    
    tabellnavn: func
    Størrelse: 1024
    
    tabellnavn: host
    Størrelse: 1024
    
    tabellnavn: tables_priv
    Størrelse: 1024
    
    tabellnavn: user
    Størrelse: 2340
    

     

    og denne skulle vel egentlig vært i databaser forumet?

  9. 500kbps ut holder ikke til 11 spillere nei.

    husker ikke helt, men mener steam sitt FAQ system sier man bør regne 128kpbs ut pr. spiller for en ok server.

     

    uansett så vil man bare få drittservere på private linjer, med mindre du har god uthastighet og setter opp en egen router som prioriterer pakkene til og fra serveren din over vanlig surfing og nedlasting.

  10. vel, nå er de filene du har fått faktisk databasen din.

    de tre filene som mysql bruker til databasen din.

     

    tviler på at du har ssh tilgang til webserveren hos stw, så du kan alltids bare installere mysql på din personlige pc, lag en database med akkurat samme navn som den du skal gjennoprette, stoppe mysql, gå inn i mysql folderen og finn mappa som har FRM, MYD og MYI til databasen, slett disse og legg inn de som stw har sendt til deg :)

     

    start mysql og du ska nå kunne dumpe ut sql scriptet fra databasen :)

×
×
  • Opprett ny...