Jump to content
GSForum - Segélyvonal

PHP kérdésem van


Recommended Posts

Posted

Nem kell. Én az 5-6 ezress termékállományt berántva egy tömbbe, lazán csinálok in_array-eket meg még csúnyább mûveleteket is rajtuk, meg sem kottyan a szervernek.

 

Igaz, nem éles weboldalon, hanem karbantartó "segédprogramokban".

Posted

Legutóbb azon dolgoztam, hogy létrehozzak egy biztonságos beléptető rendszert (egy megfelelő osztály + adattábla). Azt hiszem, sikerült (a tábla alapján ellenőrződik, hogy a küldött süti/$_SESSION változó valid-e [esetleg IP ellenőrzéssel]), de szóljatok, ha ez kevés.

(Mondjuk a Weblabor egy ide illő cikkében volt egy formai ellenőrzést végző függvény is a küldött kulcsra vonatkozóan, de egy md5()-ölt és substr()-ezett adaton hogyan lehetne?!)

 

Most az a konkrét gondom, hogy ha pl. szerkesztés közben jár le a session, elküldöm az űrlapom, akkor sikertelen lesz a dolog, mert elhajt a rendszer zabot hegyezni.

Hogyan kell megcsinálni, hogy lejárás esetén be tudjak úgy jelelntkezni, hogy a küldött adatok is a helyükre kerüljenek?

 

Köszi!

 

---

 

Láttam olyat, hogy $_SESSION-be menti a cuccokat, de tudtommal ez nem szerencsés.

  • 2 weeks later...
Posted

Sziasztok!

 

Lenne egy apró problémám amit nem értek.

Van egy php-s naptár alkalmazásom, amit félig a netrõl szedtem, félíg én írtam.

Minden szép és jo, de azt szerettem volna megoldani, hogy ha léptetünk a hónapok között, és visszaérünk a mostani hónapra, akkor jelölje meg az aktuális napot. Ez kezdésnél sikerült is.

De amikor beletettem a kódot, minden hónapban megjelölte az adott napot (most az 1-et) valamint azok a hónapok amik hétfõvel kezdõdnek szétcsúsznak.

 

itt az eredeti naptár:

http://webprog.eu/crm/naptar.php

 

ebben ez a kód van:

if(!isset($_GET['date'])){    //hónap amit lekérdezünk
      $time=time();     // ha nincs megadva hónap, akkor a pillanatnyi dátum szerinti hónap lesz
      
      $datum=getdate($time);    //felbontjuk a dátumot
      $datum_ev=$datum['year'];
      $datum_honap=$datum['mon'];
      $datum_nap=$datum['mday'];
      $datum_mainap=mktime(0,0,0,$datum_honap,$datum_nap,$datum_ev);  //mai nap óra perc másodperc nullázva! 
    
    } else {  
     
      $time=$_GET['date'];  //date paraméterben adjuk át melyik hónapot kérdezzük le
      
      $datum=getdate($time);    //felbontjuk a dátumot
      $datum_ev=$datum['year'];
      $datum_honap=$datum['mon'];
   
} 

 

És itt a kiegészített:

http://webprog.eu/crm/naptar2.php

 

A kód amivel ki van egészítve:

  $pontosido_most=time();
  $pontosido=getdate($pontosido_most);
  $pontosido_ev=$pontosido['year'];
  $pontosido_honap=$pontosido['mon'];
  $pontosido_nap=$pontosido['mday'];
  
  
if(!isset($_GET['date'])){    //hónap amit lekérdezünk
      $time=time();     // ha nincs megadva hónap, akkor a pillanatnyi dátum szerinti hónap lesz
      
      $datum=getdate($time);    //felbontjuk a dátumot
      $datum_ev=$datum['year'];
      $datum_honap=$datum['mon'];
      $datum_nap=$datum['mday'];
      $datum_mainap=mktime(0,0,0,$datum_honap,$datum_nap,$datum_ev);  //mai nap óra perc másodperc nullázva! 
    
    } else {  
     
      $time=$_GET['date'];  //date paraméterben adjuk át melyik hónapot kérdezzük le
      
      $datum=getdate($time);    //felbontjuk a dátumot
      $datum_ev=$datum['year'];
      $datum_honap=$datum['mon'];
      
      
      if( $pontosido_ev = $datum_ev  AND  $pontosido_honap = $datum_honap ){
      $datum_nap=$pontosido_nap;
      $datum_mainap=mktime(0,0,0,$datum_honap,$datum_nap,$datum_ev);
      
      }else{
          $datum_nap=$datum['mday'];
      }
  
} 

 

Igazából fogalmam sincs miért nem mûködik...

 

 

Posted

Azt nem tudom, mit csinál rosszul. Amit csinál, abból az jön le nekem, hogy emberünk nem egészen van tisztában a PHP dátumkezelő függvényeivel.

 

1. elrakja a mai dátumot másodpercben

2. visszaalakítja dátummá asszoc tömbbe

3. szétpakolja az asszoc tömböt

4. csinál belőlük másodpercet nullázott idővel

 

Mondjuk a

 

mktime(0,0,0, date('m'), date('d'), date('Y'))

vagy a

 

strtotime(date('Y-m-d'))

pont ezt tudja, egy sorban.

 

 

Holnap (ja, az már ma van) ránézek tüzetesebben.

Posted

@Kiskalóz

  • Azt mondod, hogy a $_GET['date']-ben a hónapot adod át, de azt meg nem adhatod oda a getdate()-nek, timestamp-et vár.
  • A második if feltételnél értékadás van, nem egyenlőségvizsgálat.
  • A második if-else-nél nem kellene lennie az else ágban egy mktime()-nak?

Csak tippelem:

    if (!isset($_GET['date']))
        $datum_mainap = time(); //TIMESTAMP
    else
    {
        $pontosido = getdate(); //ASSOCIATIVE_ARRAY
        
        $datum = getdate($_GET['date']); //?!?!?!?!?!?!?!?!?!?!?!?! mi is jön át? | ASSOCIATIVE_ARRAY

        if ($pontosido['year'] == $datum['year'] && $pontosido['mon'] == $datum['mon'])
            $d = $pontosido['mday'];
        else
            $d = $datum['mday'];

        $datum_mainap = mktime(0, 0, 0, $datum_honap, $d, $datum_ev); //TIMESTAMP
    }
Posted

@Pjotr:

A második pontban volt a hiba..

 

@Balázs:

Kicsit szedett-vedett kód.. majd letisztázom... Ha érdekel "elrettentő" példának felrakom :)

 

 

Köszönöm!

Posted

Annyira nem fontos. :)

 

Azért vagyok csak ilyen "okos", mert mostanában futószalagon gyártom a cég forgalmának különböző időszakait elemző PHP programokat, így dátumfüggvényekkel kelek-fekszem. :P

 

Egyébként az if-ben értékadás az egyik legalattomosabb hiba, mert simán létrejön elgépeléssel is, szintaktikailag nem hibás, átfut rajta a szem. Én is utálom.

Posted

Sziasztok.

 

fopennel ugye lehet ellenõrizni, hogy egy adott html állomány létezik e, vagy sem.

Ez eddig rendben is van, de nem lehet a html forrását egy változóba belerakni?

A lényeg az lenne, hogy egy adott karakterláncot tudjak keresni a html -ben.

Posted

Egy egész oldalt egyetlen változóba? :pislog: Az elég meredek lenne. Tömbbe esetleg, de az is pillanatok alatt felzabálná a memóriát. Egy-egy oldal persze nem, de egy kiszolgáló sok felhasználóval tuti elhasal alatta. A legnagyobb probléma nem is ez, hanem a mintaillesztés egy ekkora szövegre.

Posted

Én viszont nem látom a problémát. Az fopen, gyanítom, nem értelmezi, csak letölti a natúr HTML forrást. Mekkora weboldalnak kell lenni, hogy ez problémát okozzon memóriailag? Az index fõoldala, ami extrém eset, 160K, ez még bõven belül van az általában 1-2 megás PHP-memóriahatáron, és simán lehet rajta mintát is illeszteni, szerintem meg sem kottyan a szervernek.

 

Gondolom, nem arról van szó, hogy nagy forgalmú szerveren minden felhasználó szabadon kereshet az index aktuális fõoldalán...

 

Egyébként az fopennél általában nincs engedélyezve ez a lehetõség, helyette a cURL parancsokat szokták ajánlani.

Posted

Én ezt értem, de saját felhasználásra vannak ezerszer egyszerûbb és hatékonyabb lehetõségek, mint egy script nyelv, amihez ráadásul szerver kell.

Posted

Pl. C#. De ilyen egyszerű feladatokra akár PowerShell. Bár az script nyelv. :)

Posted

Jó, és ha az ember PHP-ban tud programozni? Én például biztos nem állnék most neki C#-ot tanulni meg szívni a Visual Studióval ahelyett, hogy egy óra alatt összedobnám ezt PHP-ban.

 

Posted

Jó, én alapvetõen hatékonyságmániás vagyok. Igyekszem a legmegfelelõbb eszközt kiválasztani, és azt is a lehetõ legjobban kihasználni. Így pl. hiába nem számít sokat, elvbõl nem olvasok be komplett fájlokat a memóriába. Ha ehhez újat kell tanulnom, annál jobb. Bocs, hogy beleszóltam. :P

Posted

Nem azzal van a bajom, hogy beleszóltál, hanem hogy negatívan állítod be a módszert, amit használni próbálna, kifejezetten azt sugallva, hogy ez butaság és valószínûleg nem is fog mûködni.

 

És itt megállsz.

 

Lehet, hogy volna más megoldás, de nem írsz róla, nem mutatod meg neki, hol keresse, hogyan kéne csinálnia.

 

Ezzel nem segítesz neki.

 

Posted

Először kíváncsi lettem volna, hogy pontosan mit is akar. Ha páran használják, akkor semmi gond, ezt írtam is. Ha viszont sokan, akkor már több felé lehet elindulni. Így nulla info nélkül elég nehéz. Az, hogy én hogyan csinálnám, nagyban függ a mintától. Mit keresünk? Szöveget, tageket, JS-t? Egyáltalán nem mindegy. A mintaillesztés tud baromi gyors és fájdalmasan lassú is lenni. Csak azon múlik, hogy jó módszert választunk-e.

Posted

Ha ezt így mind leírtad volna a válaszban, akár kérdés formájában, hogy mit is próbál csinálni, szavam nem lett volna... :)

Posted

Értem. :) Sajnos úgy látom, már nem derül ki.

Posted

file_get_contentssel megvan a forrása, ezt kiírom egy txt-be, majd visszaolvasom és abban keresem a szöveget. Amúgy szöveget szerettem volna. :)

Posted

Gyorsan megcáfoltál. :lol: De a szöveg milyen? Például egy bekezdés része? Mert akkor pl. elég az XML struktúra <p> részeiben keresni. És saját felhasználásra lesz, vagy sok felhasználónak?

Posted

Urak!

 

Olyan kérdésem lenne, hogy volna egy kód ami egy adatbázis alapján készít egy grafikont.

Viszont azt szerettem volna megoldani, hogy ez az oldal x másodpercenként frissüljön. De nem tudom beilleszteni a kódba, mert mindig hibát ír ki és nem jeleníti meg a grafikont.

 

 

Íme a php: (ebbõl kivettem az adatbázis lekérdezgetést meg ilyeneket..)

<?php
    header("Content-type: image/gif");
    $width=700;          //Szélesség
    $height=400;         //Magasság
    $kep = imagecreate( $width, $height );
    $hatter = imagecolorallocate($kep, 255,255,255); //Háttér szine
    $piros = imagecolorallocate($kep, 255,0,0 );
    $idov = imagecolorallocate($kep, 85,82,85 );     //Idõvonal
    $kiosztas  = imagecolorallocate($kep, 214,214,214 ); //Kiosztás
    //Idõvonal függõleges
    imageline($kep, 2, 0, 2, $height, $idov);
    //Idõvonal vizsintes
    imageline($kep, 2,$height-1,$width, $height-1, $idov);

    //Függõleges kiosztás
        //Fele
        imageline($kep, 2, $height/2, $width, $height/2, $kiosztas);
        //Háromnegyede
        imageline($kep, 2, $height/4, $width, $height/4, $kiosztas);
        //negyed
        imageline($kep, 2, $height-($height/4), $width, $height-($height/4), $kiosztas);
        

    imagegif($kep);
    imagedestroy($kep);
    
?>

 

És az amivel az oldalt kívántam frissíteni:

<head>

  <META http-equiv="refresh" content="59;URL=http://www.xyz.hu/xyz.php">

</head>

 

Posted

header("refresh:2;url=/a_fajl_neve_eleresi_uttal.php");

2 másodperc múlva átirányítódik a megadott fájlra.

Posted

Ismét egy kérdésem lenne :)

 

Van egy mappa, benne egy .htaccess és egy .htpasswd fájl, hogy illetéktelenek, ne férhessenek hozzá.

 

Hogyan tudok egy php lefuttatni ebben a mappában (cron job), úgy hogy a php magától megadja a felhasználónevet jelszót???

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...