Gå til innhold

kakkle

Medlemmer
  • Innlegg

    731
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av kakkle

  1. Hmmm.. Merkelig.. Har prøvd å reprodusere feilmeldingen...

     

    Følgende fungerer hos meg:

    classes/Page.php:

    <?php
    
    class Page {
    	function SayHello() {
    			echo "Hello ";
    	}
    }
    ?>

     

    autoload.php

    <?php
    
    function __autoload($class) {
    	require_once("classes/{$class}.php");
    }
    
    
    class Index extends Page {
    	function onYou() {
    			echo "on You";
    	}
    }
    
    $index = new Index();
    $index->SayHello();
    $index->onYou();
    //$index->pageFooter();
    
    unset($index);

     

    Hvilken versjon av php kjører du ?

    Jeg har 5.2.1

    Evt så hadde det kanskje hjulpet å sett litt på Page.php, kanskje ?

  2. Men så kan man jo spørre om hva vitsen med å skrive en offline tekst i det hele tatt ?

    Den vil jo ikke vises, siden server1.php vil lastes med engang.

     

    Kan evt bruke :

    header("refresh:2; url='server1.php'");

    hvor siden videresender etter 2 sekunder, evt et annet antall skunder, dersom du vil det.

    Denne kan også settes før output til browser, uten at det gjør noe.

  3. Hvis du fortsatt vil bruke ereg. (Er vel ikke vits i å bruke eregi, da det bare dreier seg om tall):

    if(!eregi('^[0-9]+$', $A))
    {
    echo "Inneholder noe annet enn tall.";
    }

    Dette vil da si at det må starte (^) med et tall, og slutte ($) med et tall, med 1 eller flere (+) tall mellom start og slutte... Hadde du skippet + tegnet, ville det bare blitt godtatt 1 siffer

    Husk at denne ikke godtar tomme strenger. Dersom du vil det, så bruker du * (0 eller flere) istedetfor +.

     

    Men når det finnes en funksjon for slikt, så er det like greit å bruke den

  4. Det tofagerl mener, er at du kan bruke cron til dette på linux, og at du skal søke etter dette på google. Cronjobs tilsvarer Planlagte oppgaver i windows (Scheduled tasks).

    Men hvor vidt du får lov til å opprette egne cronjobs på webhotellet ditt, det vet jeg ikke.

    Dersom du har tilgang til ssh, så kan du jo prøve, evt så bør det være en opsjon på kontrollpanelet ditt.

  5. Dette bør vel funke, dersom du absolutt vil bruke switch / case

    <?php
    switch($row['taken']) {
    	case 0:
    			$status = "freeSeat";
    			break;
    	case 1:
    			switch ($row['uidTaken']) {
    					case 2:
    							$status = "userSeat";
    							break;
    					default:
    							$status = "takenSeat";
    							break;
    			}
    	default:
    			break;
    }
    ?>

     

    EDIT: @Crowly. Koden over gjør jo det samme som din, da... eller ?

  6. Du må legge inn $teller=1 før while løkken som skriver ut innleggene, også legger du inn if setningen etter du har skrevet ut et innlegg (inni while løkken). $teller++ må da være på slutten av whileløkken.

     

    Ser forresten at du allerede har en $i som du bruker, så du kan jo bare bruke den, istedetfor å lage en ny $teller.

    Men pass da på at siden den starter på 0, så vil 0%5 ==0, dvs at den vil begynne med en annonse etter det første innlegget allerede, men det er bare å plusse på 1 i if setningen. ;)

  7. Script som er skrevet av skeib:

    https://www.diskusjon.no/index.php?showtopi...9entry3088549

     

    Går an å ta utgangspunkt i dette, men det må nok sikkert endres endel.

    Pass f.eks på formatet på dato, da scriptet eksploderer litt datoer utifra et bestemt format.

     

    Du kan også se denne posten for diskusjon:

    https://www.diskusjon.no/index.php?showtopic=605969&hl=

     

    Si fra dersom du trenger noe hjelp

     

    EDIT: Ser ut som om Zend_mail() er en bedre løsning, da... :)

  8. Vel, han tar jo en rename etter at han har brukt move_uploaded_file. Det nye filenavnet ($_SESISON['id'].jpg) kan du forsåvidt angi direkte i move_uploaded_file.

     

    Er enig at det ville vært litt mer oversiktlig, dersom $_SESSION['id'] fikk en "lokal variabel:

    $id=$_SESSION['id'];
    

    Jeg savner litt informasjon om hva som er problemet. Er det at bildet ikke blir endret størrelse, eller er det at bildet ikke ligger der det skal ligge ?

     

    Du sier også at størrelsen skal bli 80x80. Men utifra koden, så blir størrelsen halvparten av den opprinnelige størrelsen ($width*0,5)

     

    Men si litt mer om hva som skjer, og hva som ikke skjer... Evt feilmeldinger du får.

  9. Hei

     

    Sitter og funderer på hva du egentlig prøver å oppnå, CruellaDeVille, men det kan kanskje se ut som om du vil legge til $glue foran $xml_end ? Dersom begge to er strenger som du vil ha i en ny streng, $newxml, er vel den beste måten slik:

    $newxml = $glue.$xml_end;
    

    Hvis det var det du ville, da...

     

    Evt slik du har satt det opp, så burde vel kanskje bare holde med

    $newxml = $glue;
    

    eller ?

     

    EDIT: Og feilmeldingen, betyr at argumentene som du bruker i funksjonskallet, ikke stemmer overens med definisjonen av funksjonen.

    Du har:

    implode(string, string)

    mens definisjonen er:

    implode(string, array)

  10. Okei.. du har misforstått litt her. Filen du skal endre på, er index.php, og ikke addshout.php.

     

    Legg merke til hvilken del du skal bytte ut

     

    Og den siste koden jeg la inn, er en kode som er istedetfor den jeg skrev først. For å sjekke at filen finnes. Dersom filen ikke finnes, så får du opp en feilmelding, uten denne sjekken.

     

    og den print_r og <pre> saken, var kun ment for å sjekke at variabelen inneholder noe...

     

    Uansett. Glem nå alt som jeg skrev over og les under ;) :

     

    i filen index.php, bytt ut:

    <?php
    
    $fp = fopen("shouts.txt","r");
    while(($shout = fgetcsv($fp,1000,":")) !== FALSE) {
    
       echo "<b>".$shout[0]." : </b>".$shout[1]."<br>";
    }
    
    fclose($fp);
    ?>
    

    med:

    <?php
    if(file_exists("shouts.txt")) {
     $file = file("shouts.txt");
     $last = array_reverse($file);
     for($i=0;$i<5;$i++) {
       $shout = explode(":", $last[$i]);
       echo "<b>".$shout[0]." : </b>".$shout[1]."<br>";
     }
    }
    ?>
    

     

    Bare spør igjen, dersom det var utydelig. Bedre å spørre en gang for mye enn en gang for lite.

     

    Spør også dersom du har problemer med å forstå hva som skjer. Alltid veldig greit å skjønne hva som skjer i koden. Da blir det enklere å bruke lignende i andre sammenhenger.

     

    EDIT: Manglet en } i koden :(

     

    Det gjør forresten ikke noe om filen ikke finnes, den vil bli opprettet, så snart noen legge inn "et rop" :)

     

    EDIT 2: Ser forresten at mitt forrige innlegg om "delen i testen" er dårlig formulert, så det beklager jeg. Skulle også spesifisert hvilken fil du skulle editere...

  11. Hehe...

     

    Har du litt mer informasjon om hva som skjer ? Jeg vil tro at den øverste koden er greiest.

    Evt for å debugge, kan du skrive ut :

    echo "<pre>";
    echo print_r($last);
    echo "</pre>";
    

    etter $last = $last = array_reverse($file);

    og se om du får ut hver linje fra den siste til den første...

    Hver linje bør vel se noe ala dette ut:

    Bruker: Rop

     

    EDIT: Testet det kjapt hos meg, og funker kjempefint.

     

    Du byttet ut:

     $fp = fopen("shouts.txt","r");
    while(($shout = fgetcsv($fp,1000,":")) !== FALSE) {
    
       echo "<b>".$shout[0]." : </b>".$shout[1]."<br>";
    }
    
    fclose($fp);
    

    med:

    $file = file("shouts.txt");
    $last = array_reverse($file);
    for($i=0;$i<5;$i++) {
      $shout = explode(":", $last[$i]);
      echo "<b>".$shout[0]." : </b>".$shout[1]."<br>";
    }
    

    Jeg ville også lagt denne delen inn i test som sjekker om filen finnes:

    if(file_exists("shouts.txt")) {
     $file = file("shouts.txt");
     $last = array_reverse($file);
     for($i=0;$i<5;$i++) {
        $shout = explode(":", $last[$i]);
        echo "<b>".$shout[0]." : </b>".$shout[1]."<br>";
     }
    

×
×
  • Opprett ny...