Gå til innhold

PHP·pub - Programming With Attitude - and beer


Anbefalte innlegg

Videoannonse
Annonse

CREATE TABLE `listAccountCats` (
`ID` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(32) COLLATE latin1_danish_ci NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci

 

CREATE TABLE `listAccounts` (
`ID` int(3) NOT NULL AUTO_INCREMENT,
`catID` int(2) NOT NULL,
`serviceName` varchar(48) COLLATE latin1_danish_ci NOT NULL,
`url` varchar(128) COLLATE latin1_danish_ci NOT NULL,
`email` varchar(64) COLLATE latin1_danish_ci NOT NULL,
`username` varchar(32) COLLATE latin1_danish_ci NOT NULL,
`password` varchar(32) COLLATE latin1_danish_ci NOT NULL,
`name` varchar(32) COLLATE latin1_danish_ci NOT NULL,
`surname` varchar(32) COLLATE latin1_danish_ci NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci

Lenke til kommentar

Verdens styggeste måte å gjøre det på, men det viser hvertfall hvordan det i teorien kan gjøres.

 

<?php
$sql = "SELECT a.*, c.name AS category_name FROM listAccounts AS a LEFT JOIN listAccountCats AS c ON (a.catID = c.ID) ORDER BY catID ASC;";
$rows = $db->query($sql);
if (count($rows) > 0) {
$currentCategory = $rows[0]['catID'];
?><table>
<?php
foreach($rows as &$row) {
	if ($row['catID'] !== $currentCategory) {
		$currentCategory = $row['catID'];
?></table>
<table>
<?php
	}
?><tr><td><?= $row['name'] ?></td><td><?= $row['category_name'] ?>
<?php
}
?></table>
<?php
}

Endret av JohndoeMAKT
Lenke til kommentar

Dette her lager jeg faktisk ikke et eget innlegg på:

 

Noen andre som erfarer at det tar vanvittig lang tid å oppdatere endringer gjort i php kode? Når jeg reloader siden etter å ha lagt inn redigert fil på serveren viser den nada endringer.

 

Bruker include av andre php filer, om det skal ha noe å si.

 

Edit:

 

Løser seg bedre når jeg tar bort includen, for så å legge til igjen. Noen som aner hvorfor det er slik?

 

Lagres f.eks økten?

Endret av danba
Lenke til kommentar

Bare for å avklare: du venter med å refreshe til alle filer er ferdig lastet opp på server? Hvis du har prøvd å aksessere en fil samtidig som den lastes opp, vil du som regel oppleve 500-server-feilmld.

 

Selv bruker jeg en editor (PhpStorm :love:) som laster opp til server (via sftp) for hver endring jeg gjør. (Nei, ikke hvert eneste tastetrykk, men ved lagring eller skifte av focus (alt+tabbing) sendes fila over.) På trådløst nett har jeg derfor flere ganger opplevd at filer ikke er "ferdig mottatt" på server, og også at jeg klarer å skrive til en fil før forrige oppdatering var på plass...

 

Heldigvis løser alt seg hvis jeg legger til en endring (whietspace), lagrer, og venter halvtannet sekund før jeg laster inn siden.. Alternativt kan jeg finne meg en tp-kabel. Da fordufter problemet :-)

Lenke til kommentar

Høres ut som en utrolig tungvindt måte å gjøre det på. Lastes alt opp på "live" server, slik at om du gjør noe feil vil brukere kunne se det med en gang? I så fall er det veldig kritisk om du lager noe stort.

 

Om det kun er for privat testing, virker det fortsatt tungvindt å måtte laste opp hele tiden. Kan du ikke teste lokalt?

Lenke til kommentar

Høres ut som en utrolig tungvindt måte å gjøre det på. Lastes alt opp på "live" server, slik at om du gjør noe feil vil brukere kunne se det med en gang? I så fall er det veldig kritisk om du lager noe stort.

 

Om det kun er for privat testing, virker det fortsatt tungvindt å måtte laste opp hele tiden. Kan du ikke teste lokalt?

Filene lastes på ingen måte mot live fil-område nei. Hehe - da måtte jeg nok ha valgt en annen metode ja.

 

Jeg har mitt eget lille private utviklerområde i bedriftsens server-hall. Selvfølgelig kunne jeg ha startet opp apache lokalt, men lat som jeg er finner jeg det svært deilig å slippe lokal apache-config og oppsett av webhotell, rammeverk, etc.. Ved å bruke test-området mitt på test-server, fungerer alt ut av boksen :-)

 

Forstår at oppsettet ikke lar seg kopiere for alle andre, og også internt i bedriften min er det enkelte som velger lokal apache. Er man mye på farten (eller har dårlig internettilkobling) er sikkert det et greit valg - men for min del fungerer auto-opplasting utmerket! Det føles (stort sett) som om jeg jobber lokalt.. =)

Lenke til kommentar
  • 4 uker senere...

Hvordan ville dere laget mappestrukturen for et MVC, som har et brukersystem? En application folder for ikke innloggede personer, og en annen application folder for de som er logget inn?

 

Altså, noe slikt:

 

/app1

---/models

---/views

---/controllers

---/utils

/app2

---/models

---/views

---/controllers

---/utils

Lenke til kommentar

Ikke gjør tilgangskontroll på bakgrunn av mapper på den måten. Putt gjerne alle kontrollere i samme mappe. Tilgangskontroll kan skje på kontroller-nivå, ved at en bruker kun har tilgang til visse actions i enkelte kontrollere, eller på modell-nivå, ved at en bruker har begrenset tilgang til CRUD-operasjoner på visse typer resources.

 

Vil egentlig anbefale deg å teste ut Ruby on Rails, med f.eks. declarative authorization (rails cast) for tilgangskontroll. Da får du virkelig se hva MVC er og hvordan du implementerer tilgangskontroll.

Lenke til kommentar
  • 3 uker senere...

Jeg ønsker å ha en fil som sjekker om en stream er online, og gi en link til denne streamen hvis den er på. Fant en kode som så ut til å være det jeg trenger.

 

https://gist.github.com/992430/043485b8a6047a4aee37c416a5653cfee77869f4

 

<?
//Script for Saskgamers.com
//Determines if a user's justin.tv stream is online, then displays it if it is
//To add more streams add the justin.tv channel id to the $streams array
$chan = "";
$streams = array(
"puttly", "j4sh", "strainkiss", "milfhunter", "gorgenzola", "steven_bonnell_ii"
);
echo "<span class=\"smalltext\"><strong>Live User Streams:</strong> ";
foreach ($streams as &$i) {
$chan = "http://api.justin.tv/api/stream/list.json?channel=" . $i;
$json = file_get_contents($chan);
$exist = strpos($json, 'name');
if($exist) {
echo " <a href=\"http://justin.tv/'+ streams[i]+'\">" . $i . "</a>";
}
}
echo "</span><br />";
?>

 

Problemet er at denne gjør at siden laster inn utrolig sent pga. stor stream liste som den må sjekke. Ser at f.eks. sc2.no har det jeg er ute etter, men de henter informasjon fra en output fil. Noen som har mulighet til å hjelpe hvordan jeg kan gjøre dette?

Lenke til kommentar

Dette har ingenting med "stream" å gjøre. Du requester data fra et JSON-API og sjekker om det du får tilbake inneholder strengen "name". Det er ingen lett måte å gjøre det du ønsker raskere med PHP som er verd det AFAIK. Hos meg tar det et par titalls millisekunder per oppføring, er det for mye for din bruk?

Lenke til kommentar

Dette er typisk informasjon svært få brukere er interessert i, med mindre du lager en dedikert side for å vise status. Hvis du i tillegg skal vise informasjonen på forsiden, så vil du generere den unødvendig nesten hver eneste gang. Det er derfor veldig uheldig å hente informasjonen uten å servere brukeren resten av innholdet først. Bruk AJAX, slik at interesserte brukere kan vente og se informasjonen tikke inn, mens resten kan gå videre.

Lenke til kommentar
  • 4 uker senere...

Prøver å hente ut url-en til bildene i aftenpostens rss. Henter ut "title" slik:

$title = SimpleXmlElement(file_get_contents($feed_url))-&--#62;channel-&--#62;item-&--#62;title

 

Men url-ene til bildene er lagret slik rss-fila:

&--#60;enclosure url="*snip*" length="0" type="img/116"&--#62;&--#60;/enclosure&--#62;

og da kan jeg ikke hente url-en på samme måte. Noen som vet hvordan?

 

EDIT: Fant ut av det. Lenge siden sist jeg holdt på med php så hadde glemt syntaxen :p Det er btw: enclosure["url"] som er syntaxen

Endret av Oysteinkn
Lenke til kommentar
  • 3 uker senere...

[...]

Da er det nok hosten din som sliter. Jeg pleier å bruke Notepad++ og en plugin til å koble til ftp-serveren min. Jeg har host hos Webhuset, og tar under et sekund å laste opp endringer, noe jeg gjør ommentrent etter hver linje jeg skriver (alltid spammet Ctrl+S mye).

 

Hvor hoster du? Er hosten din rask?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...