News feed

Innehåll visas utifrån dina val

Om du inte hittar någon sida, schemahändelse eller nyhet på din kurswebb kan det bero på att du inte ser den kursomgången/gruppen inom kursen som innehållet tillhör.

Veta mer om din kurswebb

Din kurswebb är sidorna för en kurs du prenumererar på. Du väljer sedan vilka omgångar/grupper inom kursen du vill ha information från. Är du registrerad på en kursomgång sköts prenumeration och val av kursomgäng automatiskt åt dig. Vill du ändra något av detta gör du det under Mina inställningar.

När du är inloggad på din kurswebb ser du:
  • Kursöversikt, nyheter och schema med information som är filtrerat utifrån dina valda omgångar/grupper inom kursen
  • Allmänna sidor för hela kursen
  • Kurswikin som är sidor som alla, lärare och studenter, kan skapa och redigera
  • Sidor som hör till de omgångar/grupper inom kursen du valt eller som valts för dig

Log in to your course web

You are not logged in KTH, so we cannot customize the content.

In the News feed, you find updates for pages, schedule and posts from teachers (when aimed also at earlier registered students).

June 2018
Event Omtenta, 8 June 2018 14:00
Changed by scheduling staff 1 June 2018
October 2016
under General

Teacher Leif Lindbäck created page 31 March 2014

Teacher Leif Lindbäck changed the permissions 31 March 2014

Kan därmed läsas av alla och ändras av lärare.
commented 25 August 2015

Går det bra att använda den 6:e utgåvan av boken?

Teacher commented 25 August 2015

Jag har inte sett 6:e upplagan så jag kan inte svara på det.

commented 4 October 2015

Kommer anteckningarna till föreläsningar 10, 11, 13 och 14 att publiceras?

Teacher commented 5 October 2015

Föreläsning 10 har inga egna anteckningar, den ägnades åt det som var kvar från föreläsning 7-9. Anteckningarna från föreläsning 11, 13 och 14 kommer publiceras, förmodligen imorgon (6/10).

commented 27 October 2015

Angående closures står det såhär i föreläsningen om Javascript: 

"Those variables, like self, will have the value they had when the outer function created the nested function."

Stämmer det verkligen? Variabeln kommer väl ha det värdet den hade efter att yttre funktionen har kört klart. Variabeln kan t om ändras utifrån om den går att komma åt och inre funktionen skulle fortfarande få det nya värdet.

Demo
http://jsfiddle.net/e18xmsy2/

Teacher commented 28 October 2015

Stämmer bra, det är i PHP det fungerar som jag skrev i JavaScript-föreläsningen. Bra att du upptäckte det.

commented 5 October 2016

Hej, undrar om man kan se några gamla tentor? eller det bara jag som inte hittar några?

mvh

Teacher commented 5 October 2016

Nej, det finns inga gamla tentor. Istället finns en fil på sidan Written Exam, som innehåller möjliga tentafrågor.

commented 9 October 2016

Hej, missade föreläsning 14 och undrar ifall du kommer lägga upp något material från den. Exempelprogram eller liknande?

Teacher commented 10 October 2016

Det var inget nytt material på föreläsning 14, vi gjorde klart det som står under föreläsning 13.

 
September 2016
under General

Teacher Leif Lindbäck created page 31 March 2014

Teacher Leif Lindbäck changed the permissions 31 March 2014

Kan därmed läsas av alla och ändras av lärare.
commented 2 September 2014

Ska projekten lösas individuellt eller kan man arbeta i grupper och sedan skriva individuella rapporter?

Teacher commented 2 September 2014

Skriv gärna programmen i grupp, det är bara rapporten som ska vara individuell.

commented 2 September 2014

Skrivs rapporten på svenska?

Teacher commented 3 September 2014

Det går bra.

commented 7 October 2014

Hej, såg att du ändrat i uppgift 4 och undrar om den nuvarande versionen av uppgiften är den slutgiltiga?

Teacher commented 7 October 2014

Nu blir det inga fler ändringar

Teacher commented 8 October 2014

Det var otydligt om avsnittet File System Security ingår i uppgifterna till seminarie fyra. Det ingår, jag har förtydligat det nu.

commented 9 October 2014

seminarium 4, sida 4, antar jag att det ska stå "... but the report must show where HTTPS should be used", och inte HTTP?

Teacher commented 9 October 2014

Stämmer bra, jag har ändrat det. Tack för att du sa till.

commented 10 October 2015

Hej, en kort fråga. 
Det står i assignment 4 på reduced mandatory task: It is sufficient to fetch one single value, for example the username of the logged in user, and show it in the browser.

Jag löser detta genom att använda funktionen "load"  för att loada data från en php fil till en div i html dokumentet.

I php filen står det typ:

if (isset(användare)) { 
echo "du är inloggad som " . användare;
else { 
echo "du är inte inloggad";
}

Funkar detta som en lösning? Jag blir lite osäker för jag hämtar massa data från php filen men om du mer ville att man ska hämta en variabel och sen använda den.

                    

Teacher commented 12 October 2015

Du ska hämta en variabel från servern, inte delar av vyn. I ditt exempel kan du alltså hämta användarnamnet och sedan visa det i vyn. Om användaren inte är inloggad kan användarnamnet vara tex null, och då kan texten "du är inte inloggad" visas. Det är alltså viktigt att endast värden på variabler hämtas, inte text som "du är inloggad som" eller "du är inte inloggad". Anledningen är att servern inte ska uppdatera browserns vy, det ska bara göras i JavaScript.

commented 15 October 2015

Går det bra att använda kod skriven för Seminarie 3/4 till seminarie 1 och 2 på omseminariet? Dvs kod med MVC/MVVM framework.

Teacher commented 16 October 2015

Det går bra.

commented 29 August 2016

Hej!

Satt och läste igenom HTML.pdfen och kom över citatet "The purpose of HTML is to define parts of a document."

Vad menar ni med "delar" utav ett dokument?

Teacher commented 30 August 2016

Vilken del som är vad, tex att <p> definierar ett stycke, <h1> definierar en rubrik osv

commented 8 September 2016

Hej,

Jag håller som bäst på med uppgiften för andra seminariet och har en fråga rörande lagring av recept med hjälp av XML. I första seminariet skulle vi tilldela recepten för köttbullar och pannkakor varsin dag i kalendern. Generaliserat förstår jag det som att varje recept ska ha en unik dag.

I XML-strukturen på den sida som länkas i dokumentet med seminarieuppgifterna finns det emellertid inget fält för ett sådant datum. Är det tillåtet att lägga till ett sådant fält själv genom att utöka XML-strukturen med ytterligare ett element ("en tagg") per recept?

Med vänlig hälsning,
Martin Pola

Teacher commented 8 September 2016

Nej, du får inte ändra i XML-strukturen, den måste följa det XML-schema som finns angivet i uppgiften. Det kommer alltså inte att finnas någon koppling mellan ett recept och ett visst datum, förutom i kalendern.

Om vi skrev färdigt sidan åt tasty recipies skulle vi förstås behöva lägga till en sådan koppling någonstans, det är ingen bra idé att använda HTML-koden för datalagring. Kopplingen skulle dock inte kunna finnas i XML-filen för ett recept, eftersom är låst till schemat mycookbook.

commented 12 September 2016

Tack för svaret. Då det inte tycks finnas något unikt fält i XML-strukturen blir det inte helt okomplicerat att skapa en koppling mellan datum och recept. Är det tillåtet att inför seminarium 2 hoppa över datumintegrationen helt och hållet, dvs. får man ersätta kalendern med en lista över tillgängliga recept?

Teacher commented 12 September 2016

Det är inte tillåtet att ersätta kalendern med en lista över tillgängliga recept. Däremot kan du skippa kopplingen mellan datum och recept genom att låta det vara som i sem 1, dvs att kopplingen endast finns i html-koden i kalendern.

commented 12 September 2016

Tack för det snabba svaret. Jag hade emellertid inte statiska kopplingar ens i sem1, men det ska det nog gå att tillfredsställa kraven det till trots.

commented 19 September 2016

Hej igen,

När släpps uppgifterna inför seminarium 4?

Med vänlig hälsning,
Martin Pola

Teacher commented 20 September 2016

I slutet av den här veckan.

commented 22 September 2016

Rörande seminarium 3: I den andra av de två frivilliga, betygshöjande uppgifterna ska man använda en databas för att spara kommentarer och användardata. Hur är det med själva recepten -- får eller ska man spara dem i en databas, eller är det tillåtet alternativt tvingande att lagra dem med XML-formatet från seminarium 2?

Teacher commented 22 September 2016

Det finns inga krav på hur recepten hanteras, det är helt upp till dig.

 
October 2015
One person like the post
Leonard Ek posted 21 October 2015
Leonard Ek edited 21 October 2015

Asså jag fattar ingenting av Seminarium 1, VAFAN GÖR <p> och varför står det </p> efter?¶ Mvh¶ Leo.

 
under General

Teacher Leif Lindbäck created page 31 March 2014

commented 31 August 2015

A tip worth considering adding to resources (for windows):
http://www.uniformserver.com/

"Windows: Apache + MySQL + PHP & more.

The Uniform Server is a lightweight server solution for running a web server under the WindowsOS. Less than 10MiB, it includes the latest versions of Apache2, Perl5, PHP5, MySQL5, phpMyAdmin and more. No installation required! No registry dust! Just unpack and fire up!"

Very easy to get started. Just extract and click the executable, then click "Start apache".

commented 7 September 2015

Hur kan jag testa min sida på modern.ie om den körs lokalt?

Teacher commented 8 September 2015

Ta reda på din ip-adress, till exempel på http://whatismyip.org/ och ange den istället för localhost när du skriver in url:en på modern.ie.

commented 23 September 2015

Hur hanterar man länkar med framework? Dvs hur ska man göra med menyer och länkar till andra sidor?

Teacher commented 23 September 2015

En länk ska innehålla en url som kan tolkas av ramverket och peka ut en fil, klass eller metod enligt ramverkets regler. Om du till exempel i chat-programmet med id1354-fw vill göra en länk till sidan med hela konversationen, ska länken peka på Chat/GetEntries

commented 23 September 2015

Är det fel på koden eller på min server?
Jag laddade ner chat-nojs-id1354fw.zip packade upp sedan försökte jag använda den. När jag skriver in ett användarnamn och sedan trycker OK 
får jag
Internal Server Error.

Id1354fw\Core\InternalServerErrorException: Function Chat\DefaultRequestHandler->setNickName is missing, but request has parameter nickName

#0 <SÖKVÄG>\chat-example\chat-nojs-id1354fw\classes\Id1354fw\View\AbstractRequestHandler.php(38): Id1354fw\View\AbstractRequestHandler->validateFuncName('setNickName', 'nickName')
#1 <SÖKVÄG>\chat-example\chat-nojs-id1354fw\classes\Id1354fw\View\AbstractRequestHandler.php(61): Id1354fw\View\AbstractRequestHandler->setParams()
#2 <SÖKVÄG>\chat-example\chat-nojs-id1354fw\classes\Id1354fw\Core\Router.php(89): Id1354fw\View\AbstractRequestHandler->execute()
#3 <SÖKVÄG>\chat-example\chat-nojs-id1354fw\classes\Id1354fw\Core\Start.php(80): Id1354fw\Core\Router->routeRequest() 
#4 <SÖKVÄG>\chat-example\chat-nojs-id1354fw\classes\Id1354fw\Core\Start.php(60): Id1354fw\Core\Start->routeRequest() 
#5 <SÖKVÄG>\chat-example\chat-nojs-id1354fw\index.php(38): Id1354fw\Core\Start->startFramework() #6 {main}

commented 23 September 2015

Hej!

Jag har också problem med chat-nojs-id1354fw.zip. Får en blank sida och i loggen följande meddelande:

[:error] [pid 4232:tid 1864] [client ::1:61329] PHP Parse error:  syntax error, unexpected 'finally' (T_STRING), expecting catch (T_CATCH) in <SÖKVÄG>\\chat-nojs-id1354fw\\classes\\Id1354fw\\Core\\ClassLoader.php on line 104

Använder Uniserver.

commented 23 September 2015

@Martin Soto
Jag vet inte vad ditt felmeddelande betyder men det skulle kunna vara att du har fel PHP version aktiverad. För ramverket var det krav att använda som minst PHP version 5.5.

Här kan du läsa hur man byter PHP version på UniformServer 

Här kan du ladda ner olika versioner av php

Sen får du packa upp de till UniformServer mappen. Starta UniForm, välj version, starta Apache.

Testa det, om du har fel version.

commented 23 September 2015

Snyggt!

Jag hade 5.4 och nu uppgraderade jag till 5.6. Sidan kommer upp men nu har jag istället samma fel som du :-)

Tack för hjälpen!

commented 23 September 2015

Kul att det löste sig! :-)
Kan någon som använder en annan lösning än Uniform kanske kan ge input på hur chat-nojs-id1354fw fungerar för er?


Teacher commented 24 September 2015

Det kan bero på att ni har fel katalogstruktur. Katalogen chat-nojs-id1354fw ska ligga direkt i webserverns rotkatalog. I chat-nojs-id1354fw ska följande filer och kataloger finnas:

  • classes
  • conversation.txt
  • index.php
  • resources
  • views
  • .htaccess
commented 24 September 2015

När vi försöker logga in med ett användarnamn kommer vi till sidan localhost/chat-nojs-id1354fw/Chat/Login som inte hittas. Detta då katalogen ligger i root för webservern.

Teacher commented 24 September 2015

Det verkar som requestet inte har nått index.php, och därmed inte hanteras alls av ramverket. Kolla om filen .htaccess finns i katalogen chat-nojs-id1354fw. Det är den som säger åt apache att skicka alla request till index.php istället för till den angivna url:en.

.htaccess ska ha detta innehåll:

Options All -Indexes

<FilesMatch "(config|.+\.html)\.php">
    deny from all
</FilesMatch>

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_URI} !\.(bmp|cgi|css|flv|gif|ico|jpe?g|js|png|html|php|swf|xml)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule (.*) index.php [L,QSA]
</IfModule>

Teacher commented 24 September 2015

Det kan också vara så att apache inte läser .htaccess. Kolla till exempel på http://tildemark.com/enable-htaccess-on-apache/ för att se hur det kan åtgärdas.

commented 24 September 2015
  • Jag skickas till url "http://localhost/Chat/Login"
  • Jag har samma .htaccess som du skriver Leif.
  • Jag ha kollat att alla filerna som du nämnde finns. Förutom conversation.txt
  • Jag har kontrollerat att modulen mod_rewrite är igång
  • Jag har tittat så att mod_rewrite inte är kommenterad i httpd.conf
  • Jag har testat att köra ett simpelt .htaccess exempel (se nedan), den fungerade

Här exemplet jag testade (källa: http://www.workingwith.me.uk/articles/scripting/mod_rewrite )

A simple mod_rewrite example

So, let’s write a simple mod_rewrite example. This isn’t going to be anything fancy; we’re just going to redirect people who ask for alice.html to the pagebob.html instead. First, let’s create the Alice and Bob pages. Below is Alice’s webpage - create a similar one for Bob.

<html>
   <head>
      <title>Alice's webpage</title>
   </head>
   <body>
      <p>
         This is Alice's webpage
      </p>
   </body>
</html>

Upload both of these to your web server, and check that you can view both of them. Now comes the fun - we’re going to add a couple of lines to your .htaccess file. The .htaccess file is a text file which contains Apache directives. Any directives which you place in it will apply to the directory which the .htaccess file sits in, and any below it. To ours, we’re going to add the following:

RewriteEngine on
RewriteRule ^alice.html$ bob.html

Upload this .htaccess file to the same directory as alice.html and bob.html, and reload Alice’s page. You should see Bob’s page being displayed, but Alice’s URL. If you still see Alice’s page being displayed, then check you’ve followed the instructions correctly (you may have to clear your cache). If things still aren’t working for you, then contact your technical support people and ask them to enable mod_rewrite and the FileInfo override in their httpd.conf file for you

Teacher commented 25 September 2015

Nu har jag sett att det funkar på mac och linux, men det verkar som alla med windows har problem. Om någon kör windows och det funkar, kan inte den tala om vad som krävdes för att få igång det? Säg gärna också vilken server  (uniformserver eller någon annan) det funkar på.  Det vore också bra om någon med problem på windows kan tala om ifall det står något felmeddelande i error.log

commented 25 September 2015

Hej! För er som använder Mac och inte fått fw att funka kommer det förslag på hur ni kan göra. Jag använder Macs inbyggda apache server och jag kunde komma åt index sidan, matade in nickname, men mitt problem var att jag aldrig kom till log-in-sidan, utan fick ett felmeddelande som talade om att det inte gick att hittta URLet. Lyckligtvis funkade det för mig efter följande åtgärder:

 I filen /etc/apache2/httpd.conf, aktivera den bortkommenterade raden:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

I samma fil, längre ner har vi taggen <Directory/>. Där ska man ha följande rader:

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

Observera att ytterligare rader som är förslagna i URLet: http://tildemark.com/enable-htaccess-on-apache/ kan orsaka problem:

 I serverns root directory, se till att attributet med AllowOverride är satt till all, och inte none.

 Kommentera bort sista raden i samma element där det står "Required all granted". Vet inte riktigt om den raden har påverkan eller ej, men det visade sig fungera med den bortkommenterad. Elementet ska, alltså, se ut så här:

 

<Directory "/väg/till/server-root/directory">
.
.
.
AllowOverride all
.
.
# Required all granted
</Directory>

 Se också till att du har gömda filen .htaccess i samma mapp där du tänker implementera ditt projekt, alltså i samma mapp där index.php ligger.

Om det fortfarande är problematiskt så kan ni kolla att ni har rätt behörighet på alla filer och mappar. Projektmappen ska gå att exekvera och index.php ska gå att läsa.

 Innehållet i .htaccess ska se ut så här:

 Options All -Indexes
<FilesMatch "(config|.+\.html)\.php">
       deny from all
</FilesMatch>
<IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteCond %{REQUEST_URI} !\.(bmp|cgi|css|flv|gif|ico|jpe?g|js|png|html|php$
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d

       RewriteRule (.*) index.php [L,QSA]
</IfModule>

commented 26 September 2015

Jag förstår inte riktigt det här med länka till andra views, har suttit och testat en rad olika grejor men ingenting fungerar som det ska. Det jag kommit fram till är att länka till en klass som extends AbstractRequestHandler och innehåller en doExecute() som bara returnernar Constans::SIDAN_JAG_VILL_TILL;

Så från startsidan kan jag ta mig till Calendar genom att länka till TastyRecipes/Model/Calendar där Calendar klassen tar mig till calendar view. Nu har min URL gått från http://localhost:8888/TastyRecipesRoot/ till http://localhost:8888/TastyRecipesRoot/TastyRecipes/Model/Calendar

När jag väl är inne på calendar och vill gå till pancakessidan så gör jag samma grej, länkar till en Pancakes klass som sen tar mig till pancakes view och det är här det slutar fungera. Min URL blir nu http://localhost:8888/TastyRecipesRoot/TastyRecipes/Model/TastyRecipes/Model/Pancakes vilket inte leder någonstans alls och jag tas tillbaka till startsidan.

Teacher commented 28 September 2015

För det första är det ingen bra idé att lägga klassen med doExecute i model. Den bör ligga i View eftersom den tar emot ett http-anrop och ska anropa controllern. Ett annat alternativ, som jag använt i chat-exemplet, är att lägga den direkt i namnrymden Chat. Det gjorde jag för jag tyckte inte det såg snyggt ut att serverns lager (View, Model osv) ingår i url:en.

Ovanstående löser inte ditt problem, som för övrigt är ett typiskt problem oavsett ramverk, nämligen hur man ska ge en url som pekar in i ramverket till en nyanländ användare. Jag föreslår att du skriver en DefaultRequestHandler som bara innehåller raden \header("Location: <path to the welcome page in tasty recipies>");
Den raden kommer redirecta användaren till din förstasida, inklusive rätt url. Om du redirectar till sidan
/TastyRecipiesRoot/TastyRecipes/Model/Calendar kommer url:en bli  
http://localhost:8888/TastyRecipesRoot/TastyRecipes/Model/Calendar

Då kan du i alla sidor ange sista delen av url:en (Calendar, Pancakes, etc) som länk.

Teacher commented 28 September 2015

Nu har jag fixat buggen som gjorde att chatten med ramverket inte fungerade på windows. Det var förstås en slash som var vänd åt fel håll, mycket dålig idé att provköra bara på linux...

För säkerhets skull har jag börjat med versionsnumrering. Det  är chat-nojs-id1354fw-version2.zip och id1354-fw-version2.zip som fungerar.

commented 28 September 2015

Ändrade min DefaultRequestHandler's doExecute till bara \header("Location: views/login"); och nu blir det en oändlig loop av redirects och safari visar det här felmeddelandet.

Safari felmeddelande

Teacher commented 28 September 2015

Det går tyvärr inte att redirecta till en relativ url. Du måste ha med hela sökvägen från roten: 
\header("Location: /TastyRecipiesRoot/TastyRecipes/views/login")
Egentligen ska du till och med ta med "http://localhost:8888" först i url:en, men ovanstående brukar fungera bra.

För övrigt ska du inte redirecta till en fil i mappen views. Alla klasser, även de som ärver AbstractRequestHandler, måste ligga under classes.

commented 1 October 2015

Om man har en klass Login som ligger under classes/TastyRecipes/Login.php och som anropas av ramverket för att sköta inloggningen och sedan returnera namnet på nästa vy som ska visas t.ex. "start" så kommer rätt sida visas men via URL <domain>/ID1354-website/TastyRecipes/Login istället för <domain>/ID1354-website/TastyRecipes/Start. Eftersom jag kommer till vyn via Login.php istället för klassen Start.php så är inte alla variablar satta vilket gör att sidan inte innehåller allt den ska.

Hur kan man lösa det så att Start.php anropas efter att Login.php är klar istället för att bara returnera vyn "start" från Login.php?

commented 1 October 2015

om jag har förstått rätt så kan du använda addVariable för att lösa det problemet. Läs README.txt.

commented 1 October 2015

Det fungerar inte att använda addVariable i Login.php eftersom vilka variabler jag ska lägga till kan variera beroende på vilken vy jag loggar in från. Dessutom vill jag komma ifrån att URLn slutar på /TastyRecipes/Login istället för exempelvis /TastyRecipes/Start ifall jag loggar in från startsidan.

Teacher commented 2 October 2015

Kan du inte göra en ny klass som innehåller koden som är gemensam för Login och Start? Då kan den anropas av både Start och Login. Det är sällan en bra idé att lita på url:en, det blir väldigt svårt att förhindra att du kan komma olika vägar till en och samma request handler.

commented 2 October 2015

Blir inte det dålig sammanhållning samt om man ska kunna logga in från varje sida så behöver det finnas en klass för gemensam kod mellan start och login, en klass för gemensam kod mellan login och calendar, etc ?

Går det inte på någon sätt att låta klassen Login kalla på Start eller vilken annan vy man kommer ifrån så att sidan laddas på rätt sätt och sedan returnera det till ramverket?

Teacher commented 2 October 2015

Jag tycker inte det blir dålig sammanhållning, det blir bara en till klass i vyn (klassen med den gemensamma koden). Måste du verkligen ha en ny klass för varje kombination av nu existerande klasser, räcker det inte med en enda (eller i alla fall ett fåtal) ny klass som innehåller all gemensam kod från alla request handlers?

Det går förstås att göra som du föreslår också, i sådana fall skriver du helt enkelt new Start() i Login och anropar sedan metoder i Start-objektet. Jag är dock mer tveksam till den lösningen eftersom klasser som ärver request handler är avsedda att ta emot http-anrop, inte att anropas lokalt. Det skulle säkert funka att göra så, men det känns som det blir onödigt svårförstådd kod på det viset (eftersom request handlern Start anropas på "fel sätt").

commented 3 October 2015

Om jag förstått ditt problem rätt kan du testa redirecta till Start-klassen i slutet av din Login-klass med \header(<domain>/ID1354-website/TastyRecipes/Start) istället för att använda return. Då körs Login-klassen och sedan Start-klassen om that makes sense. Alltså kommer alla variabler som läggs till i Login och även Start ha lagts till. Dessutom kommer URLn sluta på Start istället för Login. 

Philippe Tillheden removed his/her comment
commented 3 October 2015

Jag får inte ctype_print till att fungera på saker som skickats genom $_POST
T.ex om jag skriver name\n\t\r så ska den ju bli false efter ctype_print har gjort sin grej men den blir true...
Testa gå in på hemsidan http://phpfiddle.org och kör följande kod för att se vad jag menar

<html> 
<body> 
        <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
                Name: <input type="text" name="name" value="asdf\n\r\t"> 
                <input type="submit"> 
        </form> 

<?php 
        if (isset($_POST['name'])) {
                echo "ctype_print på _POST som borde bli false: ";
                $name = $_POST['name']; 
                if (ctype_print($name)) { 
                        echo "True";
                } else { 
                        echo "False"; 
                }
                
                echo "<br>"; 
                
                echo "ctype_print på asdf\n\r\t som borde bli false: ";
                $name = "asdf\n\r\t";
                if (ctype_print($name)) { 
                        echo "True"; 
                } 
                else { 
                        echo "False"; 
                } 
        }
?>
</body>
</html>

commented 4 October 2015

Interesting problem, I don't know the hard facts but when trying this code:

<!-- START  -->

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="name" value="asdf\n\r\t">
<input type="submit">
</form>
<?php
if (isset($_POST['name'])) {
$trueMsg = "True (only printable characters)";
$falseMsg= "False (contains non-printable characters)";

echo '<h2>ctype_print - Check for printable character(s)</h2>';
$name = $_POST['name'];
echo $name . ': ';
echo ( ctype_print($name) ? $trueMsg : $falseMsg );

echo "<br /><br />";

$name = "asdf\n\r\t";
echo $name . ': ';
echo ( ctype_print($name) ? $trueMsg : $falseMsg );

echo "<br /><br />";

$name = 'asdf\n\r\t';
echo $name . ': ';
echo ( ctype_print($name) ? $trueMsg : $falseMsg );
}
?>
</body>
</html>

<!-- END -->

I also came to the conclusion that the php $_POST field must use single quoted strings, which means that all characters which are will be treated as the literal character. I you check the last assignment of name you can see that I use single quotes. This will give the same result as the $_POST['name']

Read more about difference between single quoted and double quoted strings here

This might be due to Magic Quotes which in short escapes incoming data to the PHP script.
Here you can read about Magic Quotes 

The odd thing is that Magic Quotes should've been removed. At the moment I am using PHP 5.5. But the $_POST field is still escaped and not treated as partly non-escapable characters. 

I tried to find a setting for the Magic Quotes on my server but was unable to find it.

Maybe it has something to do with how you set the value of the form. If you replace the value with
value='<?="asdf\n\r\t"?>'
Then the characters which are set to the value is asdf  (plus additional characters) 
This will infact generate a False, it will contain non-printable characters.

So all in all it seems that the problem is with how you set the value.
It might be some feature of HTML to literally interpret what is set to the value.

 
August 2015
Event Omtenta, 20 August 2015 14:00
Changed by scheduling staff 4 August 2015
Show more similar (2)
November 2013
One person like the post
Anne Golinski posted 25 November 2013
 
Gustaf Björkén posted 1 November 2013
commented 1 November 2013

Löste problemet

 
Feedback News