ugrás a tartalomhoz

Űrlap mysql-be

belebum · 2007. Jan. 30. (K), 23.00
Hello!

A honlapon, amit készítek a felhasználók regisztrálhatnak és ehhez kell egy űrlap, ami kész, leegyszerűsítve így néz ki (jelentkezés.php):

form id="submit" name="submit" method="get" action="program.php">
<table border="0" cellspacing="5" cellpadding="0" align="center">
<p>Név:</p>
</div></td>
<td width="271" class="small"><div align="left">
<input name="nev" type="text" id="nev" value="" size="30">
...
<input name="submit" type="submit"
id="submit" value="Regisztráció"></form>

és a php kód, aminek ki kellene olvasnia a felhasználó szövegmezőbe írt adatait nem működik. Egy külön fájlban van és a változók helyére kellene kiírni a regisztrált adatokat. Ez egyszerűsítve így néz ki (program.php):

<html>
<head>
<title>program.php</title>
</head>
<body>
<?php
print "Név <b>$nev</b><P>\n\n";
print "Eygéb:<P>\n\n<b>$egyeb</b>";
?>
</body>
</html>

Azt, hogy Név kiírja, de a hozzá tartozó felhasználó nevét nem.
A kérdésem az lenne, hiányzik ebből valami, hogy nem működik?
 
1

mhhh

konyak87 · 2007. Jan. 30. (K), 23.27
Szia!

Én is kezdő vagyok de szerintem ezek valamelyike a megoldás.
Ha egy fájlba van a kiolvasás és a kiiratás akkor valószínű az a probléma, hogy mivel tömmbe olvasod ki az adatokat így nem árt a változónak értéket adni:
$nev=$kiolvas["nev"];
Ha pedig külön fájlba olvassa ki akkor meg lehet, hogy nem kapja meg az adatokat ezt pedig !_POST["nev"]-el tudod ellenőrizni...
2

Megoldás

adminka · 2007. Jan. 31. (Sze), 08.15
Szia!

Állítsd át a form method-ot POST-ra. Ezután a form mezőinek a tartalmát a $_POST['mezonev'] tömbből tudod kiolvasni. pl. $_POST['nev']
Ezt GET-tel is meg lehet csinálni csak így biztonságosabb és szerintem szebb is.
3

És adatbázisba hogyan megy?

belebum · 2007. Jan. 31. (Sze), 09.30
Még lenne egy kérdésem:

Az így kitöltött űrlap php-ba dolgozott formáját, hogyan lehet tovább küldeni az adatbázisba? Ebben a program.php-ben kell megadni az adatbázis útvonalát?
4

hát

DsA · 2007. Feb. 2. (P), 16.30
Hát, ugyan nemértem, hogy mit is akarsz pontosan,
mert ösze vissza beszéltek itt mindenről...
De adatbázisba (mysql-be) így kell be írni az adatokat:

<?php
$kapcsolat = mysql_connect("valami.host.sql", "felhasználónév", "jelszó");
if (!$kapcsolat) {
   die('Nem lehet csatlakozni ' . mysql_error()));
}
if(isset($_POST['nev']) && $_POST['nev'] != "") {
mysql_query("INSERT INTO `tabla_neve` (nev) VALUES ('{$_POST['nev']}')");
echo("Kész");
}
mysql_close();
?>
de ez egy nagyon alap program.. remélem segítettem
5

hibák

Hodicska Gergely · 2007. Feb. 2. (P), 17.05
$kapcsolat = mysql_connect("valami.host.sql", "felhasználónév", "jelszó");
if (!$kapcsolat) {
   die('Nem lehet csatlakozni ' . mysql_error()));
}
Nem túl szerencsés a die-t használni hibakezelésre, mert ezzel kizárod, hogy a késöbbiek során egy saját hibakezelőt tudj használni, helyette célszerű a trigger_error alkalmazása.
isset($_POST['nev']) && $_POST['nev'] != ""
Helyette egyszerűbb a !empty($_POST['nev']).
"INSERT INTO `tabla_neve` (nev) VALUES ('{$_POST['nev']}')"
Az ilyen stílusú query összeállítás komoly biztonsági rést jelenthet: sql injection. Használd a mysql_real_escape_string függvényt.


Üdv,
Felhő
6

rendben

DsA · 2007. Feb. 6. (K), 20.45
köszönöm az utbaigazítást!
egyébként nem így szoktam csinálni, nekem hawerom írt egy progit objektumközpontuan.. mysql
csatlakozás meg "minden" mysql lekérdezés benne van szerintem elég biztonságos én azt használom :)
DsA