Community - Projektarbete, behöver lite hjälp. Eller ganska mycket.

Permalänk
Medlem

Community - Projektarbete, behöver lite hjälp. Eller ganska mycket.

Hej hej

Dags för projektarbetet nu då. Jag och en polare har bestämt oss för att göra en communitysida till våran redan existerande förening "http://www.ventriloganget.org". Ingen jättestor sida men nåt att göra som ett projekt.

Här är vad vi vill att den ska innehålla:

ANVÄNDARSKAPARSYSTEM - DVS, man blir medlem och får sedan aktivera det via sin e-post.

GÄSTBOK - En gästbok för varje användare

PRESENTATION - Varje användare har en fri text, svart på vitt, inga koder.

LITE SMÅGREJER - Lite smått och gott som vi kan ta efterhand ifall vi får ordning på det första först.

Så till frågorna.

* Vart ska vi börja?

* Vad är "Django"?

* Finns det någon öppen källkod för community-hemsidor?

* Tar det lång tid?

För övrigt så har vi mycket liten erfarenhet av PHP, dock mycket HTML och erfarenhet från Programmering A och B i C++. Vad jag har fattat för så påminner C++ mycket om PHP.

Tack på förhand

Permalänk
Hedersmedlem

Om ni inte kan så mycket webb-programmering skulle jag råda till att titta på Joomla, det är ett CMS i opensource. http://www.joomla.org/

Visa signatur

Don't drink and drive, you might spill your drink.

Permalänk

Re: Community - Projektarbete, behöver lite hjälp. Eller ganska mycket.

* Vart ska vi börja?
Skulle börja med att kolla upp lite tutorials för det språk/ramverk ni tänker jobba med, gärna inom något om är någorlunda liknande det ni tänkte göra. Om ni väljer Django rekommenderas deras dokumentation och Djangobook .

* Vad är "Django"?
Det är ett webbramverk i Python, det innebär att de tillhandahåller databaskoppling och templates bland annat.. Det gör det enklare att fokusera på själva uppgiften utan att behöva tänka på implementation av templates etc.

* Finns det någon öppen källkod för community-hemsidor?
Jag det finns det säkerligen, men jag gissar på att den oftast är av rätt låg kvalitet. Ett vanligt forum brukar ju dock klara av de krav ni ställer.

* Tar det lång tid?
Det beror på, för en erfaren webbkodare tar det inte lång tid alls. Någon dag eller vecka kanske. Men ni kommer nog behöva lära er lite om det ramverk ni använder och kanske lite om hur man kodar webbapplikationer också. Så då kan det ju ta lite längre tid.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Citat:

Ursprungligen inskrivet av Hoshibo
* Tar det lång tid?

För övrigt så har vi mycket liten erfarenhet av PHP, dock mycket HTML och erfarenhet från Programmering A och B i C++. Vad jag har fattat för så påminner C++ mycket om PHP.

På punkten angående tid, ja det gör det. Eller det beror på hur hög standard man har

Sen är det snarare så att PHP liknar C/C++ syntaxmässigt.

Citat:

Ursprungligen inskrivet av Hilton
Om ni inte kan så mycket webb-programmering skulle jag råda till att titta på Joomla, det är ett CMS i opensource. http://www.joomla.org/

Usch inte Joomla, jag känner en stark olust bara av att tänka på Joomla/Joomlas källkod. Skulle heller inte rekommendera att bygga utifrån ett CMS eftersom det försöker vara så generella att dem oftast inte är direkt bra på något.

Nej leta upp ett framework/skriv ett eget (väldigt lärorikt och man vet vad alla saker gör) för det språk ni känner för att använda (PHP, Ruby, Python, ASP.NET, PERL...).

Visa signatur

Permalänk
Medlem

Tack för svaren!

Vi satsar på att inrikta oss på PHP, vet inte exakt vart vi ska börja. Vi ska läsa lite om olika tutorials. Om någon har en länk till en tutorial som inriktar sig på PHP+MySQL inom community så vore det väldigt välkommet!

Tack igen, och tack på förhand

Permalänk
Medlem

Re: Community - Projektarbete, behöver lite hjälp. Eller ganska mycket.

Citat:

Ursprungligen inskrivet av Hoshibo
Hej hej

Dags för projektarbetet nu då. Jag och en polare har bestämt oss för att göra en communitysida till våran redan existerande förening "http://www.ventriloganget.org". Ingen jättestor sida men nåt att göra som ett projekt.

Här är vad vi vill att den ska innehålla:

ANVÄNDARSKAPARSYSTEM - DVS, man blir medlem och får sedan aktivera det via sin e-post.

GÄSTBOK - En gästbok för varje användare

PRESENTATION - Varje användare har en fri text, svart på vitt, inga koder.

LITE SMÅGREJER - Lite smått och gott som vi kan ta efterhand ifall vi får ordning på det första först.

Så till frågorna.

* Vart ska vi börja?

* Vad är "Django"?

* Finns det någon öppen källkod för community-hemsidor?

* Tar det lång tid?

För övrigt så har vi mycket liten erfarenhet av PHP, dock mycket HTML och erfarenhet från Programmering A och B i C++. Vad jag har fattat för så påminner C++ mycket om PHP.

Tack på förhand

Du kan göra en Community på en vecka ifall du kan ett språk bra men ifall den ska vara genomtänkt så tar det rätt mycket tid. Alla grundläggande communitysaker är väldigt basic programmering så det är inte svårt.

Gästbok och forum har typ samma principer, inte så mycket svårare att göra än ett nyhetsscript.

I mitt senaste projekt, som faktiskt är en community, så tog designen rätt lång tid, det och att lära sig ajax (man måste ju börja någon gång ).

Permalänk
Medlem

Sidan ska ju vara rätt basic till och börja med. Deadline i Februari så tänkte att vi gör alla "basic-grejer" till att börja med, sen kommer vi troligtvis att fortsätta jobba på den, men bara så att man får ett betyg i skiten liksom

... Har kollat igenom några tutorials

Att hämta inloggningar från databasen verkar inte vara några större problem, måste väl finnas någon open source på något slags "Användarskaparsystem + e-mail aktivering".

Dock så funderar jag på hur man ska sköta inloggningarna. Om man använder sessioner, namnger man då sessionen efter inloggningsID:t så att man kan hålla koll på personen som är inloggad? T.ex. om man lämnar ett gästboksinlägg hos någon, och man INTE använder någon session, blir det inte omöjligt då att se vem som lämnade det?

Kanske verkar urdumt för den erfarne Men man får ju börja någonstans

Tack så mycket för hjälpen

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Hoshibo
Tack för svaren!

Vi satsar på att inrikta oss på PHP, vet inte exakt vart vi ska börja. Vi ska läsa lite om olika tutorials. Om någon har en länk till en tutorial som inriktar sig på PHP+MySQL inom community så vore det väldigt välkommet!

Tack igen, och tack på förhand

Lär er grundläggande php och mysql så är det bara tuta och köra.

Permalänk
Medlem

Har kommit in lite grann i PHP nu. Men har en fråga, har googlat ganska mycket men hittar inga bra svar på min fråga.

Jag håller på med presentationssidan nu. Länken till min egen presentation är "profil.php" koden följer:

$query = "SELECT * FROM members WHERE id='". htmlentities($_SESSION['sess_user']) ."'";
$result = mysql_query($query);
$rad = mysql_fetch_array($result);
$profiltext = $rad['presentationstext'];

print($profiltext);

Jag vill sen att den ska hämta texten istället från användare med id=2.

Har kollat runt och många använder länkar som ser ut såhär:

profil.php?user=2

Kan någon förklara den raden, exakt vad som händer och kanske ge exempel genom att utgå från ovanstående kod.

Tack på förhand

Permalänk
Relik 📜
Citat:

Ursprungligen inskrivet av Hoshibo
Har kommit in lite grann i PHP nu. Men har en fråga, har googlat ganska mycket men hittar inga bra svar på min fråga.

Jag håller på med presentationssidan nu. Länken till min egen presentation är "profil.php" koden följer:

$query = "SELECT * FROM members WHERE id='". htmlentities($_SESSION['sess_user']) ."'";
$result = mysql_query($query);
$rad = mysql_fetch_array($result);
$profiltext = $rad['presentationstext'];

print($profiltext);

Jag vill sen att den ska hämta texten istället från användare med id=2.

Har kollat runt och många använder länkar som ser ut såhär:

profil.php?user=2

Kan någon förklara den raden, exakt vad som händer och kanske ge exempel genom att utgå från ovanstående kod.

Tack på förhand

Det som görs är att GET-variabeln "user" sätts till 2. Du hämtar såhär:

$id = intval($_GET['user']);

..vilket gör att din SQL-fråga blir såhär..

$query = "SELECT * FROM members WHERE id=".$id." LIMIT 1"; $result = mysql_query($query); $rad = mysql_fetch_array($result); $profiltext = $rad['presentationstext'];

Du kan även stabla flera variabler på varandra i URL:en, typ:
news.php?id=2&single=1

Hämtas då förstås med..

$id = intval($_GET['id']); $type = intval($_GET['single']);

"intval" är en php-funktion som kontrollerar så att indatan är ett heltal, lite basic säkerhetsjobb alltså.

Visa signatur

För övrigt anser jag att Karthago bör förstöras.
▪ Nöje #1 -> i5-11400F - B560M-ITX/ac - RTX 3070 - 16 GB DDR4
▪ Nöje #2 -> R5 5600 - Prime B450-Plus - RX 6750 XT - 16 GB DDR4
▪ Mobilt -> HP Pavilion Aero - R5 5625U - 16 GB DDR4
▪ Konsol -> Steam Deck, Xbox Series S

Permalänk
Medlem

Aaaah, intressant

Får kolla närmare på det, kör väl på basic grejorna till att börja med.

En lite mer praktisk fråga nu då Hur många tabeller bör man använda?

Nu under lek & lär programmeringen så har jag lagt allt i en tabell, men känns som att det blir lätt rörigt och sådär om man gör det men tanke på att gästboksinläggen tar sin lilla plats i databasen.

Några råd där?

Tack så mycket för alla svar, varit grymt stor hjälp

Permalänk
Medlem

Kör på en separat tabell för alla gästboksinlägg så lägger du till användarid för varje inlägg och sen visar det på rätt sida.

Permalänk
Medlem

Jag hade laggt upp gästboks tabellen så här:

- tillAnvändare
- frånAnvändare
- meddlelande
- datum
- ip

Sedan när du ska visa inläggen ber du bara att den hämtar ett specifikt id från tillAnvändare, säkrast är nog av att använda sig av en session här ist för (sidan.php?gb=1) då vem som kan ändra den sista siffran!
Skapa en session tex "userId" när användaren loggar in

GOD JUL :D!

Permalänk
Medlem

Få se nu om jag har fattat saken rätt

Man lägger ALLA gästboksinlägg i en tabell.

För att sedan ta fram sina egna gästboksinlägg eller någon annans så gör man en efterfrågan i databasen med en sökning på sitt ID eller användarID?

Jag har startat en session när jag loggar in redan som heter $_SESSION['sess_id']. Räcker det inte att jag använder den? Eller ska jag skapa en till?

GOD JUL PÅ ER! :):)

Permalänk
Medlem

Du kan använda samma session för att lagra olika värden, du behöver inte ha en för varje.

Permalänk
Medlem

Låter kanon

Har stött på ett problem till här dock :/

Håller på jobba på presentationstexten, och i settings.php ska man kunna ändra den. Så när jag vill posta texten så vill jag använda en sån här SQL query:

UPDATE medlemmar SET presentationstext="$_POST['presentation']" WHERE id="$_SESSION['sess_user']";

Men förstår inte hur jag ska kunna "starta" queryn

Tänkte att man kanske kunde göra såhär:

$update = ("UPDATE medlemmar SET presentationstext="$_POST['presentation']" WHERE id="$_SESSION['sess_user']"");

Men det funkade inte

Någon som vet?

Permalänk
Medlem

mysql_query($update);

Permalänk
Medlem

Tack så mycket Funkar hur bra som helst

$update = "UPDATE medlemmar SET presentationstext='$text' WHERE id ='$user'";

mysql_query($update);

----------------------------------------------

Har hittat en bugg nu dock som jag inte vet hur jag ska lösa :S

Vi säger att jag har 10 medlemmar. Jag kan då alltså skriva såhär:

profil.php?user=1 fram till profil.php?user=10

Men problemet är att jag kan skriva över 10, jag kan skriva hur långt som helst. Någon som vet hur detta går att lösa?

Tack på förhand

Permalänk
Citat:

Ursprungligen inskrivet av Hoshibo
Har hittat en bugg nu dock som jag inte vet hur jag ska lösa :S

Vi säger att jag har 10 medlemmar. Jag kan då alltså skriva såhär:

profil.php?user=1 fram till profil.php?user=10

Men problemet är att jag kan skriva över 10, jag kan skriva hur långt som helst. Någon som vet hur detta går att lösa?

Tack på förhand

Är väll ingen bugg? Såvida du inte skriver ut någon profildata för användare som inte finns.
Får du profil.php?user=11 så får du helt enkelt ge svaret "Det finns ingen användare med det IDet".

Alltså typ:

$res = mysqli_query("...") or die(mysqli_error()); if (mysqli_num_result($res) > 0) { // Skriv ut profilen } else { echo "Användaren finns ej."; }

(Reserverar mig för möjliga fel, var ett tag sedan jag kodade PHP och ännu längre tid sedan jag använda PHPs inbyggda MySQL(i) funktioner).

Visa signatur

Permalänk
Medlem

Bara göra som rastersize säger, funkar utmärkt.

Permalänk
Medlem

Jag använder inte MySQL(i) funktionerna. Men läste på PHP.net och det verkar som att funktionen mysqli_num_result bara finns i MySQL(i). Provade att använda mysql_num_result, funkade inte heller särskilt bra.

Men jag använder mysql_num_rows, och det verkar fungera bra.

Någon som vet något om detta?

Permalänk
Relik 📜
Citat:

Ursprungligen inskrivet av Hoshibo
Jag använder inte MySQL(i) funktionerna. Men läste på PHP.net och det verkar som att funktionen mysqli_num_result bara finns i MySQL(i). Provade att använda mysql_num_result, funkade inte heller särskilt bra.

Men jag använder mysql_num_rows, och det verkar fungera bra.

Någon som vet något om detta?

mysql_num_rows funkar bra med vanliga MySQL.

Visa signatur

För övrigt anser jag att Karthago bör förstöras.
▪ Nöje #1 -> i5-11400F - B560M-ITX/ac - RTX 3070 - 16 GB DDR4
▪ Nöje #2 -> R5 5600 - Prime B450-Plus - RX 6750 XT - 16 GB DDR4
▪ Mobilt -> HP Pavilion Aero - R5 5625U - 16 GB DDR4
▪ Konsol -> Steam Deck, Xbox Series S

Permalänk
Medlem

Är nästan helt klar med gästboken nu Men mitt sista problem är att gästboksinläggen tar aldrig slut Jag vill ha ett stopp, t.ex. att när en individ har fått 40 inlägg och håller på att ta emot sitt 41:a så ska det nummer 1 i ordningen försvinna ur databasen.

Tack

Permalänk
Medlem

Gör istället som så att du delar upp utskriften av gästboksinlägg i sidor med kanske 20 per sida eller något.

Såhär alltså:

< 1 2 3 4 5 6 >

Visa signatur

Asus P8P67 Pro | Core i7 2600 | Sapphire Radeon R9 290 | A-DATA SSD 510

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av crazzir
Gör istället som så att du delar upp utskriften av gästboksinlägg i sidor med kanske 20 per sida eller något.

Såhär alltså:

< 1 2 3 4 5 6 >

Det har jag redan gjort

Men tänkte mest att efter vi säger 10 sidor, så ska inläggen börja tas bort allt eftersom det kommer in nya. Orsaken är att jag vill spara databaskraft.

När jag ändå håller på. Lite standard HTML/CSS kodning.

Allt innehåll som varieras ligger i en box. Koden för boxen är såhär:

#content
{
background-image: url(images/contentbg.gif);
text-align: left;
width: 598px;
height: auto;
float: left;
padding: 10px;
border-left: 1px solid #000000;
border-top: 1px solid #000000;
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
font-family: Trebuchet MS;
font-size: 12px;
}

Vad ska jag göra för att den på ALLA sidor ska sträcka sig !MINST! över hela skärmen. OBS! EJ "height: 100%;" För när jag bara har en rad text på en sida så ser det så dumt ut ifall boxen bara är 2 cm hög.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Hoshibo
Det har jag redan gjort

Men tänkte mest att efter vi säger 10 sidor, så ska inläggen börja tas bort allt eftersom det kommer in nya. Orsaken är att jag vill spara databaskraft.

Du behöver inte tänka på att snåla med datan i databasen i detta skede. MySql är rätt duktig på att hämta data, så låt du varje användare ha så många inlägg de vill. Du kommer inte märka någon skillnad. Största vinsten finns nog att göra i själva sql-frågorna, inte i antalet rader i tabellerna. Lycka till med detta!

Visa signatur

Är det inte jag, så är det någon annan...
WGS84 Lat/Long: N 60º 23' 28.12" E 15º 40' 14.24"
RT90: X=6697030, Y=1492584

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Hoshibo
Det har jag redan gjort

Men tänkte mest att efter vi säger 10 sidor, så ska inläggen börja tas bort allt eftersom det kommer in nya. Orsaken är att jag vill spara databaskraft.

Typ så här kan du ju göra annars.
*pseudo-sql*

SELECT * FROM guestbook WHERE guestbook.user_id = user_id ORDER BY guestbook.created_at DESC LIMIT 40

Permalänk
Medlem

Se till att du indexerar de kolumnerna som används ofta i sql-satser. Det kanske inte märks så jätte stor skillnad i början men allt eftersom databasen växer så blir du mer eller mindre beroende av indexering.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Akira
Typ så här kan du ju göra annars.
*pseudo-sql*

SELECT * FROM guestbook WHERE guestbook.user_id = user_id ORDER BY guestbook.created_at DESC LIMIT 40

Shit vad intressant

Jag lade märke till en sak i koden ovan, när man använder "WHERE guestbook.user_id =". Innebär det att jag skulle kunna göra såhär?:

SELECT * FROM guestbook WHERE medlemmar.id = till

D.V.S att den hämtar ett värde från tabellen "medlemmar" och letar upp samma värde i tabellen "guestbook"?

Tack för alla svar.

Permalänk
Medlem

Kanske missuppfattade nu, men är det inte onödigt att hämta SAMMA värde från både "medlemmar" och "guestbook"?

Jag testade iaf i MSSQL och det verkade inte fungera så bra. Man kan ju dock göra såhär:

SELECT * FROM guestbook WHERE id = (SELECT id FROM medlemmar WHERE id = '$id')

Vet inte om det hjälper dig något.
Om id:t du får från början är detsamma i både "medlemmar" och "guestbook" är det väl endast onödigt att ta använda tabellen "medlemmar" i SQL-satsen.

Visa signatur

Asus P8P67 Pro | Core i7 2600 | Sapphire Radeon R9 290 | A-DATA SSD 510