Gå til innhold

slacky

Medlemmer
  • Innlegg

    882
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av slacky

  1. Setter en krone på at `level` er en INTEGER.

    Altså du skal ikke ramme den inn... <-- Feilaktig informajson fra min side. Edit skal være korrekt:

    ... 
    SELECT brukernavn, registrert, avatar, profiltekst 
    FROM `brukere` WHERE (
    `brukernavn` LIKE '%$_POST['search']%' 
    OR `registrert` LIKE '%$_POST['search']%' 
    OR `avatar` LIKE '%$_POST['search']%' 
    OR `profiltekst` LIKE '%$_POST['search']%'
    ) AND `level` !='4' ORDER BY `id` DESC
    

  2. Ikke at jeg har lest gjennom koden du publiserte, noe som vil ta meg noen minutter, brukte tiden på å lage en kode som kansje hjelper, om jeg forsto problemet...? :p

     

    //Dette er ikke en kode, men men en forenklet fremgangsmåte. 
    <?php
    //Dette er ikke en kode, men men en forenklet fremgangsmåte. 
    function validate($user, $pass, $pin) {
    $userSql = "SELECT * FROM grim_users WHERE username='$user' and password='$pass'";
    $userRes = mysql_query($userSql);
    $user    = mysql_num_rows($userRes);
    $getUser = mysql_fetch_array($result);
    
    if($user==1){
    	$id       = $getUser['user_id'];
    	$pinsSql  = "SELECT * FROM grim_pins WHERE user_id='$id' and pins LIKE BINARY '$pin'";
    	$pinsRes  = mysql_query($pinsSql);
    	$pins     = mysql_num_rows($pinsRes);
    	if($pins==1) {
    		$res = "Valid";
    		//Skal vi slette brukte pins? -->
    		mysql_query(DELETE FROM grim_pins WHERE pins LIKE BINARY '$pins' AND user_id='$id');
    	} 
    	elseif($pins!=1) {
    		$res = "Invalid pin!";
    	}
    }
    elseif($user!=1) {
    	$res = "Invalid Username or Password!";
    }
    return($res);
    }
    
    if(isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = md5($_POST['password']);
    $pin      = $_POST['pin']; //Case-Sensitive
    $validate = validate($username, $password, $pin);
    if ($validate == "Valid") {
    	/*
    	--> registrer session
    	--> Og alt annet tull du trenger! 
    	*/
    } 
    else {
    	echo $validate;
    	/*
    	--> Evt gi ut annen feilmelding...
    	*/
    }
    }
    ?>
    <HTML>POSTFELT</HTML>
    

     

    Jeg formoder at du forstår diverse endringer må bli gjort, integrering er nødvendig.. Etc... Dette skal ikke være så vanskelig som du gjør det til, og skjønner helt egentlig ikke problemstillingen.

     

    --> Brukerdatabasen inneholder brukernavn, bruker_id og password.

    --> Pindatabase inneholder pins, og bruker_id som den tilhører.

     

    Utpå dette så bygger vi et script som først matcher om brukeren eksisterer, derreter så matcher vi om pins eksisterer, alt dette skjer i fuksjonen jeg har vist til ovenfor. Den skal ikke være nødvendig å redigere mye...

     

    Derimot så er det nødvedig med diverse sikkerhetstiltak.. Slik du har i din kode.

    --> Nå som dette steget først er forstått, og integrert, så kan du utvide.

  3. Nå skal vi leke "finn feilen"! :D

     

    function START() {
    for($i=1 ; $i > -1; $i++) { //$i springer evig rundt, men skal pauses hver 100.
    	if(($i<=100) AND ($i%100 == 0)) { // Jeg skal egentlig sove nå, men NEIDA!!
    		echo "<br /><b>I'm takin a coffebreak... And zZzZz</b><br />"; 		
    		sleep(100);
    	}
    	echo spider($i); //Back to crawling!
    }
    }

     

    Hvor vidt jeg skal crawle ved bruk av curl er fremdeles usikkert, da jeg får til det samme ved hjelp av andre funksjoner, men hastigheten kan helt klart bli forbedret.

     

    Som du sier, så er boten en minimalistisk del av dette prosjektet. Jeg har planer for hvordan alt skal brukes. Jeg håper å kunne lage en enkel søkemotor, med personlige premisser, personer definerer selv sitt "outcome". Slik som google har sine >200 annonyme varibler for å gi et resultat basert på hva flestparten ønsker, så tenker jegpå et system som gir muligheten til å endre slike verdier til en vis grad. Du får altså ditt eget søk, ingen søk er like. Men blir nok vanskelig, eller tidskrevende.

  4. Når de skal logge seg på får de beskjed om å skrape fram f.eks. kode nr 16 og logge seg inn med den i tillegg til vanlig brukernavn og passord. - akkurat som en nettbank egentlig.

    Host hark, akkurat som MinID, som er veldig vanlig i offentlige tjenester.

     

    Sikkherhet rundt kodene, og litt frihet på hvordan du ønsker de generert, kan bli gjort med denne funkjsonen:

     

    Jeg vil annbefale å ta ibruk metoden John Doe viser til, men om du ønsker mer sikre passord, så kan dette være et alternetiv for å skape pins.

    function create_pins($length=8,$use_upper=1,$use_lower=1,$use_number=1){
    $upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $lower = "abcdefghijklmnopqrstuvwxyz";
    $number = "0123456789";
    if($use_upper){
    	$seed_length += 26;
    	$seed .= $upper;
    }
    if($use_lower){
    	$seed_length += 26;
    	$seed .= $lower;
    }
    if($use_number){
    	$seed_length += 10;
    	$seed .= $number;
    }
    for($x=1;$x<=$length;$x++){
    	$pins .= $seed{rand(0,$seed_length-1)};
    }
    return($pins);
    }
    
    $pins = create_pins(10,1,1,1); //10 tall/bokstaver, aktiver upper, aktiver lower, aktiver tall.
    
    echo $pins; //returnerer f. eks xD3rw03L7c
    

     

    Hvordan matche case-sensitive til databasen:

    mysql_query("SELECT * FROM din_tabell WHERE pins LIKE BINARY '$pins'");
    

  5. Ser etter det som står i topic.

     

    Slik at jeg kan få en gratis innledning i systemet, hvor det står skrevet opp fuksjoner scriptet inneholder, en innledning til fuksjonen er selvfølgelig et behov.

     

    Hvilke brukergrupper ville java passet best til når det gjelder webutvikling.

    Kan php fra før av, men det er et statisk språk, altså websiden må refreshe for at noe skal skje, uten bruk av 3. part språk, alà js.

     

    Er det vankelig å kalde til 3. part løsninger, kalde til en linux-server? php har php-ssh2 for dette, kan kjøre ssh (secure shell)-kommandoer. Evt exec("script.sh"); <- starte allerede programerte fuksjoner.

     

    For å utvikle i språket, er det ekisterende rammeverk for dette, eller må jeg veksle mellom dokkumenter (gedit/kwrite/notetab), og browser som kalder til java-applet?

  6. Heisann Demiurgen.

    Det hjelper å vite hva dette skal brukes til, eller mer spesifikk informasjon rundt det hele.

     

    Slik jeg forstår det:

    Du ønsker at denne koden skal personen motta på en webside?

     

    Nå ønsker du at koden bare fungerer i X tid, etter mottat.

    - Hvorfor? (kan bli nødvendig info)

     

    Denne koden skal også matche noe, slik en faktisk vet at den ikke er falsk/feil.

     

     

    Dette lar seg gjøre, ganske simpelt, men du blir nødt til å bruke cron-jobb. Jeg tror du heller skal sjekke dette opp på javaforumet, da java er MYE bedre egenet for slik som dette. PHP er ikke dynamisk, så når personen har mottatt koden, så vil vi ikke kunne ha oppdatert databasen (med tidsfristen lagret, samt koden).

     

    Som vil da si: Om klienten ikke velger å refrashe etter at tiden er løpt ut, så vil han/hun kunne benytte seg av koden.

    Det er her cronjob er nødvendig, som sjekker databasen hvert 10. min, og ser om noen koder er utgått.

     

     

    Videre kommer det ann på bruk:

    Om brukeren skal kunne gjøre noe inne i dette kodegrensesnittet, så må koden være lagret som en cookie (alà et innloggingscript), og koden må ikke dø ut/slettes etter med det første, altså du vil trenge at koden er valid i noen timer (kommer iallefall ann på hva det gjelder), evt en funksjon for å si at koden er i bruk i nåtid. Kan kreve enda en cronjob.

     

     

    Altså gir du spesifikk info her så kan jeg garantere at noen hjelper til, om det ikke viser seg å bli en tungvindt, eller idiotisk oppgave. :b

    Men, jeg vil tro at java gjør dette enda bedre. (=

  7. jQuery er ganske simpelt, men kan også bli gjort ganske avansert, ikke at jeg har mye erfaring, men klarer pusle ihop slike små script :)

     

    //---jQ Insert into DB with <a href='#' name='Dette skal jeg sende' id='og dette'>---//

    $(document).ready(function() {
      $(".DinFunksjon").click(function() {
         var id=$(this).attr("id");
         var name=$(this).attr("name");
         var dataString = 'id='+ id + '&name='+ name;
    
         $.ajax
         ({
     type: "POST",
     url: "normal_kontakt_database.php",
     data: dataString,
     cache: false,
     success: function(html) {
               ; //Gjør noe
               $("#favorized").html(html);
     }
         });
      });
    
    });
    

    Jeg legger til at det kan være feil her, kan ikke mye javascript, samt jQuery...

     

    Php-delen er rett frem, til mitt eksempel:

    if($_POST['id']) {
      $id=mysql_escape_String($_POST['id']);
      $name=mysql_escape_String($_POST['name']);
    
      mysql_query("INSERT INTO blabla (rad_1,rad_2) VALUES ('$name','$id')");
    }
    //HTML return
    echo "<script>alert('Tusen takk for at du gjorde noe helt idiotisk, ikke gjør det igjen!');</script>"; 
    
    
    

     

    Hovedfilen:

    <?php
    echo "<a href='#' name='jeg liker' id='min_ip'>Post noe dritt/I like this tread</a>";
    echo "<span class=\"DinFunksjon\"></span>"; //her returnerer HTML-return
    
    ?>
    

     

    Jeg kan notere at name kan være en eller annen string, samt med id.. F. eks ID kan være kalling til remote_ip.. og name kan ver brukernavnet.. og slik kan du lage en legg til i favoritter-knapp, kansje en liker-knapp... MYE annet, men med begrensninger det dette er en litt annen måte å gjøre ting på, gjennom <a>-taggen.

  8. Hmm.. Interessant.

    Beklagligvis så har jeg ingen kjenskap til python, og ut i fra den lille kunskapen jeg har, så er språket bygd opp en del anderledes en php. Noe som krever MYE tid for å lære. Jeg kan php ganske greit, og tenker fortsette her en stund til, iallefall intill jeg ser en virkelig nødvendighet i et annet språk [=

  9. Hehe, klarer å starte scriptet fra kommandolinja wink.gif Det er ikke et problem. Buuut eventually... Så vil scriptet ta kvelden, om ikke hele serveren bare gjør det. Det trenger å stoppes fra tid til annen for å kunne få seg en pause. Det sluker tross alt resurser. Det må kunne kjøre i toppen noen minutter. For å så få ett minutt pause. Og jeg har selv ingen anelse på hvordan jeg skal gjøre dette på en handy måte.

     

    Akkurat nå, så har jeg "meta refresh" satt til 60 sekunder øverst i headeren, denne starter ikke å gå da scriptet bare laster å laster. Defor har jeg kombinert den med set_time_limit(120);, så når tidsgrensen scriptet kan bruke er over, og 60 sekunder er gått, så vil fanen reshreshe. Og scriptet vil starte på ny.

     

    - Idiotisk metode.

     

    #edit: Ser du nevner cronjob. Vil sansynligvis løse saken.

  10. Problem med at den stopper opp etter den har lagt inn rundt 100 filer i databasen er løst ved å sette:

    -> set_time_limit(140);

     

    Og php header refresh 60 sek etter at den har stoppet.

     

    Slik at den driver på i litt over 2 minutter, får pause i 1 minutt. Til nå har jeg (30 min) samlet 1000 rader fra verden med webside info, og dette skjer på en liten LAMPP-server med 700mb ram og 2.6GHz CPU, gikk slett ikke verst.. :) Men, den kresher vel før eller siden, mysql sluker ram, men tenker den klarer 10k+ rader med så lite info, bare de ikke dras ut samtidig :D

     

     

    Dette var en god crawler til å bare være bygd opp av noen 10-talls linjer med kode.

    Skal utvikle den vidre, og sette opp databaser med fulltext-search. og muligens legge alt inn på server-clusteret mitt, slik at jeg kan vireklig få benyttet meg av morsomhetene :)

     

     

    Samt så må jeg spøre om det er noen annen måte jeg burde kalle til databasen på..?

    Måten jeg gjør det på tror jeg ikke er "heeeelt korrekt", se LIMIT, og rand() :p

     

    Dette vare bare metoden jeg brukte for å få testet hele scriptet, men jeg trenger at den lister på normalt vis, kjører en etter en tabell... Så må jeg finne en naturlig måte å sette den til å gå gjennom de tabellene som er eldre en xxxxx (unixtime)-> 7 dager --> 87000*7 sekunder (ca 7 dager).

     

    function shuffleIt($point) {
           $sql .= "SELECT * FROM ".PREFIX."links ORDER BY rand() LIMIT $point,1";
           return ($sql);
    }

  11. Dette er slett ingen perfekt kode, og er vel langt i fra mål...

    Benytter meg av count, for å telle radene i preg_match_all, men opplever noe underlig, veldig underlig vil jeg si!

     

    Den teller ikke med den siste raden... Finner 10 lenker, men den påstår at jeg bare finner 9...

    har testet på andre klomsemåter å fått til å funnet 10 lenker.. :o

     

     

    <?php
    
    set_time_limit(87500);
    
    function getPageTitle($url) {
           $page  = file_get_contents($url);
           preg_match("/<title>(.*)<\/title>/imsU", $page, $title);
           return $title[1];
    }
    
    function getPageDesc($url) {
           $page  = file_get_contents($url);
           preg_match("/<meta\s+name=\s*[\"\']?description\s*[\"\']? content=[\"\'](.*)[\'\"]/imsU", $page, $desc);
           return $desc[1];
    }
    
    function shuffleIt($point) {
           $sql .= "SELECT * FROM ".PREFIX."links ORDER BY `fragle_id` ASC LIMIT $point,1";
           return ($sql);
    }
    
    function getDatabase($point) {
           $sql      = shuffleIt($point);
           $result   = mysql_query($sql);
           while ($r = mysql_fetch_array($result)) {
               $url .= $r['fragle_url'];
           }
           return($url);
    }
    
    function makeGoodURL($URL) {
    if (substr($URL, -1) != "/") {
       $URL_fix = $URL;
    } else {
       $URL_fix = substr($URL, 0, -1);
    }
    
    if (substr($URL_fix, 0, 7) != "http://") {$URL_done = "http://".$URL_fix;} 
    else {$URL_done = $URL_fix;}
    
         return $URL_done;
    }
    
    //Kan skape evig loop ved: for($crawl=0; $crawl > -1; $crawl++) {
    for($crawl=0; $crawl < 10; $crawl++) { //antall fetch fra databasen
    
    
    
     $start = getDatabase($crawl);
     $page  = file_get_contents($start);
     $stripped = strip_tags($page, "<a>");
    
     preg_match_all("/<a\s+href\s*=\s*[\"\']?http:\/\/([^\s\"\']+)[\"\'\s]+/ims", $stripped, $matches, PREG_PATTERN_ORDER);
    
     $rows = count($matches[$crawl]);  
    
     for($i=0; $i < $rows; $i++) {
    
       $newstart = makeGoodURL($matches[1][$i]);
       $title    = getPageTitle($newstart);
       $desc     = getPageDesc($newstart);
       $date     = time();
       //echo $newstart."<br />";
       if($newstart != "") {
         $rex = mysql_query("SELECT * FROM ".PREFIX."links WHERE fragle_url='$newstart'");
         if (mysql_num_rows($rex) == 0) {
            mysql_query('INSERT INTO '.PREFIX.'links (fragle_url, fragle_title, fragle_desc, fragle_last_crawl) VALUES ("'.$newstart.'", "'.$title.'", "'.$desc.'", "'.$date.'")') or die(mysql_error());
         }
       }
     }
    }
    
    ?>

     

    Problematisk...

  12. Heisann!

     

    Sitter å vurderer å lage en crawler/spider-basert søkemotor.. :)

    Denne skal søke hele "www" etter websider, fetche tittel, beskrivelse (meta desc) og selv url-en.

     

    Dette lar seg gjøre med file_get_contents, kobinert med preg_match (_all).. Ikke at jeg er noen spesialist på regex, og preg_match_all er nytt for meg.

     

    All data må nødvendigvis lagres i en (mysql) database, med informasjon som er mottat fra preg_match, og hvilket hopp/nivå den er på?

     

    Fikk satt ihop en regex som fungerer for å fetche lenker... :)

     $start = "http://www.hardware.no";
     $page  = file_get_contents($start);
     $stripped = strip_tags($page, "<a>");
    
     header("Content-type: text/plain");
     preg_match_all("/<a(?:[^>]*)href=\"([^\"]*)\"(?:[^>]*)>(?:[^<]*)<\/a>/is", $stripped, $matches, PREG_PATTERN_ORDER);
    
     print_r($matches);
    

    I andre del så finner en "clean" lenker, altså det som er inni href-en. Dette virket som en god måte å gå frem på. Selv bare på første siden til hw, så fant jeg 300+ lenker (=

     

     

    håper noen er lysten på å hjelpe til :)

  13. //Edit

     

    Da var scriptet "ferdig". scriptet er på ca 250 linjer m. kode (ikke så voldsomt enormt).

     

    Finner resultater og lister etter liket og antall visninger.

    Antall visninger har bare fått en viss liten verdi i søket, men det teller inn. Skal også legge til flere smarte små variabler som skal telle inn på resultatet om jeg kommer på noen (=

     

    Bare kom med tips. Dette er en søkemotor som bare skal brukes i forhold til en enkelt webside, så antall variabler er litt begrenset. ^^

     

    Om det er noen som ønsker å hjelpe til med å øke kvaliteten på koden, så bare gi et pip. Kan gi den ut her (=

  14. Dette er en heller vanskelig sak å løse, men har en liten fiks, som heter MySQL :b

     

    Det er en omvei, men ved å putte inn all data i hver sin rad i databasen med noen/mange rare id'r så vil jeg da kunne hente ut denne tabellen, og liste etter prosent-tallet som ble returnert.

     

    Kort fortalt, hva jeg gjør:

    Så altså jeg henter nyhets-overskrift/tags som er relatert til "NYHETEN" fra databasen, kjører dem gjennom dette scriptet, som returnerer prosent-verdi på relativitet og nødvendig nyhetsinformasjon, lagrer dette i en annen database-tabell.

     

    Henter ut med vanlig sqlarray, og sorterer nyhetene ut i fra ralativitet (prosent).

     

    Deretter så skal det lages et script som tømmer databasen igjen, 1 gang dagen/timen, f.eks.

     

    Dette blir bra saker, da jeg ikke fikk til den dere hekkans SQL FULLTEXT-søk... Og er iallefall bedre en LIKE, selv om jeg blir å bruke den i dette scriptet også, for å da liste ut nyheter som skal sorteres/relativiteres.

  15. Heisann, jobber med en merkelig funksjon, har en array som inneholder diverse setninger, diverse deler av scriptet vil bli endret, f. eks denne arrayen.

     

    Skal hente informasjonen fra en database til slutt, når/om jeg kommer sååå langt..

     

    Men, for nå så forsøker/ønsker jeg å sortere en loop etter prosent, eller andre alternetive løsninger... Scriptet inneholder ingen feil, men den sorterer bare ikke over det som er mottat fra denne arrayen i toppen.

     

    function database($id) {
    $db = array(
    "Eminem - Like Toy Soldiers", 
    "Eminem - When I'm Gone", 
    "Eminem - We Made You", 
    "Eminem - Sing for the moment", 
    "Eminem - Cleanin Out My Cloest",
    "Rihanna - love the way you lie",
    );
    for ($i = 0; $i < 1; $i++) {
       $get_id .= $db[$id]." ";
    }
    return ($get_id);
    }
    
    
    
    function stack($needle, $haystack) {
    for($h = 0 ; $h < count($haystack) ; $h++) {
       $haystack[$h] = strtolower($haystack[$h]);
    }
    return in_array(strtolower($needle),$haystack);
    }
    
    
    
    function suggestion($title, $id) {
    
    //Input
    $title  = preg_replace("/'/", "", $title); // remove aphostrofe
    $title  = preg_replace('/[\W_]/', ' ', $title); // remove evryting
    
    $split = preg_split("/\s+/", $title); // array
    
    $numb  = str_word_count($title, 0); // Count words
    
    //From DB
    $data  = database($id);
    echo "<b><i>".$data."</i></b><br/>";
    $data  = preg_replace("/'/", "", $data); // remove aphostrofe
    $data  = preg_replace('/[\W_]/', ' ', $data); // remove everyting
    $data  = explode(" ", $data);
    $string = $data;
    
    
    for($i = 0; $i < $numb; $i++) {	 
       $x = $split[$i];
       if (stack($x, $string)) {
          $out .= "Yes ";
       } 
    
    }
    return ($out);
    
    }
    
    
    function suggestion_count($video, $id) {
    
    $sugested = suggestion($video, $id);
    $numb  = str_word_count($sugested, 0);
    $out .= $numb;
    return ($out);
    }
    
    
    
    $my_vid  = "Eminem - Love The Way You Lie ft. Rihanna"; //Søket
    echo "You searched for: <i>$my_vid</i>";
    
    $i = 0;
    while($i < 6) { /* Eksisterer bare 7 svar (denne økes når "den" blir "koblet til" en database. */
    
      echo "<div style='padding:10px;border:1px solid #000;margin:10px;'>"; 
      $id = $i++;
    
      $sge = suggestion_count($my_vid, $id);
    
      $my_vid  = preg_replace("/'/", "", $my_vid); // remove aphostrofe
      $my_vid  = preg_replace('/[\W_]/', ' ', $my_vid); // remove evryting
      $cnt     = str_word_count($my_vid, 0);
      $str     = $cnt;
      $test    = $sge;
      $total   = $test+$str;
      $prc     = ($test*100)/$total*2;
    
    
      echo "Relativity: ".$prc."%<br /><br />";
      echo "Matches: ".$sge."<br />";
      echo "</div>";
    
    }
    
    

  16. Heisann!

     

     

    Vel, da jeg har NULL kjenskap til ajax, så må jeg selvfølgelig bare spørre hvordan jeg skal få dette til ^^

    Har et video-script, hvor folk skal kunne like, dislike, legg til som favoritt...

     

    Da er det nødvendig med ajax, siden ikke må refresh, om en skal f. eks "like" videoen ^^

     

    Hadde vært greit å gjøre dette gjennom "<a>"-taggen, da slipper jeg en "lang" form, men er ikke nødvendig om det er nermere umulig.

     

    Slik ser det altså ut akkurat nå (har dog de to andre knappene også)... Det ikke er implementert noen fuksjon som du ser.

    <td class='video_button' style='width:46px;'>
       <a href='#'>
      	     <div style='float:left;padding-right:6px;'>
    
            <img src='images/icons_16/add.png'>
    
      	     </div><div style='padding-top:3px;'>
    
            Fav.
    
      	     </div>
       </a>
    </td>
    

     

     

    Håper det sitter noen med ajax-kunnskap her ^^

     

     

    Edit: Denne er løst, fant noen flotte jQuery script :)

×
×
  • Opprett ny...