Kezdőoldal » Számítástechnika » Weblapkészítés » Hol vana hiba ebben a kódban?

Hol vana hiba ebben a kódban?

Figyelt kérdés

<?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ó.


2022. nov. 6. 16:36
1 2
 1/11 A kérdező kommentje:

Ezt írja hibának


Warning: Cannot modify header information - headers already sent by

2022. nov. 6. 16:41
 2/11 anonim ***** válasza:
68%
A headernek a kód elején kell lenni.
2022. nov. 6. 17:11
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
68%
Ha echo-ztál már, akkor headert nem tudsz hívni, mert elkezdte írni az output buffert, ahol a headerrel kell kezdeni.
2022. nov. 6. 17:21
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:
68%

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

[link]

mert akkor akarsz HTTP válasz-fejlécet küldeni, amikor a webszerver már kiküldte azt.

2022. nov. 6. 17:21
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:

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.

2022. nov. 6. 18:51
 6/11 anonim ***** válasza:

"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.

2022. nov. 6. 19:15
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:

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.

2022. nov. 6. 19:28
 8/11 anonim ***** válasza:

"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:

[link]

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.

2022. nov. 6. 19:51
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:

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.

2022. nov. 6. 20:10
 10/11 anonim válasza:
Engedd el inkább.
2022. nov. 6. 21:00
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!