M Mycodez Medlem sedan feb. 2010 445 inlägg Frågan 23 okt. 2010 23:11 #1 Hej..
som titlen säger så har jag ett problem med att echo ut lite funktion
<?php
include('design/header.php');
require('connect.php');
//REGISTER CODE
//Grab submitted data
if($_POST['$submit'])
{
// Grabb submitted data
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$password = $_POST['password'];
$password_repeat = $_POST['password_repeat'];
$dob_year = $_POST['dob_year'];
$dob_month = $_POST['dob_month'];
$dob_day = $_POST['dob_day'];
$gender = $_POST['gender'];
if
(
$firstname&&
$lastname&&
$username&&
$password&&
$password_repeat&&
$dob_year&&
$dob_month&&
$dob_day&&
$gender
)
{
echo"allt lagrat";
}
else
echo"Missing field! Please fill in all fields!";
}
else
echo"Please enter your details and click Register.";
?>
<form action='register.php' method='post'>
<p>
<table width='100%'>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Firstname:</font>
</td>
<td>
<input type='text' namae='firstname' maxlength='25'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Lastname:</font>
</td>
<td>
<input type='text' namae='lastname' maxlength='25'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Username:</font>
</td>
<td>
<input type='text' namae='username' maxlength='25'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Password:</font>
</td>
<td>
<input type='password' namae='password' maxlength='25'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Repeat password:</font>
</td>
<td>
<input type='password' namae='password_repeat' maxlength='25'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Date of birth:</font>
</td>
<td>
<input type='text' namae='dob_year' maxlength='4' size='3' value='YYYY'> /
<input type='text' namae='dob_month' maxlength='2' size='1' value='MM'> /
<input type='text' namae='dob_day' maxlength='2' size='1' value='DD'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Gender:</font>
</td>
<td>
<select name='gender'>
<option>Female</option>
<option>Male</option>
</select>
</td>
</tr>
</table>
</p>
<div align='right'><input type='submit' namae='submit' value='Register'></div>
</form>
<?php
include('design/footer.php');
?>
Det ända som blir echo är
echo"Please enter your details and click Register.";
jag är ny i php så ni vet
mycket tacksam för snabba svar och liten beskrivning på felet tack
/ MMycodez
http://www.mycodez.se - bloggen
Idé 3D uf - mitt uf företag
M metalboy Medlem sedan jan. 2005 953 inlägg Du har skrivit namae='submit' på din submit-knapp. Ändra till name='submit'
M Mycodez Medlem sedan feb. 2010 445 inlägg tack dock ett mkt enkelt svar
M Mycodez Medlem sedan feb. 2010 445 inlägg Den vill fortfarande inte skriva ut mitt echo meddelande :(
Det är bara det echot som visar sig hela tiden
echo"Please enter your details and click Register.";
M Mycodez Medlem sedan feb. 2010 445 inlägg Det händer fortfarande ingen skillnad :(
M Mycodez Medlem sedan feb. 2010 445 inlägg Alltså vart kan felet sitta i mitt echo meddelande?
<?php
include('design/header.php');
require('connect.php');
//Register code
if($_POST['submit'])
{
// Grabb submitted data
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$password = $_POST['password'];
$password_repeat = $_POST['password_repeat'];
$dob_year = $_POST['dob_year'];
$dob_month = $_POST['dob_month'];
$dob_day = $_POST['dob_day'];
$gender = $_POST['gender'];
if
(
$firstname&&
$lastname&&
$username&&
$password&&
$password_repeat&&
$dob_year&&
$dob_month&&
$dob_day&&
$gender
)
{
echo "allt lagrat";
}
else
echo "Missing field! Please fill in all fields!";
}
else
echo "Please enter your details and click Register.";
?>
<form action='register.php' metohod='POST'>
<table width='60%'>
<tr>
<td width='40%' align='right'>
<font size='2' face='arial'>Firstname:</font>
</td>
<td>
<input type='text' name='firstname' maxlength='25'>
</td>
</tr>
<tr>
<td width='40%' align='right'>
<font size='2' face='arial'>Lastname:</font>
</td>
<td>
<input type='text' name='lastname' maxlength='25'>
</td>
</tr>
<tr>
<td width='40%' align='right'>
<font size='2' face='arial'>Username:</font>
</td>
<td>
<input type='text' name='username' maxlength='25'>
</td>
</tr>
<tr>
<td width='40%' align='right'>
<font size='2' face='arial'>Password:</font>
</td>
<td>
<input type='password' name='password' maxlength='25'>
</td>
</tr>
<tr>
<td width='40%' align='right'>
<font size='2' face='arial'>Repeat password:</font>
</td>
<td>
<input type='password' name='password_repeat' maxlength='25'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Date of birth:</font>
</td>
<td>
<input type='text' namae='dob_year' maxlength='4' size='3' value='YYYY'> /
<input type='text' namae='dob_month' maxlength='2' size='1' value='MM'> /
<input type='text' namae='dob_day' maxlength='2' size='1' value='DD'>
</td>
</tr>
<tr>
<td width='50%' align='right'>
<font size='2' face='arial'>Gender:</font>
</td>
<td>
<select name='gender'>
<option>Female</option>
<option>Male</option>
</select>
</td>
</tr>
</table>
<div align='right'><input type='submit' name='submit' value='Register'></div>
</form>
</table>
</form>
<?php
include('design/footer.php');
?>
M Mycodez Medlem sedan feb. 2010 445 inlägg Alltså har jag skrivit något gallet? har jag glömt tecken elelr vad e det för fel blir snart crazy
Ändra
if($_POST['submit'])
till
if(isset($_POST['submit']))
Du måste också fixa till denna kod
if
(
$firstname&&
$lastname&&
$username&&
$password&&
$password_repeat&&
$dob_year&&
$dob_month&&
$dob_day&&
$gender
)
Det funkar bara att skriva så om tex $firstname är sant eller falskt. Inte som sträng. Så du måste wrappa dom med isset, eller empty. Annars blir det fel.
fiddler Medlem sedan juli 2002 3 617 inlägg
Mycodez skrev:
Alltså har jag skrivit något gallet? har jag glömt tecken elelr vad e det för fel blir snart crazy
Du har ändrat lite från dit första inlägg. T.ex ändrat "method" till "metohod", vilket gör att du inte får med några värden alls... Du har även dubbla sluttaggar för "table" och "form".
fiddler Medlem sedan juli 2002 3 617 inlägg
Gildebrand skrev:
Det funkar bara att skriva så om tex $firstname är sant eller falskt. Inte som sträng. Så du måste wrappa dom med isset, eller empty. Annars blir det fel.
Min första tanke också, men vid en testkörning visade det sig fungera alldeles utmärkt. (PHP 5.3.1)
M Mycodez Medlem sedan feb. 2010 445 inlägg
Gildebrand skrev:
Ändra
if($_POST['submit'])
till
if(isset($_POST['submit']))
Du måste också fixa till denna kod
if
(
$firstname&&
$lastname&&
$username&&
$password&&
$password_repeat&&
$dob_year&&
$dob_month&&
$dob_day&&
$gender
)
Det funkar bara att skriva så om tex $firstname är sant eller falskt. Inte som sträng. Så du måste wrappa dom med isset, eller empty. Annars blir det fel.
Okej Vad gör det dära isset??
fiddler Medlem sedan juli 2002 3 617 inlägg
Mycodez skrev:
Okej Vad gör det dära isset??
if
(
isset($firstname)&&
isset($lastname)&&
isset($username)&&
...osv...
)
Kolla så att du har ändrat alla "namea" till "name". ;)
M Mycodez Medlem sedan feb. 2010 445 inlägg okej men jag har ändat allt nu och så till och med satt dit isset men nu så kommer inte echot ut utan allt skrivs ut i urlfältet vad e det för galet då?
@nders Medlem sedan juni 2000 32 967 inlägg Ja du. Har du ändrat till method som fiddler skrev i går?
Om man anger "metohod" istället för "method" så blir resultatet att man inte har angett method, och då skickas allt i url:en eftersom "get" är default.
M Mycodez Medlem sedan feb. 2010 445 inlägg oj det hade jag visst inte gjort men nu så funkar det ;) Tack så mycket:) men jGa gör funktion isset? egentligen vet om man sätter den i if satsen så gör den allt till isset men vad gör själva Isset funktionen?
@nders Medlem sedan juni 2000 32 967 inlägg Manualet på php.net är finfin.
Enligt http://se2.php.net/manual/en/function.isset.php använder man isset för att kontrollera att en variabel har ett värde (som är skilt från null).
T The_Hulk Medlem sedan juni 2003 1 837 inlägg istället för att anropa isset flera gånger kan man skriva följande:
if (isset($firstname, $lastname, $username, $password, $password_repeat, $dob_year, $dob_month, $dob_day, $gender) )
Fast variablerna kommer ju ändå få ett "värde" även fast $_POST är tom. Så isset där funkar väl inte? Du får isf. köra isset($_POST['firstname']) ... Alt kolla strlen($firstname)
fiddler Medlem sedan juli 2002 3 617 inlägg
MickeA.com skrev:
Fast variablerna kommer ju ändå få ett "värde" även fast $_POST är tom. Så isset där funkar väl inte? Du får isf. köra isset($_POST['firstname']) ... Alt kolla strlen($firstname)
Bättre att köra med "empty" kanske.