Hol vana hiba ebben a kódban?
<?php
include("adatbazis.php");
$query = mysql_query("SELECT * FROM reg");
$adat = mysql_fetch_assoc($query);
$nev = $_POST["nev"];
$jelszo1 = $_POST["jelszo1"];
$jelszo2 = $_POST["jelszo2"];
$email = $_POST["email"];
$szetszed = explode("@", $email);
$valos_email = $szetszed[1];
$query1 = mysql_query("SELECT * FROM reg WHERE nev='$nev'");
$adat1 = mysql_fetch_assoc($query1);
$query2 = mysql_query("SELECT * FROM reg WHERE email='$email'");
$adat2 = mysql_fetch_assoc($query2);
$letezik_email = $adat2["email"];
$letezik_nev = $adat1["nev"];
if($nev == ""){
echo "A név nem lehet üres";
}else{
if($jelszo1 == ""){
echo "A jelszó nem lehet üres";
}else{
if($jelszo2 == ""){
echo "A jelszó nem lehet üres";
}else{
if($email == ""){
echo "Az email nem lehet üres";
}else{
if($jelszo1 !== $jelszo2){
echo "Nem azonos a két jelszó";
}else{
if($valos_email == ""){
echo "Ez egy érvénytelen email cím";
}else{
if($letezik_nev == ""){
if($letezik_email == ""){
$result = mysql_query("INSERT INTO `u568850222_oldal`.`reg` (
`nev` ,
`jelszo` ,
`email`
)
VALUES (
'$nev', '$jelszo1', '$email'
)",$db_connect);
header('Location: index.php');
}else{
echo "Ez az email cím már használatban van";
}
}else{
echo "Ez a felhasználónév már foglalt";
}
}
}
}
}
}
}
Egyszerű login rendszer, az 51 sor a header.php re hivatkozik ugye, ahol a hiba van, de nem értem mért nem jó.
Ezt írja hibának
Warning: Cannot modify header information - headers already sent by
0. Máskor használj kódmegosztó szolgáltatást - mint például a pastebin.com - megtartja az indentálásokat, kódkiemelést alkalmaz, így olvashatóbb a kód a segítséget nyújtók számára.
1. A mysql_*-függvények már egy jó ideje ellenjavalltak (a PHP 7.0-ból már ki is vették: [link] ). Tessék a mysqli-t ( [link] ) vagy PDO-t ( [link] ) használni.
2. A felhasználótól érkező adatokat ellenőrzés nélkül igen veszélyes (SQL-injektálásos támadásnak teszed ki magad).
3. "Warning: Cannot modify header information - headers already sent by"
Ez a hibaüzenet azért hivatkozik az 51. sorban levő header() függvényre
mert akkor akarsz HTTP válasz-fejlécet küldeni, amikor a webszerver már kiküldte azt.
Sziasztok, köszönöm nektek.
Nem az én kódom. Hanem régebbi ehlyről szedtem le, és nem működik.
Hová tegyem ezt a header dolgot? Nem sokat tudok a php-ről, annyit, hogy vannak változók meg hasonlók.
"Nem az én kódom. Hanem régebbi ehlyről szedtem le, és nem működik."
Na akkor azt felejtsd el. Elavult kód, modern tárhelyeken ez nem fog működni.
"Hová tegyem ezt a header dolgot?"
A gondot az okozhatja, hogy valamilyen kiíratás történik a fejléc küldésének kísérlete előtt. Ki kéne deríteni, hogy történik-e (akár egy másik figyelmeztetés is okozhatja) és hogy hol.
"Nem sokat tudok a php-ről, annyit, hogy vannak változók meg hasonlók."
Akkor tessék megtanulni. Ez nem kezdőszintű dolog.
Jah értem. Akkor kicsit tanulgatok még, mert ez új, csak kipróbálni akartam, hogy megy e, ha ifekkel meg bejelentkeztetéssel csinálok egy regisztrációhoz kötött oldalt. Természetesen ott a tartalmakat sme látná mindenki, de ez ilyen teszt lett volna.
Azt sem tudom a header mire való, és mit csinál.
De ha elavult a kód, akkor tudtok ajánlani olyant, ami jól megy? Ilyen login rendszert, vagy valami helyet, ahol vannak kész modulok a php-hez? Könnyebb így tanulgatni.
"Azt sem tudom a header mire való, és mit csinál."
HTTP válasz-fejlécet küld a webböngészőnek. #4-es hozzászólásom 3. pontjában belinkeltem a hivatalos dokumentációt, ott leírják a működését.
"De ha elavult a kód, akkor tudtok ajánlani olyant, ami jól megy?"
Példának okáért egy modernebb kialakítású kód, egy nagyobb oktatóanyagokkal foglalkozó oldalról:
ez sem a legszebb, de gyorsan végigfutva működőképesnek tűnik.
De javaslom, hogy menj végig rajta fájlról fájlra, sorról sorra, és olvass utána - akár a már említett php.net oldalának, akár példának okáért a w3schools tananyagának ( [link] ) felhasználásával - hogy melyik sor mit csinál.
Kipróbáltam de szerintem az én webszeróm már régi hozzá.
Sok hiba van benne nálam.
Majd holnap átnézem megint más webszeróval.
Köszi a helpet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!