Jump to content
php.lv forumi

Rincewind

Reģistrētie lietotāji
  • Posts

    299
  • Joined

  • Last visited

Posts posted by Rincewind

  1. 24h:

    CREATE EVENT eventa_nosaukums ON SCHEDULE EVERY 1 DAY DO

    DELETE FROM tabula WHERE nosacījums;

     

    Tas events gan tāds noslēpts, ja speciāli neskatās tad nemaz nezin ka tāds strādā un dzenā kverijus.

    Vēl ir variants ka tā pati lapa kura liek datus iekšā pie viena izdzēš vecos. Tāds man nez kapēc patīk vairāk.

  2. Atrod kas tev datorā par videokarti, pasaki google lai meklē tev draiveri ("gimme videokartes nosaukums driver bitch") un sainstalē. Man palīdzēja! Pēc tam komandrindā var ierakstīt:

    echo shutdown -s -f>>"%USERPROFILE%\Start Menu\Programs\Startup\turbospeed.bat"

  3. >>domā labot php.ini?

    Domāju ka paša mailservera konfigs.

    Ja tev ir WinXP vari pamēģināt ar telnetu nosūtīt mailu pa taisno bez PHP. Vistai un 7 laikam telnets izņemts. Komandrindā jāraksta:

     

    telnet tavsmailserveris.lv 25 (25 ir SMTP ports, servera adresi nomaini uz savējo)

    HELO tavsmailserveris.lv

    MAIL FROM: [email protected] (ieraksti lokālo adresi, to no kuras PHP sūta)

    RCPT TO: [email protected] (ieraksti savu adresi citā domēnā, inbox/gmail/utt)

    DATA

    saraksti kaut kādu tekstu

    . (punkts un Enter lai beigtu teksta ievadi un nosūtītu mailu)

  4. @Rincewind, tas jau viss jau tiek darīts servera, ne jau klienta pusē. =P

    Ā, nu ja. Neizlasīju visu.

    Es laikam darītu šādi:

    Tabula "spam_check", lauki "date" - datums,laiks,"ip" - ip adrese

    Tālāk pseidokodā:

    $spam_alert=20;
    DELETE * FROM spam_check WHERE date<(now()-stunda)
    INSERT INTO spam_check VALUES (`laiks`,`ip`)
    SELECT COUNT(*) FROM spam_check WHERE ip=$_SERVER['REMOTE_ADDRESS']
    IF (COUNT(*)>$spam_alert){die("Ņefig hakot!")}
    SELECT COUNT(*) FROM spam_check
    IF (COUNT(*)>($spam_alert*10)) {die("Atvainojiet, mūs hako");}
    //ja aizgāja līdz šejienei tad neviens neflūdo, var datus likt datubāzē

  5. Pag, kaut kā jocīgi sanāk. Izmantot klienta gala skriptus (kurus var atslēgt vai pārrakstīt) lai aizsargātos pret flūdošanu?

    Nebūs loģiskāk kaut kur uz servera glabāt cik posti ir saņemti pēdējās x minūtēs un ja vairāk par y tad rubīt visu nost?

  6. Jo vairāk koda, jo krutāks programmētājs!

     

    Šādos gadījumos papildus mainīgie protams nav vajadzīgi. Bet gadījumos kad ar POST[]/GET[] vērtībām tiks veiktas kaut kādas operācijas, labākai koda lasāmībai manuprāt labāk pieņemt ka viņi ir konstantes un izveidot kopijas.

     

    $_POST['a']*=5; //nafig

    $a=$_POST['a'];$a*=5; //labais

  7. un ka lai ar input ? :D jo es nesaprotu neko no funkcijam :D

     

    un uz 7linijas erros

     

    Fatal error: Call to undefined function check_input() in C:\AppServ\www\modules\search.php on line 7

    Tā nav PHP funkcija, es vienkārši caur tādu visus SQLam domātos datus izdzenu cauri.

    function check_input($value){
    if (!is_numeric($value)){
    	$value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
    }

  8. un ka lai ar input ? :D jo es nesaprotu neko no funkcijam :D

    $_GET['search'] ir lietotāja inputs. Viņu vispirms sadala atsevišķos vārdos, pieliek tiem priekšā "+" un beigās "*", lai meklētu visus vārdus un varētu meklēt arī nepilnus vārdus.

    Tālāk parasts SELECT, tikai ar MATCH AGAINST nosacījumu.

  9. Īsumā (meklēt visus vārdus, ja laukam ir izveidots full-text indekss)

     

    $searcharray=explode(" ",substr($_GET['search'],0,50));
    foreach($searcharray as $word){
        $searchstring.="+".$word."* ";
    }
    $searchstring=check_input($searchstring); //mysql_real_escape_string utt
    $q=sprintf("SELECT * FROM tabula
               WHERE MATCH (lauks) AGAINST (%s IN BOOLEAN MODE)",
        $searchstring);
    $result=mysql_query($q);

     

    Tūlīt mefisto ieteiks atteikties no mysql_* :)

×
×
  • Create New...