webForumDet fria alternativet

Lite frågor

6 svar · 362 visningar · startad av Ceeron

CeeronMedlem sedan aug. 2000378 inlägg
#1

Hej jag e typ nybörjar på PHP men tror jag ska klara av det... Kan ASP sedan tidigare o ska nu göra om min sida till PHP pga jag får en bättre host osv...

Hade bara tänkt o fråga lite saker som jag har i huvudet nu innan man börjar...

1. Va e skillnaden mellan '' och ""? Man kan använda båda för att göra strängar?

2. Va gör @ innan något?

3. Skillnaden på mysql_db_query samt mysql_query?

4. Går det bra att skriva "blabla $variabel" och "blabla" . $variabel
Skillnad?

5. Ser en fin insert ut så här?

	mysql_pconnect('localhost','','') or die("Fel på db");
	mysql_select_db('alkisarna') or die("Fel på koppling");
		$sql = "insert into raknare (IP, Tid, Webb) values ('127.0.0.1,', '2003-09-24 15:58', 'Webbis')";
		mysql_query($sql) or die("fel");

6. Hur gör man detta i PHP?

	Session.lcid = 1053 //Sätter till svensk tidutskrift osv
	Session.Timeout = 30 //Timeout på 30min
	Response.Buffer = True //Så man får skicka vidare besökare

7. Finns det några funktioner eller liknande som kan ersätta

	'### Funktion som fixar radbrytningar, lägger till <br /> istället för retur/enter tryck
	Function FixaBR(strText)
	 	FixaBR = Replace(strText, vbCrLf, "<br />" & vbCrLf)
	End Function

	'### Funktion för att skriva ut datum med ord
	Function datumOrd(datum)
		datumOrd = day(datum) & " " & mid(monthname(month(datum)),1,3) & " " & year(datum)
	End Function

	'### Funktion som lägger på en timme
	Function plush(datum)
		plush = DateAdd("h", 1, datum)
	End Function

Kommer säkert fortsätta fråga er saker o hoppas på bra svar ;)
Tack på förhand!

Alpha IIMedlem sedan maj 20002 993 inlägg
#2

1.
Ja

2.
Visar inte felmeddelanden om det inte funkar.

3.
Med mysql_db_query kan du välja vilken databas du ska ställa frågan mot utan att behöva använda mysql_select_db innan.

4.
Ingen.

5.
Hmm.. fin? :o Det är inga fel i den så det fungerar, ja.

6.
Ingen aning :(

7.
nl2br() byter '\n' till '<br>'

date() kanske formaterar som du vill.

Den sista funktionen du behöver vet jag ej. Det är enkelt annars att fixa det med lite olika funktions anrop.

Tips: https://www.php.net

SkarreMedlem sedan apr. 20012 427 inlägg
#3

Angående den sista raden av fråga 6 kan du kolla in ob_start() : http://se2.php.net/ob_start

Annars känns det som att du kunde ha fått svar på de flesta av dina frågor mycket sanbbt och enkelt bara genom att använda PHP-dokumentationen och Google. Det är nog ingen som har någonting emot att du ställer frågor, det är bara ett tips för att du ska slippa vänta på svar.

tydalMedlem sedan juni 20034 013 inlägg
#4

Re: Lite frågor

> 1. Va e skillnaden mellan '' och ""? Man kan använda
> båda för att göra strängar?

Skillnaden är att det står mellan ' och ' inte tolkas utan det skrivs ut som det är. Det som står mellan " och " tolkas däremot:

$test = "def";
echo("abc$test"); // Skriver ut abcdef
echo('abc$test'); // Skriver ut abc$test

> 2. Va gör @ innan något?

Skriver inte ut ett eventuellt felmeddelande.

> 3. Skillnaden på mysql_db_query samt mysql_query?

mysql_db_query är den gamla varianten som inte används längre, har jag för mig.

> 4. Går det bra att skriva "blabla $variabel" och
> "blabla" . $variabel
> Skillnad?

Ja, när du använder " och " går det bra. Skillnaden är kosmetisk.

> 6. Hur gör man detta i PHP?
> Session.lcid = 1053 //Sätter till svensk tidutskrift osv

Tidsformatet är unix-time, dvs antal sekunder sedan 1/1 1970, så det ställer inte till några problem. När du vill skriva ut ett datum/klockslag använder du funktionen date och anger där hur du vill att det ska skrivas ut:

echo(date("Y-m-d")); // dagens datum
echo(date("H:i:s")); // aktuellt klockslag

> Session.Timeout = 30 //Timeout på 30min

Vet inte. Men det fixar du ju lätt själv med en sessionsvariabel.

> Response.Buffer = True //Så man får skicka vidare
> besökare

Tankefel. Du kan inte skriva ut något på en sida som du använder för att skicka vidare till en annan. Det kommer ju aldrig att visas. Ska du göra en redirect måste det ju ske innan något skrivits ut.

> 7. Finns det några funktioner eller liknande som kan
> ersätta
> Function FixaBR(strText)

nl2br

> '### Funktion för att skriva ut datum med ord

date

> '### Funktion som lägger på en timme

Där har du fördelen med att php använder ett vettigt tidsformat. Det är bara att plussa på (eller dra ifrån) det antal sekunder du vill.

MungoMedlem sedan jan. 2000372 inlägg
#5

6. Använd setlocale(LC_ALL,'sv') för att ställa in PHP att använda svenska format för datum osv. Funkar endast om servern har rätt filer installerade (t.ex. kommer inte Mac OS X med LC-filer, så jag har inte lyckats få det att funka på min utvecklingsserver).

CeeronMedlem sedan aug. 2000378 inlägg
#6

Kan nogon förklara lite snabbt hur man gör för att sätta sessions och cookies samt varför inte mysql_free_result(); funkar?
Hur räknar man ut $rs['unika'] + det talet som står efter på en gång?

update: skillnad på mysql_fetch_row / array?

	session_start();

	mysql_pconnect('localhost','','') or die("Fel på db");
	mysql_select_db('alkisarna') or die("Fel på koppling");

	//if ( isset($_SESSION['raknad']) )
	//{
		$strIP = $_SERVER['REMOTE_ADDR'];
		$strWebb = $_SERVER['HTTP_USER_AGENT'];

		if ( isset($_COOKIE['raknad']) )
		{
			$strIP = $_COOKIE['raknarIP'];
		}

		$sql = "insert into raknare ([IP], Tid, Webb) values ('$strIP', #Now()#, '$strWebb')";
		mysql_query($sql);

		//session_register("raknad");
		$_SESSION['raknad'] = "ja";
		setcookie('raknarIP', '$strIP', time()+60*60*24*365);
		setcookie('raknad', 'ja', time()+60*60*24*365);
	//}

	$sql = "select count(*) as besokare, count(distinct IP) as unika from raknare";
	$query = mysql_query($sql) or exit(mysql_error());
	$rs = mysql_fetch_array($query);
		echo "v1.4 - " . $rs['besokare'] . " 374 besökare, ";
		echo $rs['unika'] . " 237 unika";
	mysql_free_result($rs);
CeeronMedlem sedan aug. 2000378 inlägg
#7

fortsätter med frågor

1. Skulle vilja logga ut alla som inte varit inne på 15min...

   $sql="update anv set online = False where online = True and insist = time()"; 
   mysql_query($sql);

insist = tiden när man senast laddade om sidan...

2. Tar ut viss info ur db

if ( isset($_GET['festID']) ) { 
   $sql="select datum, namn from fester where festID = ". $_GET['festID'] ."; 
   $query = mysql_query($sql); 
   $rs = mysql_query($query); 

      echo " / <b><a name=\"top\"></a><a href=\"?festID=".$_GET['festID']."\">$rs['datum']". " - " ."$rs['namn']</a></b>" 

}

Här kan det mkt väl skickas ett ID som inte finns i db så hur gör man för att sluta massa errors? o kanske skriva ut nåt annat om det inte finns... kunde sånt i asp men lite förvirrad i php

134 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)