22786
Html-, css- és php-help
-
#1292 Má megint 1 hiba... Ez tegnap ment és megpróbáltam kijavítani, de csak elkavartam! A kód a következő:
<HTML><P align=center> </P>
<P align=center> </P>
<P align=center> </P>
<P align=center><php?<tr><td> <br><br><br><br><br><TITLE>Trabinevelde</TITLE>
</HEAD>
<BODY lang=HU background="trabi3.png" ></BODY>
<center><?php
;
session_start(); ?>
<html><body>
<?php
if (isset($kilep))
{
session_unset();
session_destroy();
}
if (isset($_SESSION["nev"]))
{
print "Sikeres bejelentkezés!<br>Üdvözöllek: <b>$nev</b>";
print "<br><a href='" .$PHP_SELF ."?kilep='''>kilépek!</a>";
}
else
{
if ( isset($_POST["neved"] ) )
{
include("config.php");
$nev = $_POST["neved"];
$pass = $_POST["passod"];
$parancs = mysql_query("SELECT nev, jelszo from nickek where nev = '$nev' and jelszo = '$pass'");
$eredm = mysql_num_rows($parancs);
if ($eredm==1)
{
session_register( "nev" );
session_register( "pass" );
}
}
else
{
print "<table><form action=".$PHP_SELF." method=post>
<tr><td>Login név:</td></tr><tr><td><input type=text name='neved' size=17></td></tr>
<tr><td>Jelszó:</td></tr><tr><td><input type=password name='passod' size=17></td></tr>
<tr><td><input type=submit value=Belép></td></tr></table><br><center><small><a href=regisztracio.php>Regisztráció</a></center></small>";
}
if (isset($_POST["neved"]) && $eredm==0)
{
print "Rossz felhasználónév, vagy jelszó!<br>";
print "<table><form action=".$PHP_SELF." method=post>
<tr><td>Login név:</td></tr><tr><td><input type=text name='neved' size=17></td></tr>
<tr><td>Jelszó:</td></tr><tr><td><input type=password name='passod' size=17></td></tr>
<tr><td><input type=submit value=Belép></td></tr></table><br><center><small><a href=regisztracio.php>Regisztráció</a></center></small>";
}
elseif (isset($_POST["neved"]) && $eredm==1)
{
print "Sikeres bejelentkezés!<br>Kérlek <a href=" .$PHP_SELF .">frissíts</a>!";
}
}
?>
<P align=center> </P>
<P align=center> </P>
<P align=center> </P>
<P align=center> </P>
<P align=center> </P>
<P align=center> </P>
</BODY></HTML> -
Anotino #1291 Latom nyomjatok az SQL-t. Osszeutottem egy kis sql-kezelo osztalyt meg regebben. Hatha valaki hasznat veszi, sok progit irtam mar vele, szerintem elegge leegyszerusiti a kodot.
class Database
{
var $link;
var $result;
var $line;
var $numrows;
var $end;
var $counter;
function Database($login, $pass, $database)
{
$this->link=mysql_connect('localhost', $login, $pass)
or die('Could not connect: ' . mysql_error());
mysql_select_db($database, $this->link) or die('Could not select database');
}
function query($q)
{
$this->result = mysql_query($q, $this->link) or die('Query failed: ' . mysql_error());
$this->numrows = mysql_num_rows($this->result);
$this->counter=$this->numrows;
if( $this->numrows > 0 )
$this->end=false;
else
$this->end=true;
}
function insert($q)
{
$this->result = mysql_query($q) or die('Query failed: ' . mysql_error());
}
function next()
{
$this->counter=$this->counter-1;
$this->line = mysql_fetch_array($this->result, MYSQL_NUM);
if($this->counter<=0)
$this->end=true;
return $this->line;
}
function getRows()
{
return $this->numrows;
}
function notEnd()
{
if($this->end)
return false;
else
return true;
}
function getLastId()
{
return mysql_insert_id();
}
function closeConnection()
{
mysql_close($this->link);
}
};
function connectYourDatabase()
{
$con=new Database('loginnev', 'password', 'adatbazis');
return $con;
}
A hasznalat kb igy nez ki:
//$con valtozonk lesz a kapcsolatobjektum
$con=connectYourDatabase();
//valami sql utasitast vegrehajtunk
$con->query('select * from tabla');
//feldolgozzuk az eredmenyt: vegigmegyunk a sorokon
while($con->notEnd())
{
//line valtozoba kerulnek a sorok
$line=$con->next();
//csinalunk vmi tetszolegeset az eredmenyekkel
blabla[]=$line[0].$line[1];
}
Lehet tobb kapcsolatobjektumot letrehozni, egyszerre tobb adatbazishoz csatlakozni ugy hogy nem szemeteljuk tele 500 valtozoval meg sql kezelofuggvennyel a kodunkat, stb.
(A dolog szepseghibaja, hogy a php mysql_num_rows fuggvenye lehal, ha az eredmenynek nincsenek sora, tehat delete, update, insert sql parancsok meghivasara nem a query(), hanem az insert() fuggveny hasznalatos.) -
#1290 Ez hasznos volt, vettem hozzá egy sört is köce. -
#1289 No meg sok egyéb trükk is létezik: SQL injection, Cross Site Scripting (XSS), Cross-Site Request Forgeries (CSRF)...
További információkat itt olvashattok. További vizsgálódásra ajánlanám ezt a cikket. -
#1288 jég persze ne felejtsd el, hogy a felhasználók innentől kezdve túrni fogják amit csak lehet, mert a felhasználók ilyen kis gonoszok,)
ilyen pl a html tagek használata a nevek helyett
erre van a:
$nick=htmlspecialchars($_POST["nick"]);
vagy hogy milyen hosszu lehet micsoda
a php.net en végignézheted ezeket
és még számtalan dolog amit én sem tudok de majd kiderül ha szétszedik az én dolgaimat is,)
-
#1287 na amennyit én értek a flashez ebből nem sülne ki jó :)))) -
#1286 Megy! Működik! Rendesen megy az egész! Innen már könnyű a dolgom! Lehet, hogy még néha majd írok segítségért! Köszi mindenkinek aki segített! Nagyon rendesek vagytok! Most nagyon ÖRÜLÖk!! -
#1285 Köszi!! -
#1284 Itt javíts még rajta:
$ellenoriz = mysql_query("SELECT nev FROM nickek WHERE nev = '".$nick."';");
Mivel $name változó nincs. -
#1283 Na! Még kéne 1 kis segítség! Most már beenged! Nincs hibaüzi, de 1 felhasználónevet többször is enged regelni! Ezt hogyakadályozhatnám meg? -
#1282 Na! Még kéne 1 kis segítség! Most már beenged! Nincs hibaüzi, de 1 felhasználónevet többször is enged regelni! Ezt hogyakadályozhatnám meg? -
#1281 Megy a beléptetés!! Nagyon köszönöm!! -
#1280 MŰKÖDIK!!! -
#1279 Köszi az egyre több javítást! :D -
#1278 Esetleg csinálj Flash-es lejátszót, ami betölti a rádió stream-jét (de nem játssza le, csak play gomb lenyomásakor), a Flasht ráadásul többen is támogatják (Linux alatt is!). -
#1277 Itt egy újabb javított kódrészlet (a felesleges print függvények kiküszöbölése, HTML attribútum-érték párosok helyesírása, elküldött ürlapmezők jobb kezelése):
$adatbazis = mysql_select_db ( "trabi-nevelde") or die("Nem tudom kiválasztani az adatbázist: ".mysql_error());
?>
<form method="post" action="<?php print("$PHP_SELF"); ?>"><table><tr><td>Név:</td><td><input type="text" name="nick"></td>
<tr><td>Jelszó:</td><td><input type="password" name="pass"></td></tr>
<tr><td>Jelszó mégegyszer:</td><td><input type="password" name="pass2"></td></tr>
<tr><td>E-mail cím:</td><td><input type="text" name="mail"><br></td></tr>
<tr><td><br></td><td><input type="submit" value="Regisztrál"></td></tr></table></form>
<?php
$nick=$_POST["nick"];
$pass=$_POST["pass"];
$pass2=$_POST["pass2"];
$mail=$_POST["mail"];
include("config.php"); -
#1276 tévedsz nem akarom hogy egyből elinduljon mediaplayerbe is ugy raktam be hogy csak akkor indul el ha ráklikmelenk hogy play aki akarja halgatni az oldalon a rádiót az hallgatja aki nem nem üzifalra irogatás vagy chatbe irogatás közben http://gigatorrents.org -
#1275 A nagyja a többinek megvan! 1 neveldét szeretnék! Én ezt a részét érzem a legbonyolultabbnak! A többi az nemannyira nehéz! Én úgygondolom! -
#1274 Igen! Beléptető rendszert szeretnék! Most ez a kód annyira rossz? Használhatatlan? -
#1273 A userek olyanok mint a gyerekek.
Nem tudják mi a jó nekik,)
Már látom ahogy imádják az oldalat, a 3 szoros betöltési idő mellett mikozben a háttérben meg megakadva egy mono minőségü zene dünnyög. -
#1272 hát van ahol van fájl de netrádióról van szó! tudom hogy nagy kérdés az hogy minek zene egy oldalra de ez már csak egy ilyen oldal és sok user érdeklődött iránta! -
#1271 Talán jobban járnál egy tartalomkezelő rendszerrel (CMS - Content Managment System). Nem kéne annyira PHP-hez érteni, szóval amatőr weboldalak létesítéséhez alkalmas. Ilyen rendszerek például a Joomla, a Drupal, az e107, a PHP-Nuke és a Xaraya. -
#1270 Kérni adatokat, azokat leellenőrizni, majd beirni egy adatabázisba
nem nehéz dolog , de azért engem érdekelne mit is szeretnél ezekkel később csinálni, nehogy év végéig tárgyaljuk a weboldalat amit készitesz, egy
Counter Strike klánnak,) -
#1269 Elsősorban az sem derül ki a kódból, hogy mit is szeretnél csinálni.
Lehet, hogy a félnyolc teszi.
Azt szeretnéd elérni, hogy ha valaki odatéved és beirja az adatait a mezőkbe, és lenyomja a gombot, akkor leelenőrzöd az adatokat, és felveszed ezeket az adatbázisodba?
És bárki regisztrálhat?
Ezek után tudod, hogy akarod továbbhasznositani ezeket az adatokat?
Beléptetőrendszert szeretnél egy oldalhoz?
Ha bárki felveheti magát a listába, akkor van értelme egy beléptetőnek? ugyértem akkor én is beléphetek regi után.
Ha pedig bonyolultabb dolgokra szeretnéd használni, akkor meg fogod majd tudni irni annak a kódját?
Ezeket gondold át mindezek előtt, hátha nincs értelme egy ilyen épitkezésbe belekezdeni. -
#1268 Megváltoztattam a jelszót! -
#1267 Tehát nagyon rossz ez a php kód? És töltsek le 1 beléptetőt? De honnan? -
#1266 Vagy esetleg Javascript-tel (vagy PHP-vel is a getenv("HTTP_USER_AGENT") segítségével?) kitudakolod a böngésző típusát. Ha IE, akkor az ActiveX-es megoldás, ha nem akkor más. -
#1265 Igen ám, csak a Flash lejátszót is bele kell illeszteni a honlapba. Tehát az Activex-es <object> kilőve (classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ). Marad az ActiveX-nélküli <object> (type="application/x-shockwave-flash"), vagy a nem valid <embed>.
Épp ilyesmirőll szól ez a cikk. -
#1264 Te ha van file és le akarod játszani, akkor tegyél be pl egy flash lejátszót, olyan mint ez :
http://www.ericzhang.com/mp3.php
ha akarod macerálhatod a felületet, de számtalan ilyen lejátszó van, és a legtöbb embernél van flash playa, a linuxosoknál ha nincs, akkor már nemtudom mit lehet tenni. -
#1263 de nem mov-ot akarok lejátszani benne vagy van valami más megoldás? rádiót akarok betenni xxx.pls xxx.mp3 file van -
#1262 MAX nem igazán értem a kérdést.
Szeretnél quick time moviet beletenni a lapodba?
igy? :
<embed src="akármi.mov" width="x+16pixel" height="y"></embed>
a 16 a csiknak kell
ha ezt beledugod lejátsza a quicktime plugin nekik. -
#1261 #1251 valakeeeee? ;)
-
#1260 "ezt hozzá akartam tenni, hogy a jelszavad betetted ide akkor nagyon rossz helyzetbe kerültél most,)"
Pláne, hogy tényleg a jelszavát rakta be! -
#1259 Úgy van... -
#1258 ezt hozzá akartam tenni, hogy a jelszavad betetted ide akkor nagyon rossz helyzetbe kerültél most,)
nyomás reggelni újat,) -
#1257 Megmondom őszintén, ez a kód ezer sebből vérzik.
Elsősörban, nincs meghatározva, hogy ez a kód mikor fusson le.
Tehát, hogy a Submit gomb lenyomása után.
Igy tehát a $_POST változók nem léteznek, és igy a mysql_query nem tudja, hogy a nev = '$nev' az mi is, és igy nem ad a kérelem semilyen adatot.
Ezt persze nem tudja megszámolni, és ezért vannak a hibaüzenetek.
Ezen túl nem is merek menni mert rengeteg logikai bökkenő van benne, ez igy nem fog menni.
Ajánlom neked, hogy tölts le egy ingyenes scriptet az ilyen tipusu dolgokhoz.
A rengeteg else is helytelen.
Sajnos nincs túl sok időm erre, de ez sehol sem tűnik jónak.
-
#1256 Hibajavítások:
* $ellenoriz = mysql_query("SELECT nev FROM nickek WHERE nev = '".$nev."';");
* $ellenoriz2 = mysql_query("SELECT mail FROM nickek WHERE mail = '".$mail."';");
* $adatbazis = mysql_select_db ( "trabi-nevelde") or die("Nem tudom kiválasztani az adatbázist: ".mysql_error());
* A $parancs01 = mysql_query("create table nickek(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nev varchar(20), jelszo varchar(50), mail varchar(40))"); sor nem mindig kell (csak egyszer kell létrehozni a táblát).
* $parancs02 = mysql_query("INSERT IGNORE INTO nickek (nev, jelszo, mail) VALUES ('".$nick."', '".$pass."', '".$mail."');");
* Ugye a lee222 nem a valódi jelszavad? -
#1255 Köszi! Most ez a hibaüzi megszűnt! De van helyette másik! :D Ha tudnál létszi segíts! Csak 12 éves vagyok! Most a php kód így néz ki:
<?php
$conn=mysql_connect("SQL1.ULTRAWEB.HU", "trabi-nevelde", "lee222" ) or die (mysql_error());
mysql_select_db("trabi-nevelde", $conn) ;
print "<table><tr><form method=post action='$php_self'>";
print "<td>Név:</td><td><input type=text name='nick'></td>";
print "<tr><td>Jelszó:</td><td><input type=password name='pass'></td></tr>";
print "<tr><td>Jelszó mégegyszer:</td><td><input type=password name='pass2'></td></tr>";
print "<td>E-mail cím:</td><td><input type=text name='mail'><br></td></tr>";
print "<td><br></td><td><input type=submit value=regisztrál></form></td></tr>";
include("config.php");
$parancs01 = mysql_query("create table nickek(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nev varchar(20), jelszo varchar(50), mail varchar(40))");
$ellenoriz = mysql_query("select nev from nickek where nev = '$nev'" ,$conn);
$ellenoriz2 = mysql_query("select mail from nickek where mail = '$mail'" ,$conn);
$szam = mysql_num_rows($ellenoriz);
$szam2 = mysql_num_rows($ellenoriz2);
if ($nick == "" && $pass == "" && $pass2 == "" && $mail == "" )
{
}
else
{
if ($pass != "" && $pass2 != "" && $pass != $pass2 )
{
print "<font color=red><b>Hiba:</b> Nem egyezik meg a 2 jelszó!</font>";
}
else
{
if ($szam == 0 )
{
if ($szam2 == 0 )
{
if ( $nick != "" )
{
if ( $pass != "" )
{
if ( $mail != "" )
{
$parancs02 = mysql_query("insert into nickek (nev, jelszo, mail) values ('$nick', '$pass', '$mail')");
print "<font color=green><b>Sikeres Regisztráció!</b> Adataidat sikeresen felvettük az adatbázisba</font>";
}
else
{
print "<font color=red><b>Hiba:</b> Nem adtál meg e-mail címet</font>";
}
}
else
{
print "<font color=red><b>Hiba:</b> Nem adtál meg jelszót</font>";
}
}
else
{
print "<font color=red><b>Hiba:</b> Nem adtál meg nevet</font>";
}
}
else
{
print "<font color=red><b>Hiba:</b> Erről az E-mail címről már regisztáltak!</font>";
}
}
else
{
print "<font color=red><b>Hiba:</b> Ez már egy regisztrált felhasználónév</font>";
}
}
}
?>
A hibaüzik:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/ultraweb/l/le/letland/regisztracio.php on line 14
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/ultraweb/l/le/letland/regisztracio.php on line 15
Létrszi segíts! Előre is köszi!
-
#1254 hogy a $nev honnét fog oda kerülni azt még mindig nem látom de a következő hibákat majd az előző ellenőrzése után -
#1253 mysql_query("select nev FROM nickek WHERE nev = '$nev'", $conn);
a $conn a connection identifier amit felépitettél mindenek előtt
tehát csatlakozás az adatbázishoz,enélkül nem tudja merre honnét.
pl. mindenek elé
$conn=mysql_connect("localhost", "nev", "jelszo" ) or die (mysql_error());
mysql_select_db("database nev", $conn) ;
ezt rakd be egy connect.php be és a minden script elé csak csapd be
hogy:
include "connect.php";
és már használhaod is a $conn változót