Permalänk

Hjälp med PHP (nybörjare)

Har som sagt börjat med HTML, och börjar nu ramla in lite på PHP . Men jag har nu fått ett problem (igen)...

Jag använder en bok som guide och tänkte göra en sida som man loggar in på, och sedan när man loggat in så kommer det upp en hälsning.

Problemet : När jag loggar in så får jag felmedelandet : "Notice: Undefined variable: UserName in C:\wamp\www\Projekt\HandleFrom.php on line 7"
Men jag har ju gjort som i boken..

HTML sidan :
<HTML>
<HEAD>
</HEAD>
<BODY BACKGROUND="logo.jpg">
<CENTER>
</CENTER>
<FORM ACTION="HandleFrom.php"
METHOD=POST>

Username <input type=text
Name="UserName" size=20><BR>

Password <input type=text
Name="Password" Size=20><BR>

<input type=submit name="Login"
Value="Login">
</FORM>
<CENTER>
<P>

<img src="bak.jpg" width="700" height="900" alt="My picture" style="opacity:0.6;filter:alpha(opacity=0.6)" />
</CENTER>
</BODY>
</HTML>

PHP- sidan :

<HTML>
<HEAD>
<TITLE>Logging in</TITLE>
<BODY>
<?php
print"Hello
$UserName<BR>\n";
?>
</BODY>
</HTML>

Tack i förhand och ursäktar min okunnighet

Visa signatur
Permalänk
Arvid Nordqvist-mannen

Du bör kunna behärska HTML någorlunda innan du börjar med PHP så du kan grunderna.

Permalänk

Vet tyvärr inte vad "grunderna " är , men har iaf gått igenom ett flertal guider så som : http://monkeytoys.com/htmlkurs/

Visa signatur
Permalänk
Hedersmedlem

Boken utgår ifrån att du ska ha configalternativet "register_globals = on", vilket är STARKELIGEN icke rekommenderat av alla, och jag har inte sett några exempel som utgått ifrån detta sedan ~2002 eller något. Se http://php.net/manual/en/security.globals.php . Som du ser ändrades standardinställningen till "off" iom PHP 4.2.0, som släpptes 2002-04-22.

Läs på om vad "register_globals" innebär. Du måste säga till PHP varifrån din indata kommit. Den skiljer på variabler som registrerats i själva skriptet och variabler som kommit från formulär o dyl. I detta fall ska du ändra $UserName till $_POST['UserName'] på den andra sidan.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av phz:

Boken utgår ifrån att du ska ha configalternativet "register_globals = on", vilket är STARKELIGEN icke rekommenderat av alla, och jag har inte sett några exempel som utgått ifrån detta sedan ~2002 eller något. Se http://php.net/manual/en/security.globals.php . Som du ser ändrades standardinställningen till "off" iom PHP 4.2.0, som släpptes 2002-04-22.

Läs på om vad "register_globals" innebär. Du måste säga till PHP varifrån din indata kommit. Den skiljer på variabler som registrerats i själva skriptet och variabler som kommit från formulär o dyl. I detta fall ska du ändra $UserName till $_POST['UserName'] på den andra sidan.

Tack så mycket för svar. Då fattar jag varför det inte fungerar

Visa signatur
Permalänk
Inaktiv

Tycker du ska ta dig en titt på http://sigurdhsson.org/webboken/v2/.
Vill inte vara elak men ska jag vara ärlig så tycker jag din HTML ser riktigt dålig och utdaterad ut.
Det är självklart inte ditt fel utan personen / sidan som lärde dig det.

Permalänk
Skrivet av anon150287:

Tycker du ska ta dig en titt på http://sigurdhsson.org/webboken/v2/.
Vill inte vara elak men ska jag vara ärlig så tycker jag din HTML ser riktigt dålig och utdaterad ut.
Det är självklart inte ditt fel utan personen / sidan som lärde dig det.

Okej, är som sagt ny, så jag har inte så bra koll på nytt och gammalt
Tack för guiden, ska kolla igenom den nu och se om man lär sig något nytt

Visa signatur
Permalänk

För det första tycker jag att du borde lära dig HTML och CSS ganska bra innan du börjar med PHP.

Några saker som du bör tänka på

1. Doctype
Nu för tiden används mest XHTML (1.0/1.1), eller som är på uppväg HTML5.
då ska en HTML-header ligga längst upp på sidan.

HTML5:

<!DOCTYPE HTML> <html> <head>

XHTML - Kolla länk
http://www.w3schools.com/tags/tag_DOCTYPE.asp

2. Små bokstäver
Alla taggar och attributer ska vara små bokstäver.

3. Identering
HTML-kod blir mycket lättare att läsa med rätt identering (TAB).
Dåligt

<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <P>test</P> </BODY> </HTML>

Bra

<html> <head> <title></title> </head> <body> <p>test</p> </body> </html>

(Jag använde mellanslag här ovan då det är svårt att fixa tab här, men jag rekommenderar tab)

4. Föråldrat

<body background=""> <center></center>

används inte längre, css används istället.

Avsluta alla taggar.
Fel:

<BR>

Rätt:

<br/>

Rättad HTML (tog bort bilden och överflödig kod och la även till lite annat)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="sv" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>test</title> </head> <body> <form action="HandleFrom.php" method="post"> <div style="width:200px;"> <fieldset> <legend>Login</legend> <label for="username">Username:</label> <input type="text" name="UserName" id="username" size="20"/><br/> <label for="password">Password:</label> <input type="text" name="Password" id="password" size="20"/><br/> <input type="submit" name="login" value="Login"/> </fieldset> </div> </form> </body> </html>

Skrivet av Resultat:

För att svara på ditt PHP-problem.

Byt ut

<?php print"Hello $UserName<BR>\n"; ?>

Mot

<?php echo"Hello $_POST[UserName]<br/>\n"; ?>

Ursäktar eventuella fel i texten men är rätt så trött.

Godnatt och koda lugnt!

Fixade lite fel, och lade till &lt;fieldset&gt;&lt;legend&gt; och &lt;label&gt;
Permalänk
Medlem

Som nämnts tidigare, på guiden du följt står det "Det är ungefär 13 år sedan HTML på Svenska lades ut på nätet för första gången.". Jag tvivlar på att det har uppdaterats sen dess!

Sephinator fixade det ganska bra, jag skulle även ersätta 'Password' och 'Username' framför input-elementen med

<label for="Password">Password</label>

och motsvarande för Username. En av de många fördelarna med detta är att om man råkar klicka på namnet istället för rutan, så aktiveras motsvarande ruta.

Till sist så är det så gott som ett måste att lära sig lite CSS också, som också nämnts tidigare. Om engelska inte är ett problem så rekommenderar jag W3Schools.com, de har väldigt bra guider och håller sig relativt uppdaterade!

Permalänk
Medlem

Du bör även ta för vana att använda echo istället för print:

<?php echo 'Hello', $_POST[UserName], '<br />'; ?>

Visa signatur
Permalänk
Medlem

Eftersträva att inte använda "Register Globals ON"... its a big NO NO.

Sedan skulle jag vilja tipsa om följande bok "PHP5 Programmering":
http://www.adlibris.com/se/product.aspx?isbn=9163608006

Det är en slant förstås men det hjälpte mig på allvar för många år sedan att komma igång och förstå grunderna i PHP och hur man kan tänka.
Nu har jag genom åren ökat min kunskap genom eget experimenterande och läsande på nätet. Det har varit mycket svordomar på vägen men också mycket glädje när det blir rätt

Lycka till

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk

Tack så mycket för alla svar och att ni visade mig hur det egentligen ska vara!Hjälpte mig extremt mycket. Kanske blir det en bok som BlueEyes länkade

Tack!

Visa signatur
Permalänk
Skrivet av Kebabhyvlarn:

Tack så mycket för alla svar och att ni visade mig hur det egentligen ska vara!Hjälpte mig extremt mycket. Kanske blir det en bok som BlueEyes länkade

Tack!

http://www.w3schools.com/php/default.asp

annars kan du börja med den, om du är bra på engelska såklart.

Btw, har redigerat och fixat lite fel i mitt inlägg ovanför

EDIT:

Behöver du hjälp med HTML, CSS, PHP, MySQL eller JavaScript så skriv ett PM så kan vi utbyta Skype/MSN.

Permalänk
Skrivet av Sephinator:

http://www.w3schools.com/php/default.asp

annars kan du börja med den, om du är bra på engelska såklart.

Btw, har redigerat och fixat lite fel i mitt inlägg ovanför

EDIT:

Behöver du hjälp med HTML, CSS, PHP, MySQL eller JavaScript så skriv ett PM så kan vi utbyta Skype/MSN.

Okej, tackar man tackar för "supporten" Har redan en liten fundering, sån person som jag är så vill jag gärna veta "varför" innan jag gör något, så jag undrar varför man måste ha <br/> i slutet?

En fråga till : Du säger att detta är föråldrat om jag fattar rätt :
<body background="">
<center></center>"

Ska jag använda typ detta istället ? :

body {background-image:url('paper.gif');}

Som sagt tack för allt. Utbyter gärna ord med dig via skype/pm

Visa signatur
Permalänk
Medlem
Skrivet av Kebabhyvlarn:

Okej, tackar man tackar för "supporten" Har redan en liten fundering, sån person som jag är så vill jag gärna veta "varför" innan jag gör något, så jag undrar varför man måste ha <br/> i slutet?

En fråga till : Du säger att detta är föråldrat om jag fattar rätt :
<body background="">
<center></center>"

Ska jag använda typ detta istället ? :

body {background-image:url('paper.gif');}

Som sagt tack för allt. Utbyter gärna ord med dig via skype/pm

body {background-image:url('paper.gif');} Lägger du in i css-filen för att få en bakgrund på din sida på ett korrekt sätt.

Permalänk
Medlem
Skrivet av Kebabhyvlarn:

Okej, tackar man tackar för "supporten" Har redan en liten fundering, sån person som jag är så vill jag gärna veta "varför" innan jag gör något, så jag undrar varför man måste ha <br/> i slutet?

En fråga till : Du säger att detta är föråldrat om jag fattar rätt :
<body background="">
<center></center>"

Ska jag använda typ detta istället ? :

body {background-image:url('paper.gif');}

Som sagt tack för allt. Utbyter gärna ord med dig via skype/pm

<br /> är helt enkelt en radbrytning. Du måste inte ha det, men annars kommer allting på samma rad.
Snedstrecket har du för att vanliga taggar består av <tag> och </tag>, men vissa taggar är "självstängande", t.ex. br och img. Dessa har bara en tag som avslutas med ' />'.

background="" och <center> är föråldrade, som sagt. body { background-image: url('paper.gif'); } är korrekt. Sätt helt enkelt den koden i en skild CSS-fil som du inkluderar m.h.a. t.ex. <link rel="stylesheet" href="style.css">. Alternativt kan du ha koden i samma fil, inom head-delen av filen mellan <style> och </style> taggar.

För center använder man olika tekniker beroende på element, t.ex. margin: 0px auto; och text-align: center;.

Permalänk
Inaktiv

XHTML kräver att du stänger självstående taggar, <br />. I HTML5 är det valfritt och behövs inte, du kan alltså bara skriva <br>.

Permalänk
Skrivet av anon150287:

XHTML kräver att du stänger självstående taggar, <br />. I HTML5 är det valfritt och behövs inte, du kan alltså bara skriva <br>.

Skrivet av Tazavoo:

<br /> är helt enkelt en radbrytning. Du måste inte ha det, men annars kommer allting på samma rad.
Snedstrecket har du för att vanliga taggar består av <tag> och </tag>, men vissa taggar är "självstängande", t.ex. br och img. Dessa har bara en tag som avslutas med ' />'.

background="" och <center> är föråldrade, som sagt. body { background-image: url('paper.gif'); } är korrekt. Sätt helt enkelt den koden i en skild CSS-fil som du inkluderar m.h.a. t.ex. <link rel="stylesheet" href="style.css">. Alternativt kan du ha koden i samma fil, inom head-delen av filen mellan <style> och </style> taggar.

För center använder man olika tekniker beroende på element, t.ex. margin: 0px auto; och text-align: center;.

Okej tack för båda svaren. Jag antar att en css fil sparar man som .css i ändelsen?

Visa signatur
Permalänk
Medlem

Stämmer bra!