PHP hjálp


Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

PHP hjálp

Pósturaf B.Ingimarsson » Fös 28. Jan 2011 19:43

vantar smá hjálp hérna, er aðeins að leika mér að búa til register síðu, kóðinn:

Kóði: Velja allt

<body bgcolor="#252525">
<font color="white" face="arial" >
<b>
     <h2>Nýskráning</h2>
     <h2>______________________________</h2>
</b>
</font>
</body>
<?php
$name=$_POST[name];
$username=$_POST[username];
$email=$_POST[email];
$email2=$_POST[email2];
$password=$_POST[password];
$password2=$_POST[password2];
$terms=$_POST[accept];

//see if password is correct
if ($password==$password2)
{

}
else
{
header("location:villa/incorrectpassword.html");
}

//see if email is correct
if ($email==$email2)
{

}
else
{
header("location:villa/incorrectemail.html");
}

//see if username is alphanumberic
if (!eregi(("[^A-Za-z0-9.^]"),$username))
{

}
else
{
header("location:villa/incorrectusername.html");
}

//see if name is alpharic
if (!eregi(("[^A-Z a-z^]"),$name))
{

}
else
{
header("location:villa/incorrectname.html");
}

if (isset($terms))
{
}
else
{
header("location:villa/terms.html");
}

if ($name=="")
    {header("location:villa/empty.html");}
elseif ($username=="")
    {header("location:villa/empty.html");}
elseif ($email=="")
    {header("location:villa/empty.html");}
elseif ($password=="")
    {header("location:villa/empty.html");}
   
include('connect.php');   
   
$query="SELECT * FROM users WHERE username ='$username'";
$result=mysql_query($query);
$num=mysql_num_rows($result);

if ($num==0)
{}
else
{header("location:villa/empty.html");}
?>

<?php

?>

<body bgcolor="#252525">
<font color="white" face="arial" >
<b>

<?php
echo "fullt nafn: ".$name."<br/>" ;
echo "notendanafn: ".$username."<br/>" ;
echo "netfang: ".$email."<br/>" ;
echo "lykilorð: ";
?>

<input type="button" value="sýna lykilorð" onclick="alert('<?php echo ($password); ?>')">

</b>
</font>
</body>


allavega vandamálið byrjar í línu 80 eða þar nálægt, það sem þetta á að gera er að gá hversu mörg notendanöfn eru í mySQL sömu og það sem var sett inn,
ef það eru 0 jöfn og $username á ekkert að gerast annars á það að fara á síðu sem segir að notendanafn sé í notkun, vandamálið er í línu 84 sem er:

Kóði: Velja allt

header("location:villa/empty.html")


hvað er ég að gera vitlaust ?, allar ábendingar vel þegnar :D

EDIT: fattaði núna að ég var með html kóða efst en það má víst ekkert vera fyrir ofan php tögin :catgotmyballs hvernig get ég fengið þetta:

Kóði: Velja allt

<body bgcolor="#252525">
<font color="white" face="arial" >
<b>
     <h2>Nýskráning</h2>
     <h2>______________________________</h2>
</b>
</font>
</body>

til að vera efst



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: PHP hjálp

Pósturaf dori » Fös 28. Jan 2011 20:16

Ég held að það sé nokkurnvegin svona: https://gist.github.com/800857 (hef ekki keyrt þetta)

Það sem er að er að þú verður að stilla allt sem þú sendir í HTTP hausnum áður en þú byrjar að prenta út => setja header() köll efst.




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Fös 28. Jan 2011 20:23

dori skrifaði:Ég held að það sé nokkurnvegin svona: https://gist.github.com/800857 (hef ekki keyrt þetta)

Það sem er að er að þú verður að stilla allt sem þú sendir í HTTP hausnum áður en þú byrjar að prenta út => setja header() köll efst.

þetta virkar takk, reyndar dáltið einfalt þegar ég sé villuna :lol:



Skjámynd

appel
Stjórnandi
Póstar: 5596
Skráði sig: Fös 13. Jún 2003 16:46
Reputation: 1054
Staða: Ótengdur

Re: PHP hjálp

Pósturaf appel » Fös 28. Jan 2011 20:29

Kóði: Velja allt

$username=$_POST[username];
...
$query="SELECT * FROM users WHERE username ='$username'";


Dæmigerð öryggishola væni, sql-injection.
http://en.wikipedia.org/wiki/SQL_injection

Notaðu: http://php.net/manual/en/function.mysql ... string.php


*-*

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: PHP hjálp

Pósturaf dori » Fös 28. Jan 2011 21:30

Bobby tables myndi fara illa með kerfið þitt... Haha, ég las ekkert yfir þetta nema til að finna hvar header() endaði. Ég myndi líka nota library fyrir formið. Sé í fljótu bragði þetta hérna.. Það er kannski bara ég.

Svo er þetta form á kóðanum mjög skrýtið:

Kóði: Velja allt

ef ekki skilyrði:
    no-op
annars:
    redirect-á-villusíðu

Það er líka rosalega móðins að senda notandanum aftur formið og leyfa honum að leiðrétta sig ef eitthvað var vitlaust hjá honum. Eitthvað í þessa áttina:

Kóði: Velja allt

form = SvakaFormLibrary($_POST)
if form.is_valid():
    búa-til-notanda
    redirect-á-forsíðu/dashboard/shit
render(form)

Þetta er auðvitað ekki kóði sem virkar en ætti að gefa einhverja hugmynd um hvað þú getur gert.




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 09:37

appel skrifaði:

Kóði: Velja allt

$username=$_POST[username];
...
$query="SELECT * FROM users WHERE username ='$username'";


Dæmigerð öryggishola væni, sql-injection.
http://en.wikipedia.org/wiki/SQL_injection

Notaðu: http://php.net/manual/en/function.mysql ... string.php

Kóði: Velja allt

<?php
// Connect
$link = mysql_connect('localhost', 'top secret', 'top secret')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE username ='$username'"),
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

hvað á að vera í "mysql_real_escape_string()" ?




SteiniP
Bara að hanga
Póstar: 1573
Skráði sig: Mán 16. Jún 2008 21:54
Reputation: 1
Hafðu samband:
Staða: Ótengdur

Re: PHP hjálp

Pósturaf SteiniP » Lau 29. Jan 2011 10:30

B.Ingimarsson skrifaði:hvað á að vera í "mysql_real_escape_string()" ?

Þetta er einhvernveginn svona held ég.

Kóði: Velja allt

$query=sprintf("SELECT * FROM users WHERE username ='%s", mysql_real_escape_string($username));

semsagt setur ekki breytuna inn í queryið sjálft, heldur '%s' sem er placeholder fyrir streng. Svo inn í real escape string kemur strengurinn sem þú vilt að komi í staðinn fyrir '%s' þegar kóðinn er keyrður.




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 10:52

SteiniP skrifaði:
B.Ingimarsson skrifaði:hvað á að vera í "mysql_real_escape_string()" ?

Þetta er einhvernveginn svona held ég.

Kóði: Velja allt

$query=sprintf("SELECT * FROM users WHERE username ='%s", mysql_real_escape_string($username));

semsagt setur ekki breytuna inn í queryið sjálft, heldur '%s' sem er placeholder fyrir streng. Svo inn í real escape string kemur strengurinn sem þú vilt að komi í staðinn fyrir '%s' þegar kóðinn er keyrður.

ok, er þetta semsegt öruggara svona.

núna ætlaði ég að láta scriptina setja breyturnar $name, $username, $email, $password í mysql table þetta er kóðinn sem ég notaði:

Kóði: Velja allt

mysql_query("INSERT INTO users (full name, username, email, password) VALUES ($name,$username, $email, $password)");

hvað er ég að gera vitlaust




SteiniP
Bara að hanga
Póstar: 1573
Skráði sig: Mán 16. Jún 2008 21:54
Reputation: 1
Hafðu samband:
Staða: Ótengdur

Re: PHP hjálp

Pósturaf SteiniP » Lau 29. Jan 2011 11:06

B.Ingimarsson skrifaði:ok, er þetta semsegt öruggara svona.

Já, annars getur fólk sett inn sql query í username kassann og t.d. fengið út allar upplýsingar um alla notendur á síðunni.
B.Ingimarsson skrifaði:núna ætlaði ég að láta scriptina setja breyturnar $name, $username, $email, $password í mysql table þetta er kóðinn sem ég notaði:

Kóði: Velja allt

mysql_query("INSERT INTO users (full name, username, email, password) VALUES ($name,$username, $email, $password)");

hvað er ég að gera vitlaust

Eru þetta örugglega rétt nöfn á dálkunum í töflunni? Man ekki hvort það var hægt að nota bil í mysql dálkanöfnum ("full name")

Annars ættirðu að nota sql escape string í þessu á sama hátt og í select queryinu.

Kóði: Velja allt

sprintf("INSERT INTO users (fullname, username, email, password) VALUES ('%s', '%s', '%s', '%s')",
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password));




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 16:44

hmmm :-k

þetta virkar með sql query, svona:

Kóði: Velja allt

mysql_query("INSERT INTO `b.ingimarsson`.`temp` (`code`, `username`, `email`, `password`) VALUES ('$confirm_code', '$username', '$email', '$password')")


en ekki svona:

Kóði: Velja allt

sprintf("INSERT INTO `b.ingimarsson`.`users` (`code`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')",
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password));


? ? ? ? ? ?



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: PHP hjálp

Pósturaf dori » Lau 29. Jan 2011 17:11

sprintf() er bara til að formatta streng (string print formatted er væntanlega það sem þetta stendur fyrir).

Gerðu bara þetta:

Kóði: Velja allt

mysql_query(sprintf(...));




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 17:30

dori skrifaði:sprintf() er bara til að formatta streng (string print formatted er væntanlega það sem þetta stendur fyrir).

Gerðu bara þetta:

Kóði: Velja allt

mysql_query(sprintf(...));

þetta er ekki að virka, hef þetta bara hinseginn laga það seinna þegar ég kann betur á þetta :megasmile takk samt fyrir alla hjálpina



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: PHP hjálp

Pósturaf dori » Lau 29. Jan 2011 18:27

B.Ingimarsson skrifaði:
dori skrifaði:sprintf() er bara til að formatta streng (string print formatted er væntanlega það sem þetta stendur fyrir).

Gerðu bara þetta:

Kóði: Velja allt

mysql_query(sprintf(...));

þetta er ekki að virka, hef þetta bara hinseginn laga það seinna þegar ég kann betur á þetta :megasmile takk samt fyrir alla hjálpina

Neineinei... Þá ertu að bjóða uppá injection attack. Hvaða villa kemur? Það væri rosalega flott að fá það svo að við getum hjálpað þér. Prufaðu svo að henda þessu inn í kóðann:

Kóði: Velja allt

echo sprintf(...);

Hvaða streng prentar þetta?



Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: PHP hjálp

Pósturaf intenz » Lau 29. Jan 2011 18:49

Kóði: Velja allt

$name = mysql_real_escape_string( $name );
$username = mysql_real_escape_string( $username );
$email = mysql_real_escape_string( $email );
$password = mysql_real_escape_string( $password );

mysql_query( "INSERT INTO users (name, username, email, password) VALUES ('$name','$username', '$email', '$password')" );


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64


Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 18:51

villurnar:

Kóði: Velja allt

Warning: sprintf() [function.sprintf]: Too few arguments in C:\xampp\htdocs\B.Ingimarsson\2.php on line 98

Warning: mysql_query() expects at most 2 parameters, 5 given in C:\xampp\htdocs\B.Ingimarsson\2.php on line 102

kóðinn í heild:

Kóði: Velja allt

<?php

$name=$_POST[name];
$username=$_POST[username];
$email=$_POST[email];
$email2=$_POST[email2];
$password=$_POST[password];
$password2=$_POST[password2];
$terms=$_POST[accept];
$confirm_code=md5(uniqid(rand()));

//see if password is correct
if ($password==$password2)
{

}
else
{
header("location:villa/incorrectpassword.html");
break;
}

//see if email is correct
if ($email==$email2)
{

}
else
{
header("location:villa/incorrectemail.html");
break;
}

//see if username is alphanumberic
if (!eregi(("[^A-Za-z0-9.^]"),$username))
{

}
else
{
header("location:villa/incorrectusername.html");
break;
}

//see if name is alpharic
if (!eregi(("[^A-Z a-z^]"),$name))
{

}
else
{
header("location:villa/incorrectname.html");
break;
}

if (isset($terms))
{
}
else
{
header("location:villa/terms.html");
break;
}

if ($name=="")
    {header("location:villa/empty.html"); break;}
elseif ($username=="")
    {header("location:villa/empty.html"); break;}
elseif ($email=="")
    {header("location:villa/empty.html"); break;}
elseif ($password=="")
    {header("location:villa/empty.html"); break;}
   
include('connect.php');   
   
$query=sprintf("SELECT * FROM users WHERE username ='%s'",
mysql_real_escape_string($username));

$result=mysql_query($query);
$num=mysql_num_rows($result);

if ($num==0)
{}
else
{header('location:villa/nameinuse.html');}

$query=sprintf("SELECT * FROM users WHERE username ='%s'",
mysql_real_escape_string($email));

$result=mysql_query($query);
$num=mysql_num_rows($result);

if ($num==0)
{}
else
{header('location:villa/emailinuse.html');}

mysql_query(sprintf("INSERT INTO `b.ingimarsson`.`temp` (`code`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')"),
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password));

?>



<body bgcolor="#252525">
<font color="white" face="arial" >
<b>
     <h2>Nýskráning</h2>
     <h2>______________________________</h2>
</b>
</font>
</body>
<body bgcolor="#252525">
<font color="white" face="arial" >
<b>


<?php

?>

<body bgcolor="#252525">
<font color="white" face="arial" >
<b>

<?php

echo "fullt nafn: ".$name."<br/>" ;
echo "notendanafn: ".$username."<br/>" ;
echo "netfang: ".$email."<br/>" ;
echo "lykilorð: ";


?>

<input type="button" value="sýna lykilorð" onclick="alert('<?php echo ($password); ?>')">
<br/>
<br/>

<?php

echo $confirm_code;

?>

<br/>
<br/>
<input type="button" value="halda áfram" onclick="">

</b>
</font>
</body>

sprintf kóðinn:

Kóði: Velja allt

mysql_query(sprintf("INSERT INTO `b.ingimarsson`.`temp` (`code`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')"),
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password));


echo sprintf kóðinn:

Kóði: Velja allt

echo sprintf("INSERT INTO `b.ingimarsson`.`temp` (`code`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')"),
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password);


þegar ég notaði echo þá prentaði það út:

Kóði: Velja allt

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb


sem er $name, $username, $email, $password til samans ($name = bbbbbbb, $username = bbbbbbb, $email = bbbbbbb, $password = bbbbbbbbbbbbbb)

og gaf ennþá villuna:

Kóði: Velja allt

Warning: sprintf() [function.sprintf]: Too few arguments in C:\xampp\htdocs\B.Ingimarsson\2.php on line 98



Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: PHP hjálp

Pósturaf intenz » Lau 29. Jan 2011 19:22

Af hverju að nota sprintf() ?


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64


Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 19:25

intenz skrifaði:Af hverju að nota sprintf() ?

það er víst öruggara, lestu þráðinn




SteiniP
Bara að hanga
Póstar: 1573
Skráði sig: Mán 16. Jún 2008 21:54
Reputation: 1
Hafðu samband:
Staða: Ótengdur

Re: PHP hjálp

Pósturaf SteiniP » Lau 29. Jan 2011 19:42

B.Ingimarsson skrifaði:
intenz skrifaði:Af hverju að nota sprintf() ?

það er víst öruggara, lestu þráðinn

Skiptir ekki máli. þetta sem intenz póstaði gerir held ég sama gagn.
Aðalatriðið er að setja mysql_real_escape_string() utan um breyturnar áður en query er keyrt á gagnagrunninum.

Annars sýnist mér þessi villa bara vera smá svigaruglingur. Þú ert að loka sprintf kallinu áður en þú setur strengina inn í það.

Kóði: Velja allt

mysql_query(sprintf("INSERT INTO `b.ingimarsson`.`temp` (`code`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')",
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password)));

Ætti að virka svona.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: PHP hjálp

Pósturaf dori » Lau 29. Jan 2011 19:59

intenz skrifaði:Af hverju að nota sprintf() ?

Ég fíla að nota string formatting... Kannski er það dýrara en hitt, ég hef ekki notað PHP svo lengi að ég man ekki lengur allt um hvernig þetta virkar. Var ekki líka einhver díll með ' eða "? Þannig að ef þú notar einfaldar gæsalappir er ekki leitað eftir $breytum og þannig er það hraðvirkara (ef það á ekki að leita eftir breytum).

Ég allavega fíla string formatting, þetta er rosalega basic virkni en þegar þú ert kominn með fjölda aukastafa á tölum, dagsetningar o.fl. þess háttar þá er þetta alveg magnað og mjög ávanabindandi.




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 20:17

ókey svona er kóðinn núna:

Kóði: Velja allt

<?php

$name=$_POST[name];
$username=$_POST[username];
$email=$_POST[email];
$email2=$_POST[email2];
$password=$_POST[password];
$password2=$_POST[password2];
$terms=$_POST[accept];
$confirm_code=md5(uniqid(rand()));

//see if password is correct
if ($password==$password2)
{

}
else
{
header("location:villa/incorrectpassword.html");
break;
}

//see if email is correct
if ($email==$email2)
{

}
else
{
header("location:villa/incorrectemail.html");
break;
}

//see if username is alphanumberic
if (!eregi(("[^A-Za-z0-9.^]"),$username))
{

}
else
{
header("location:villa/incorrectusername.html");
break;
}

//see if name is alpharic
if (!eregi(("[^A-Z a-z^]"),$name))
{

}
else
{
header("location:villa/incorrectname.html");
break;
}

if (isset($terms))
{
}
else
{
header("location:villa/terms.html");
break;
}

if ($name=="")
    {header("location:villa/empty.html"); break;}
elseif ($username=="")
    {header("location:villa/empty.html"); break;}
elseif ($email=="")
    {header("location:villa/empty.html"); break;}
elseif ($password=="")
    {header("location:villa/empty.html"); break;}
   
include('connect.php');   
   
$query=sprintf("SELECT * FROM users WHERE username ='%s'",
mysql_real_escape_string($username));

$result=mysql_query($query);
$num=mysql_num_rows($result);

if ($num==0)
{}
else
{header('location:villa/nameinuse.html');}

$query=sprintf("SELECT * FROM users WHERE username ='%s'",
mysql_real_escape_string($email));

$result=mysql_query($query);
$num=mysql_num_rows($result);

if ($num==0)
{}
else
{header('location:villa/emailinuse.html');}

mysql_query(sprintf("INSERT INTO `b.ingimarsson`.`temp` (`code`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')",
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password)));
?>



<body bgcolor="#252525">
<font color="white" face="arial" >
<b>
     <h2>Nýskráning</h2>
     <h2>______________________________</h2>
</b>
</font>
</body>
<body bgcolor="#252525">
<font color="white" face="arial" >
<b>


<?php

?>

<body bgcolor="#252525">
<font color="white" face="arial" >
<b>

<?php

echo "fullt nafn: ".$name."<br/>" ;
echo "notendanafn: ".$username."<br/>" ;
echo "netfang: ".$email."<br/>" ;
echo "lykilorð: ";


?>

<input type="button" value="sýna lykilorð" onclick="alert('<?php echo ($password); ?>')">
<br/>
<br/>

<?php

echo $confirm_code;

?>

<br/>
<br/>
<input type="button" value="halda áfram" onclick="">

</b>
</font>
</body>

er þetta ekki bara fínt :D, hef samt aldrei áður séð þetta sprintf, notaði altaf bara mysql_quote



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: PHP hjálp

Pósturaf dori » Lau 29. Jan 2011 21:32

B.Ingimarsson skrifaði:ókey svona er kóðinn núna:

Kóði: Velja allt

...

er þetta ekki bara fínt :D, hef samt aldrei áður séð þetta sprintf, notaði altaf bara mysql_quote

Ég myndi nú ekki segja að þetta sé "fínt" (skoðaðu fyrri athugasemdir við stílinn á if setningum og notkun á http redirect til að birta villur. Ég var búinn að gera einhverja tilraun til að lagfæra þetta en gafst upp í bili þegar ég sá að þetta er bara síðan sem höndlar formið (s.s. bara fyrir post höndlun). Skal kannski rífa mig í að senda kóðann sem ég var búinn að breyta með athugasemdum.

Það sem ég var að breyta var samt basically ekki nota þetta kjánalega "if() { no-op } else { action! }", ekki nota regex heldur ctype_alnum/ctype_alpha til að skoða strengi (þessi regex hjá þér eru líka eitthvað vafasöm finnst mér). Og svo ekki ákveða of mikið hvernig nöfn á fólki eru (bara alpha? það er til fólk sem heitir nöfnum með allskonar táknum t.d. - og ').



Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: PHP hjálp

Pósturaf intenz » Lau 29. Jan 2011 21:47

B.Ingimarsson skrifaði:
intenz skrifaði:Af hverju að nota sprintf() ?

það er víst öruggara, lestu þráðinn

Er það öruggara? Hvernig þá? :sleezyjoe


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64


Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Lau 29. Jan 2011 21:51

dori skrifaði:Ég myndi nú ekki segja að þetta sé "fínt" (skoðaðu fyrri athugasemdir við stílinn á if setningum og notkun á http redirect til að birta villur. Ég var búinn að gera einhverja tilraun til að lagfæra þetta en gafst upp í bili þegar ég sá að þetta er bara síðan sem höndlar formið (s.s. bara fyrir post höndlun). Skal kannski rífa mig í að senda kóðann sem ég var búinn að breyta með athugasemdum.

Það sem ég var að breyta var samt basically ekki nota þetta kjánalega "if() { no-op } else { action! }", ekki nota regex heldur ctype_alnum/ctype_alpha til að skoða strengi (þessi regex hjá þér eru líka eitthvað vafasöm finnst mér). Og svo ekki ákveða of mikið hvernig nöfn á fólki eru (bara alpha? það er til fólk sem heitir nöfnum með allskonar táknum t.d. - og ').

þarft þess ekkert mín vegna ég er bara eitthvað að leika mér, ég skil líka ekkert alltof mikið af því sem þú segir ég byrjaði að æfa mig í php í des '10 með tutorials frá http://www.thenewboston.com er bara að æfa mig, takk samt :D er heldur ekki alveg að skilja þig með ekki regex heldur eitthvað annað ?




Höfundur
B.Ingimarsson
Ofur-Nörd
Póstar: 290
Skráði sig: Sun 08. Ágú 2010 22:08
Reputation: 0
Staðsetning: 600 Akureyri
Staða: Ótengdur

Re: PHP hjálp

Pósturaf B.Ingimarsson » Sun 30. Jan 2011 18:20

ætlaði að láta upplýsingarnar sendast í mysql þegar notandi ýtir á takka, er ekki viss um að þetta sé rétti kóðinn en hvernig gæti ég gert þetta
(echo 'echo' er þarna bara til prófunar)

Kóði: Velja allt

<form name="form" method="post">
<input type="button" name="button" value="Halda áfram">
</form>

<?php

if(isset($_POST['button']))
{
mysql_query(sprintf("INSERT INTO `b.ingimarsson`.`users` (`name`, `username`, `email`, `password`) VALUES ('%s', '%s', '%s', '%s')",
mysql_real_escape_string($name),
mysql_real_escape_string($username),
mysql_real_escape_string($email),
mysql_real_escape_string($password)));
echo "echo";
}
else
{}

?>



Skjámynd

intenz
Besserwisser
Póstar: 3337
Skráði sig: Mið 08. Okt 2008 22:07
Reputation: 35
Staðsetning: /dev/null
Staða: Ótengdur

Re: PHP hjálp

Pósturaf intenz » Sun 30. Jan 2011 18:38

<input type="submit" name="button" value="Halda áfram">

type="button" submittar ekki formið og því sendist breytan aldrei.


i7 920 @ 2.8 GHz | Gigabyte EX58-UD3R | CSX 3x2 GB DDR3 @ 1600 MHz | Gigabyte ATi Radeon HD 5850 | Sileo 500 | RealPower 600W | Corsair Force 3 120 GB | 27" FullHD | W7 x64