WebPillangó főoldal
webszerkesztés és photoshop fórum - WebPillangó
WebPillangó
»
Programozás
»
PHP
Username:
1 óra
1 nap
1 hét
1 hónap
Mindig
Password:
Főoldal
Súgó
Keresés
Quick Search
Advanced Search
[Close]
Bejelentkezés
Regisztráció
Oldalak:
1
2
3
[
4
]
5
6
...
28
Le
« előző
következő »
Nyomtatás
Szerző
Téma: PHP (Megtekintve 62836 alkalommal)
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #60 Dátum:
2008. 02. 14. - 18:48:29 »
A kiíratásnál, mielőtt ki akarsz iratni a munkamenetből, elindítottad azt session_start()-tal? Most látom, hogy a megadott kódnál is későn van a munkamenet indítás. Ha egy HTMLben munkamenetet használsz, ajánlatos azt elindítani a HTML elején, vagyis legelső sorként:
Kód:
<?php session_start
();
?>
Ebben az ifben:
Kód:
if ( $_POST['nick'] = "" && $_POST['pass'] = "" && $_POST['mail'] = "" )
te ÉSeket raktál. Na már most, ha valamelyik is nem egy üres karakterlánc, akkor nem megy be a program azon ágába. Ennek egyenes következménye, hogy nem jut el addig, ahol megnézi, ha valaminek zérus a hossza. Nézd át újból, amít régebb írtam, volt egy isset() függvény. Egyszer azt ellenörzöd, hogy létezik a változó vagy sem. Ha valami nem OK, akkor írod is a hibaüzenetet. Ha OK, akkor ellenörzöd tovább és így tovább...
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #61 Dátum:
2008. 02. 14. - 19:11:30 »
úgy tudom, így kéne használni az "isset" et, de valami
http://vtpc.extra.hu/teszt/
mégsem jó
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teszt</title>
</head>
<body>
<form action=lekerdez.php method=post><font color="#D9090E">*</font>Név: <input type=text name='nick'>
<font color="#D9090E">*</font>Jelszó: <input type=password name='pass'>
<font color="#D9090E">*</font>E-mail cím: <input type=text name='mail'>
Weboldalad: <input type=text name='oldalad'>
<input type=submit name='kuld'></form>
<?php
$_SESSION
[
'nick'
]=
$_POST
[
'nick'
];
$_SESSION
[
'pass'
]=
$_POST
[
'pass'
];
$_SESSION
[
'mail'
]=
$_POST
[
'mail'
];
$_SESSION
[
'oldalad'
]=
$_POST
[
'oldalad'
];
if (isset(
$_POST
[
'nick'
]) && isset(
$_POST
[
'pass'
]) && isset(
$_POST
[
'mail'
]))
{
session_register
();
}
else {
echo
"Hiba"
;
}
if (
strlen
(
$_POST
[
'nick'
] ) >
0
&&
strlen
(
$_POST
[
'pass'
]) >
0
&&
strlen
(
$_POST
[
'mail'
]) >
0
)
{
session_register
();
}
else {
echo
"Nem töltöttél ki minden mezőt"
;
}
?>
</body>
</html>
Javítva.
«
Utoljára szerkesztve: 2008. 02. 14. - 19:56:58 írta TreamX
»
Naplózva
schumika
Új tag
Nem elérhető
Hozzászólások: 16
Re: PHP
«
Válasz #62 Dátum:
2008. 02. 14. - 19:50:41 »
Az isset-ek közé is kellene &&.
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #63 Dátum:
2008. 02. 14. - 19:52:37 »
értem. így már behozza az oldalt, de most ezekután hogy lehetn megcsinálni, hogy a hibát ne irja ki csak ha már ráment a küldésre, és akkor hibás?
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #64 Dátum:
2008. 02. 14. - 19:53:24 »
A session_start() még mindig nincs az állomány legelején. Nem lehet előtte semmi ... egy space sem ... nem hogy egy egész szöveg, HTML tag, stb.
Úgy ahogyan azt már írtam ... van egy olyan érzésem, hogy átfutsz a válaszon, és nem olvasod el alaposan ... a megoldás:
Megnézed, hogy volt-e ürlap elküldés isset-tel egy POSTolt változon. Ha nem volt, kiírod az ürlapot .... ha volt, akkor ellenörzöd, hogy minden mező ki volt-e töltve.
«
Utoljára szerkesztve: 2008. 02. 14. - 20:04:45 írta Tupacko
»
Naplózva
schumika
Új tag
Nem elérhető
Hozzászólások: 16
Re: PHP
«
Válasz #65 Dátum:
2008. 02. 14. - 20:28:02 »
Szóval, kb így lenne helyesen:
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teszt</title>
</head>
<body>
<?php
$_SESSION
[
'nick'
]=
$_POST
[
'nick'
];
$_SESSION
[
'pass'
]=
$_POST
[
'pass'
];
$_SESSION
[
'mail'
]=
$_POST
[
'mail'
];
$_SESSION
[
'oldalad'
]=
$_POST
[
'oldalad'
];
if (isset(
$_POST
[
'nick'
]) && isset(
$_POST
[
'pass'
]) && isset(
$_POST
[
'mail'
]))
{
if (
strlen
(
$_POST
[
'nick'
] ) >
0
&&
strlen
(
$_POST
[
'pass'
]) >
0
&&
strlen
(
$_POST
[
'mail'
]) >
0
)
{
session_register
();
}
else
{
echo
"Nem töltöttél ki minden mezőt<br />"
;
}
}
echo
'<form action="lekerdez.php" method="post"><font color="#D9090E">*</font>Név: <input type="text" name="nick" value="'
.
$_POST
[
'nick'
] .
'">
<font color="#D9090E">*</font>Jelszó: <input type="password" name="pass" value="'
.
$_POST
[
'pass'
] .
'">
<font color="#D9090E">*</font>E-mail cím: <input type=text name="mail" value="'
.
$_POST
[
'mail'
] .
'">
Weboldalad: <input type="text" name="oldalad" value="'
.
$_POST
[
'oldalad'
] .
'">
<input type="submit" name="kuld"></form>'
;
?>
</body>
</html>
Az echot teheted máshová is, attól függ mikor akarod kiiratni.
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #66 Dátum:
2008. 02. 14. - 20:39:57 »
Miért berakni a munkamenetbe az adatokat, amíg azokat nem ellenőrízted. Az adatok bemásolása a session_register(); helyére kell, a session_register(); meghívás meg nem kell.
Amúgy igen, kb. erre gondolhatot TreamX.
Naplózva
schumika
Új tag
Nem elérhető
Hozzászólások: 16
Re: PHP
«
Válasz #67 Dátum:
2008. 02. 14. - 20:52:19 »
Nem tudtam mi akar lenni az a session_register, inkább ott hagytam. Amúgy igazad van, ezt elnéztem
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #68 Dátum:
2008. 02. 14. - 20:55:07 »
Köszi a kódot. Átolvasom majd jobban, és megpróbálom értelmezni hogy mért így
akkor a session_register(); nem is kell ebbe az oldalba?
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #69 Dátum:
2008. 02. 14. - 20:58:50 »
Nem igazán
Jó tanulmányozást.
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #70 Dátum:
2008. 02. 14. - 21:17:16 »
Na áttanulmányoztam, bár ha nem írok valamelyik inputba szöveget, akkor is ugyanúgy továbbmegy, de majd megoldom. Viszont azt nemtudom, már kipróbáltam jónéhány féle képpen(?), hogy ugye továbbmeny a lekerdez.php-re, és kiirattam veled az adatokat,
de mivel echo $_POST['nick']; van, se elé nem lehet irni szöveget, vagy sortörést csinálni:
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Lekérdezi</title>
</head>
<body>
<?php
echo
"Adataid:<br>"
;
echo
$_POST
[
'nick'
];
echo
$_POST
[
'mail'
];
echo
$_POST
[
'oldalad'
];
?>
</body>
</html>
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #71 Dátum:
2008. 02. 14. - 21:34:18 »
De lehet:
Kód:
echo "amit akarsz ".$_SESSION['valami']." tovabb ...".$valtozo."egyeb ....";
// vagy siman
echo "amit akarsz ", $_SESSION['valami'], " tovabb ...", $valtozo, "egyeb ....";
OFF: ez érdekes sor, gondlkodj mielőtt írsz
Idézet
de mivel echo $_POST['nick']; van, se elé nem lehet irni szöveget, vagy sortörést csinálni:
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #72 Dátum:
2008. 02. 14. - 21:53:58 »
A kérdésem az lenne, hogy php-ben, vagy html-ben van e olyan kód, mint ha pl WORD ben nyomnál egy Tabulátor gombot. Szóval a lényeg, hogy kiírom pl azt hogy Neved: valami és alá hogy E-mail címed: valami, akkor a "valami"-k egymás alá kerüljenek, ne "össze vissza"
Konkrét példa:
Kód:
<?php
echo
"Adataid:<br>"
;
echo
"Neved:
"
,
$_SESSION
[
"nick"
] ,
"<br>"
;
echo
"E-mail címed:
"
,
$_POST
[
'mail'
] ,
"<br>"
;
echo
"Weboldalad:
"
,
$_POST
[
'oldalad'
] ,
"<br>"
;
?>
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #73 Dátum:
2008. 02. 14. - 22:06:58 »
Ezt nem tabbal tudod megodlani, hanem CSS-HTML kombóval. Egyszerű változat, ha táblzatba rakod a dolgokat, a neccesebb változat ha clean formokat használsz:
http://www.websiteoptimization.com/speed/tweak/forms/
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #74 Dátum:
2008. 02. 14. - 22:17:41 »
Értem, köszönöm. Még 1 kérdés, és mára ennyi
Szóval az index.php kódja:
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teszt</title>
</head>
<body>
<?php
$_SESSION
[
'nick'
]=
$_POST
[
"nick"
];
$_SESSION
[
'pass'
]=
$_POST
[
"pass"
];
$_SESSION
[
'mail'
]=
$_POST
[
"mail"
];
$_SESSION
[
'oldalad'
]=
$_POST
[
'oldalad'
];
if (isset(
$_POST
[
'nick'
]) && isset(
$_POST
[
'pass'
]) && isset(
$_POST
[
'mail'
]))
{
if (
strlen
(
$_POST
[
'nick'
] ) >
0
&&
strlen
(
$_POST
[
'pass'
]) >
0
&&
strlen
(
$_POST
[
'mail'
]) >
0
)
{
}
else
{
echo
"Nem töltöttél ki minden mezőt<br />"
;
}
}
echo
'<form action="lekerdez.php" method="post"><font color="#D9090E">*</font>Név: <input type="text" name="nick" value="'
.
$_SESSION
[
'nick'
] .
'">
<font color="#D9090E">*</font>Jelszó: <input type="password" name="pass" value="'
.
$_SESSION
[
'pass'
] .
'">
<font color="#D9090E">*</font>E-mail cím: <input type=text name="mail" value="'
.
$_SESSION
[
'mail'
] .
'">
Weboldalad: <input type="text" name="oldalad" value="'
.
$_SESSION
[
'oldalad'
] .
'">
<input type="submit" name="kuld"></form>'
;
?>
</body>
</html>
És a lekerdez.php kódja:
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Lekérdezi</title>
</head>
<body>
<?php
echo
"Adataid:<br>"
;
echo
"Neved:
"
,
$_SESSION
[
'nick'
] ,
"<br>"
;
echo
"E-mail címed:
"
,
$_SESSION
[
'mail'
] ,
"<br>"
;
echo
"Weboldalad:
"
,
$_SESSION
[
'oldalad'
] ,
"<br>"
;
?>
</body>
</html>
Valamiért ha $_SESSION-nal akarom kiiratni, nem sikerül, csak ha $_POST-al iratom ki
Mért van ez?
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #75 Dátum:
2008. 02. 14. - 22:25:24 »
Azért, mert ahogy az schumikának is írtam, a sessionba való érték berakás nem jó helyt van ... oda kell tedd, ahol már leellenőrízted, hogy volt adat küldve, és az jó is.
Kód:
<?php
if (isset(
$_POST
[
'nick'
]) && isset(
$_POST
[
'pass'
]) && isset(
$_POST
[
'mail'
]))
{
if (
strlen
(
$_POST
[
'nick'
] ) >
0
&&
strlen
(
$_POST
[
'pass'
]) >
0
&&
strlen
(
$_POST
[
'mail'
]) >
0
)
{
$_SESSION
[
'nick'
]=
$_POST
[
"nick"
];
$_SESSION
[
'pass'
]=
$_POST
[
"pass"
];
$_SESSION
[
'mail'
]=
$_POST
[
"mail"
];
$_SESSION
[
'oldalad'
]=
$_POST
[
'oldalad'
];
}
else
{
echo
"Nem töltöttél ki minden mezőt<br />"
;
}
}
echo
'<form action="lekerdez.php" method="post"><font color="#D9090E">*</font>Név: <input type="text" name="nick" value="'
.
$_SESSION
[
'nick'
] .
'">
<font color="#D9090E">*</font>Jelszó: <input type="password" name="pass" value="'
.
$_SESSION
[
'pass'
] .
'">
<font color="#D9090E">*</font>E-mail cím: <input type=text name="mail" value="'
.
$_SESSION
[
'mail'
] .
'">
Weboldalad: <input type="text" name="oldalad" value="'
.
$_SESSION
[
'oldalad'
] .
'">
<input type="submit" name="kuld"></form>'
;
?>
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #76 Dátum:
2008. 02. 15. - 08:31:26 »
Lehet, hogy én vagyok nagyon kuka hozzá,de most sem jó.
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teszt</title>
</head>
<body>
<?php
if (isset(
$_POST
[
'nick'
]) && isset(
$_POST
[
'pass'
]) && isset(
$_POST
[
'mail'
]))
{
if (
strlen
(
$_POST
[
'nick'
] ) >
0
&&
strlen
(
$_POST
[
'pass'
]) >
0
&&
strlen
(
$_POST
[
'mail'
]) >
0
)
{
$_SESSION
[
'neved'
]=
$_POST
[
'nick'
];
$_SESSION
[
'jelszavad'
]=
md5
(
$_POST
[
'pass'
]);
$_SESSION
[
'email'
]=
$_POST
[
'mail'
];
$_SESSION
[
'website'
]=
$_POST
[
'oldalad'
];
}
else
{
echo
"Nem töltöttél ki minden mezőt<br />"
;
}
}
echo
'<form action="lekerdez.php" method="post"><font color="#D9090E">*</font>Név: <input type="text" name="nick" value="'
.
$_POST
[
'nick'
] .
'">
<font color="#D9090E">*</font>Jelszó: <input type="password" name="pass" value="'
.
$_POST
[
'pass'
] .
'">
<font color="#D9090E">*</font>E-mail cím: <input type=text name="mail" value="'
.
$_POST
[
'mail'
] .
'">
Weboldalad: <input type="text" name="oldalad" value="'
.
$_POST
[
'oldalad'
] .
'">
<input type="submit" name="kuld"></form>'
;
?>
</body>
</html>
Kód:
<?php
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Lekérdezi</title>
</head>
<body>
<?php
echo
"Adataid:<br>"
;
echo
"Neved:
"
.
$_SESSION
[
'nick'
] .
"<br>"
;
echo
"E-mail címed:
"
.
$_SESSION
[
'mail'
] .
"<br>"
;
echo
"Weboldalad:
"
.
$_SESSION
[
'oldalad'
] .
"<br>"
;
?>
</body>
</html>
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
Válasz #77 Dátum:
2008. 02. 15. - 11:37:59 »
Nem vagy kuka, csak nem figyelsz oda, amit irsz:
beirod a munkamenetbe, hogy $_SESSION['neved'] .. s ki akarod iratni a masik odalon a $_SESSION['nick']-et ...
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #78 Dátum:
2008. 02. 15. - 11:59:28 »
őőő. most sem jó
Naplózva
TreamX
Tag
Nem elérhető
Hozzászólások: 165
Re: PHP
«
Válasz #79 Dátum:
2008. 02. 15. - 12:44:16 »
Na most egy komolyabb kérdésem lenne. Ha regisztrál valaki, akkor megkéne oldani, hogy mindenkinek kiosszon egy "ID"-t. Szóval ha én regelek először, akkor enyém az id1 a következőé id2 stb... És ha valahol kivan irva a nevem az oldalon, akkor a hivatkozás ilyen legyen: users.php?id=1 . Hogy lehetne ezt megoldani?
Naplózva
Oldalak:
1
2
3
[
4
]
5
6
...
28
Fel
Nyomtatás
« előző
következő »
Ugrás:
Kérlek válassz egy célt:
-----------------------------
WebPillangó
-----------------------------
=> Általános társalgó
=> Programozás
=> Grafika
=> Weboldal készítés
Töltés...