WebPillangó főoldal
Oldalak: 1 2 3 [4] 5 6 ... 28   Le
  Nyomtatás  
Szerző Téma: PHP  (Megtekintve 62836 alkalommal)
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 958


WWW
« 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ő Nem elérhető

Hozzászólások: 165


WWW
« 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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
{
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ő Nem elérhető

Hozzászólások: 16


WWW
« 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ő Nem elérhető

Hozzászólások: 165


WWW
« 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ő Nem elérhető

Hozzászólások: 958


WWW
« 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ő Nem elérhető

Hozzászólások: 16


WWW
« 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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
     {
          
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ő Nem elérhető

Hozzászólások: 958


WWW
« 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ő Nem elérhető

Hozzászólások: 16


WWW
« 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 Bibííí
Naplózva
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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 Mosolyog
akkor a session_register(); nem is kell ebbe az oldalba?
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 958


WWW
« Válasz #69 Dátum: 2008. 02. 14. - 20:58:50 »

Nem igazán Mosolyog Jó tanulmányozást.
Naplózva
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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ő Nem elérhető

Hozzászólások: 958


WWW
« 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 Mosolyog
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ő Nem elérhető

Hozzászólások: 165


WWW
« 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ő Nem elérhető

Hozzászólások: 958


WWW
« 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ő Nem elérhető

Hozzászólások: 165


WWW
« 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  Bibííí Zavart
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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
     {
     }
     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 Szomorú Mért van ez?
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 958


WWW
« 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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
     {
        
$_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ő Nem elérhető

Hozzászólások: 165


WWW
« 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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
     {
 $_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ő Nem elérhető

Hozzászólások: 958


WWW
« 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ő Nem elérhető

Hozzászólások: 165


WWW
« Válasz #78 Dátum: 2008. 02. 15. - 11:59:28 »

őőő. most sem jó  Dühös Sír
Naplózva
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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  
 
Ugrás: