Hirdetés

2024. április 27., szombat

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#17001) PumpkinSeed válasza DS39 (#17000) üzenetére


PumpkinSeed
addikt

Megoldottam, de fogalmam sincs, hogy hogy. Próbálgattam, meg átírtam részeket, és működik, de hát nem is programozás lenne a programozás ha nem jött volna elő egy újabb hiba. :)

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#17002) tothjozsi96


tothjozsi96
addikt

Írok egy regisztrációt és prepared statement-el írom, de lenne egy problémám.
Tehát regisztrációkor ellenőrizni kell hogy létezik-e már ez a felhasználó név vagy email cím.
Na most sql-ben be van állítva az UNIQUE index, és így nem is megy be duplán azonos név vagy email.

De viszont, szeretném ezt jelezni az oldalon is, mert nem ír rá ki hbát a prepared statement.
Eddig így volt megoldva.

if(!$lekérdezéseredménye) {
if (mysql_errno() == 1062) {
die("létezik már ez a felhasználó vagy email");
}
}

Az lenne a kérdésem hogy ez kivitelezhető-e így, tehát tud-e ilyesmit a prepared statement.
Oké, külön lekérdezéssel megoldható, persze ..
De érdekel hogy van-e rá megoldás, a google-ben nem találtam erre érdemes megoldást, azért kérdezem! :))

(#17003) Flashback


Flashback
addikt

Megint belefutottam valami karakterkészlet problémába:

Á betűk helyett ilyet kapok: �

Kiszolgálókapcsolat illesztése utf8_mb4_general_ci

Meta fejléc: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

PHP-im UTF-8 kódolásúak (BOM nélkül)

Mit rontok el?

[ Szerkesztve ]

Bocs nincs hosszú ö, ü és néha az á is ä :)

(#17004) Sk8erPeter válasza tothjozsi96 (#17002) üzenetére


Sk8erPeter
nagyúr

Na ne. Ezek szerint amikor feltöltesz egy felhasználót, akkor UTÓLAG ellenőrzöd, hogy duplicate key hibára hivatkozik-e (mivel az az 1062-es), nem is ellenőrzöd még feltöltés ELŐTT, hogy van-e már olyan felhasználó? Még beszúrás előtt ellenőrizz minden szükséges adatot, ne a beszúrási kísérlet után...

Kb. így kéne kinéznie a folyamatnak: felhasználó elküldi az űrlapot » formvalidálás: egyáltalán jók a bevitt adatok, nem tartalmaznak nem elfogadott karaktert, ilyesmik? » van már ilyen felhasználó? » ha igen, hibaüzenetet mutatunk; ha nem, beszúrjuk, sikerre utaló üzenetet írunk ki.
Nem pedig úgy, hogy beszúrjuk, és az arra kapott esetleges hibaüzenetből derítjük ki, hogy volt már olyan felhasználó...

Amúgy mysqli vagy PDO?

http://php.net/manual/en/mysqli.errno.php
http://php.net/manual/en/pdo.errorcode.php
http://php.net/manual/en/pdostatement.errorcode.php
PDO-t viszont egyszerűbb/szebb úgy beállítani, hogy dobjon exceptiont, ha probléma volt a lekérdezéssel.

Sk8erPeter

(#17005) Sk8erPeter válasza Flashback (#17003) üzenetére


Sk8erPeter
nagyúr

Hát ennyiből nehéz megállapítani, de próbálj beszúrni a legelejére egy
header('Content-Type: text/html; charset=utf-8');
sort.

Sk8erPeter

(#17006) tothjozsi96 válasza Sk8erPeter (#17004) üzenetére


tothjozsi96
addikt

Igen, tényleg logikusabb, csak érdekelt.
És mysqli-t használok!

Most itt akadtam el ..
$stmt = $mysqli->prepare('SELECT * FROM users WHERE username = ? OR email = ?');
$stmt->bind_param('ss', $username, $email);
$stmt->execute();

Az $username és az $email már előtte megvan adva.
De viszont, nem tudom hogy hogy ellenőriztessem mert úgy nem működik hogy

if($stmt["username"] == $username)
Azt én is tudom hogy így hülyeség, de nem tudom hogy hogyan lesz ez így jó .. :(((

tehát most itt tartok ..

[ Szerkesztve ]

(#17007) Sk8erPeter válasza tothjozsi96 (#17006) üzenetére


Sk8erPeter
nagyúr

COUNT-tal könnyen tudod ellenőrizni, hány rekord van, ami a feltételeknek megfelel:

$stmt = $mysqli->prepare('SELECT COUNT(*) FROM users WHERE username = ? OR email = ?');
$stmt->bind_param('ss', $username, $email);
$stmt->execute();
// a $numberOfUsers változó fogja tárolni a prepared statement eredményét a fetch után
$stmt->bind_result($numberOfUsers);
$stmt->fetch();

if($numberOfUsers > 0) {
// para, van már ilyen felhasználó, tehát nem regisztrálhat ezekkel az adatokkal
// kivételdobás, stb.
}

// egyébként mehet tovább...

Ja, még annyi, hogy a die() létezését inkább felejtsd el, dobj kivételt, kezeld is le valahol tisztességesen, stb.

Sk8erPeter

(#17008) fordfairlane válasza tothjozsi96 (#17006) üzenetére


fordfairlane
veterán

Skacok, tegnap is volt itt egy olyan mélységű probléma, hogy egy if az else ágra futott, pedig nem arra kellett volna futnia, nahát. Nem ismeritek az alapvető debuggolási módszereket?

x gon' give it to ya

(#17009) tothjozsi96 válasza Sk8erPeter (#17007) üzenetére


tothjozsi96
addikt

Köszönöm a segítséget!
Most már nem dob hibát, de tök üres az adatbázis és kiírja hogy létezik.
Pedig elvileg minden rendben van, stimmel minden ..

És a numberofusers értéke most 1, de nem értem hogy miért.
Üres az adatbázis ..

(#17010) Flashback válasza Sk8erPeter (#17005) üzenetére


Flashback
addikt

Elvileg átadom a headreben. Hol keressem a hibát? Itt a forrás:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hangmánia Raktár</title>
<link type="text/css" rel="stylesheet" href="css/style.css" media="screen" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/easing.js"></script>
<script type="text/javascript" src="js/jquery-tab-down-v0.1.js"></script>
<script type="text/javascript" src="js/my.js"></script>
</head>
<body>
<div id="container">
<p>
</p>
<?PHP
if (!isset($_POST['post-variable-name'])) {$menu_page='hello.html';}
else
{$menu_page=$_POST['post-variable-name'];}

include 'connect.php';
include 'menu.php';
include $menu_page;
?>
</div>
</body>
</html>

[ Szerkesztve ]

Bocs nincs hosszú ö, ü és néha az á is ä :)

(#17011) Sk8erPeter válasza tothjozsi96 (#17009) üzenetére


Sk8erPeter
nagyúr

Pedig akkor egészen biztos, hogy valami nem stimmel. Mutass komplett kódot, amivel csinálod.

(#17010) Flashback:
Első körben próbáld meg azt, hogy még a <!DOCTYPE elé rakd be az említett sort (igen, ott van a meta tagben, de nem biztos, hogy elég):
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<!DOCTYPE ...

(nyilván az alsó sor nélkül, csak hogy egyértelmű legyen)
Egyébként mivel gyaníthatóan most alakítod ki az oldalt, lehetőleg ne XHTML 1.0 Strict legyen, hanem HTML5-ös, van jópár igen hasznos feature, amit így kihasználhatsz (az mellékes, hogy a böngésző sokszor engedékeny, és más doctype ellenére is esetleg használhatsz HTML5-től létező dolgokat, de legyen szabályos). Az meg csak annyiból áll, hogy a szokásos tagek elé a
<!DOCTYPE html>
deklarációt rakod, és máris HTML5-ös a doksid. (Az xmlns és xml:lang attribútum ennek megfelelően itt már nem szükséges, csak XHTML-nél.)

[ Szerkesztve ]

Sk8erPeter

(#17012) fordfairlane válasza Flashback (#17010) üzenetére


fordfairlane
veterán

Első körben azt javaslom, hogy ellenőrizd a böngészőt, hogy a megjelenítés UTF8 vagy sem. Firefoxban jobb gomb -> oldal adatainak megjelenítése -> kódolás.

x gon' give it to ya

(#17013) tothjozsi96 válasza Sk8erPeter (#17011) üzenetére


tothjozsi96
addikt

Közben rájöttem hogy mi volt a baj.
Kimaradt ez:
$stmt->close();

Azért nem adott hozzá új felhasználót meg semmit sem.
Most már minden rendben van, köszönöm!

(#17014) Sk8erPeter válasza tothjozsi96 (#17013) üzenetére


Sk8erPeter
nagyúr

Ennek egészen biztos, hogy SEMMI köze nincs ahhoz, hogy miért kaptál eredményt mégis úgy, hogy állításod szerint üres volt az egész adatbázis (?? akkor milyen táblát kérdeztél volna le? Ha pedig a táblára gondoltál, hogy üres, akkor miért adott volna vissza találatot?!). Ezzel erőforrásokat szabadítasz fel, de a problémáid oka tuti nem ez volt, közben valami mást is babrálhattál.

Sk8erPeter

(#17015) tothjozsi96 válasza Sk8erPeter (#17014) üzenetére


tothjozsi96
addikt

Ja, utólag rájöttem hogy egy teljesen másik adatbázist állítgattam mert 2x is megvolt ugyan az és nem vettem észre, és utána vettem észre hogy az üres adatbázisban kutakodtam, de most felraktam a Wamp-ot mert azt hittem hogy nem én vagyok a hülye :U és kiderült hogy még is, ezért nem akartam még egyszer írni ..

De a close kellett a végére amúgy, mert nem futott le az insert, mert az is $stmt névvel volt megadva és ütköztek, de már minden oké, és köszönöm!

Tehát így néz ki a kész kód.

$username = !empty($_POST["username"]) ? $_POST["username"] : '';
$password = !empty($_POST["password"]) ? $_POST["password"] : '';
$passagain = !empty($_POST["passagain"]) ? $_POST["passagain"] : '';
$email = !empty($_POST["email"]) ? $_POST["email"] : '';

if(!$username OR !$password OR !$passagain OR !$email) {
errormsg("Hiba", "Hiányoznak az adatok!");
}

// ellenőrizzük hogy létezik-e már
$stmt = $mysqli->prepare('SELECT COUNT(*) FROM users WHERE username = ? OR email = ?');
$stmt->bind_param('ss', $username, $email);
$stmt->execute();
// a $numberOfUsers változó fogja tárolni a prepared statement eredményét a fetch után
$stmt->bind_result($numberOfUsers);
$stmt->fetch();
$stmt->close();

if($numberOfUsers > 0) {
errormsg("Hiba", "Létezik már ez a felhasználó név, vagy az email cím már foglalt!");
}

$passhash = password_hash($password, PASSWORD_DEFAULT);

if ($stmt = $mysqli->prepare("INSERT INTO users (username, passhash, email) values (?, ?, ?)")) {
$stmt->bind_param('sss', $username, $passhash, $email);
$stmt->execute();
$stmt->close();
}

[ Szerkesztve ]

(#17016) Sk8erPeter válasza tothjozsi96 (#17015) üzenetére


Sk8erPeter
nagyúr

Sejtettem, hogy ilyesmi lesz... :DDD

Sk8erPeter

(#17017) #39417856


#39417856
törölt tag

Sziasztok!

Írtam egy fájl és mappa listázó kódot php-ben, ami így néz ki:

<table id="content">
<tr><td> <ul>
<?php
$dirpath = ".";
$dh = opendir($dirpath);
while (false !== ($file = readdir($dh))) {
if($file == "..") {
echo "<b>A ";
echo getcwd();
echo " mappában található fájlok: <br><br>";
echo "<a href=\"$file\">[...] </a><br>";
} else if($file != ".") {
echo "<li><a href=\"$file\">$file</a></li>";
}
}
closedir($dh);
?>
</ul></td></tr>
</table>

Tudom, hogy a kód puritán, ennyit tudtam kihozni belőle laikusként. Nekem igazából a célnak megfelel, egy "hibája" van amit nem tudom hogy kell megoldani. A listázó script így magát is kilistázza. Azt hogyan tudom elérni, hogy önmaga (index.php) kivételével listázza a mappa fájlait? Esetleg még mivel kellene kiegészíteni, hogy méretet és azt is kiírja, hogy mappa vagy fájl-e az adott ojjektum?

[ Szerkesztve ]

(#17018) Peter Kiss válasza #39417856 (#17017) üzenetére


Peter Kiss
senior tag
LOGOUT blog

} else if($file != ".") {

helyett:

} else if($file != "." && $file != __FILE__) {

(#17019) #39417856 válasza Peter Kiss (#17018) üzenetére


#39417856
törölt tag

átírtam azt a részt, de nem vettem észre különbséget az előzőhöz képest. ez mit javítana a kódon? elvileg ez miatt tűnne el az index.php? Ha csak kód szépítésre írtad akkor pedig köszi :)

(#17020) Peter Kiss válasza #39417856 (#17019) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Valóban, mert a __FILE__ konstansban a full path szerepel. Szedd ebből ki csak a fájlnevet kiterjesztéssel,és úgy működni fog.

(#17021) #39417856 válasza Peter Kiss (#17020) üzenetére


#39417856
törölt tag

Köszönöm szépen a segítséget. Így már jó :)

(#17022) tothjozsi96


tothjozsi96
addikt

Van arra megoldás hogy az oldal ne a szerver gép beállított idejét írja ki?
Van egy üzenőfal és minden egyes üzenetnél elvan tárolva hogy óra:perc-kor lett beküldve.
De a szerver gépen van pár perces csuszás. De van hogy ez nő, és több lesz. Tehát az a megoldás nem jó hogy hozzá adok 300 másodpercet.
Létezik valami olyan megoldás ami nemzetközi pontos időt írja ki, vagy hasonló pontos időt megad és nem a szerver gépét?

(#17023) supercow válasza tothjozsi96 (#17022) üzenetére


supercow
őstag

külső time szerverről szedj időt, azt tárold el a helyi timstamp helyett pl ilyesmivel. A rendszergazda meg rakjon be cron-ba time frissítést..

In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.

(#17024) gyga


gyga
senior tag

Sziasztok.

Zyxel nason fut egy phpmyadmin rendszer. Az lenne a problémám hogy nem tudom a táblákat összekapcsolni mert nincs innodb Motor.
[link]
[link]
Van e valamilyen megoldás rá?

2.
Accesben megszoktam hogy ha beírtam új adatot akkor automatice kapott "id"-t. phpmyadmin-nál pedig csak utólag kap auto increment "id"-t. Így mivel 2 táblába egyszerre viszek fel adatot és ezek kapcsolatban vannak egymással akkor hiányolja a másik táblában levő kapcsolt adatot. Hogy lehet ezt kiküszöbölni. Elég hülyén fogalmaztam bocsesz. Nem vagyok nagy guruja, csak most próbálgatom a phpmyadmint.

[ Szerkesztve ]

A kisebbség is számíít, teszkó.

(#17025) Peter Kiss válasza gyga (#17024) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Frissíteni kellene a MySQL-t alatta, AUTO_INCREMENT ID kiszedésére pedig használd a LAST_INSERT_ID()-t.

Szorgalma feladatként keress másik felületet, mert a phpmyadmin egy rakás fosch.

(#17026) gyga válasza Peter Kiss (#17025) üzenetére


gyga
senior tag

Erre a nasra ez a gyárilag legfrissebb felület :( manuálisan meg nem találtam leírást a frissítésre.
Az a baj hogy ez egy NAS. Nem lehet csak úgy telepítgetni mindenfélét. :(((

A kisebbség is számíít, teszkó.

(#17027) Peter Kiss válasza gyga (#17026) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Van benne elvileg csomagkezelő meg minden, ami alapján csak megfelelő repo kel, ahonnan lehet telepíteni dolgokat. Pontos típusa a gépnek?

Felületileg meg még egyszerűbb a helyzet.

(#17028) gyga


gyga
senior tag

Zyxel NSA 310

A kisebbség is számíít, teszkó.

(#17029) PumpkinSeed


PumpkinSeed
addikt

Tudja valaki hol lehet megnézni az újításokat részletesen?

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#17030) gyga válasza Peter Kiss (#17027) üzenetére


gyga
senior tag

Fogalmam sincs hogyan lehetne erre vmi frissítést tenni

A kisebbség is számíít, teszkó.

(#17031) EmberXY


EmberXY
addikt

Sziasztok!
Nem tudom, jó helyen járok-e, de megpróbálkozok itt a kérdésemmel...

Meg lehet oldani valahogyan azt, hogy ezen az oldalon a megnyitáskor a toplistán belül a különböző kategóriákra az URL-ben tudjak hivatkozni, vagyis egyből egy adott kategóriát nyisson meg, ne kelljen kiválasztani? Azt szeretném elérni, hogy ha egy bizonyos kategóriát akarok megnézni (csak bizonyos oldalak helyezése, látogatottsága érdekel), akkor ne kelljen manuálisan kiválasztani, mondjuk pl hogy "internet", és ráklikkelni a Listáz gombra, hanem az URL alapján az oldal megnyitásakor már egyből az adott kategória legyen listázva. Tehát az érdekelne, hogy az URL-t hogyan kéne módosítani (gondolom valamiféle operátorokkal, ha egyáltalán lehet)?
Köszönöm előre is. :R

Up the Irons!

(#17032) moltam88 válasza EmberXY (#17031) üzenetére


moltam88
tag

Az URL-t így kiegészítve működik a szűrés: http://atw.hu/toplista?id=3.
(Ez egyébként nem törvényszerű, csak éppen szerencséd van, és úgy csinálták meg, hogy url paramétert is figyelik a szűrésnél, nem csak a form-ban elküldöttet).
Az egyenlőségjel után kell megadni a kategória azonosítóját, amit html-ből tudsz kinézni. A forráskódban (ctrl+u billenyűkombinációval meg tudod nyitni a böngészőben) a value="kategória azonosító" részből kapod az id értékét (pl. 1-es Állat-növény, 2-es általános, stb.):
<option value="1">Állat-növény</option>
<option value="2">Általános</option>
<option value="3" selected>Autó-motor</option>
<option value="4">Cég</option>
<option value="5">Család</option>
<option value="6">Divat</option>

[ Szerkesztve ]

(#17033) EmberXY válasza moltam88 (#17032) üzenetére


EmberXY
addikt

Pontosan erre gondoltam, köszönöm szépen. :C :R

Up the Irons!

(#17034) DrojDtroll


DrojDtroll
addikt

[link]

Ezt php-ban meg lehet valósítani?

(#17035) Peter Kiss válasza DrojDtroll (#17034) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Persze.

(#17036) DrojDtroll válasza Peter Kiss (#17035) üzenetére


DrojDtroll
addikt

Köszi, valami segítséget tudnál adni, hol induljak el?

teljesen kezdő vagyok

(#17037) Peter Kiss válasza DrojDtroll (#17036) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Talán ezzel kellene kezdeni: fgetcsv

(#17038) DrojDtroll válasza Peter Kiss (#17037) üzenetére


DrojDtroll
addikt

Köszi és magát a php-t mivel kezdjem?

(#17039) DNReNTi válasza DrojDtroll (#17038) üzenetére


DNReNTi
őstag

"a php-t mivel kezdjem?"
<?php

Bocs nem hagyhattam ki. :D

Szerk:
Komolyra: Teljesen a nulláról akarod ezt megoldani?

[ Szerkesztve ]

but without you, my life is incomplete, my days are absolutely gray

(#17040) Peter Kiss válasza DrojDtroll (#17038) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Szóval az életben nem programoztál még PHP-ban?

(#17041) DrojDtroll válasza DNReNTi (#17039) üzenetére


DrojDtroll
addikt

igen a php megtanulását mivel kezdjem, mert soha életemben nem foglalkoztam vele

(#17042) Peter Kiss válasza DrojDtroll (#17041) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Tippek:
A simple tutorial
PHP 101: PHP For the Absolute Beginner

Magyar tutorial oldalakat/könyveket elfelejtheted, ennyi biztos.

(#17043) Tele von Zsinór válasza PumpkinSeed (#17029) üzenetére


Tele von Zsinór
őstag

Kezdd például itt: https://wiki.php.net/rfc#php_70

Ez a lista folyamatosan bővülni fog a kiadásig, ami még bőven odébb van (lásd itt a php 7.0 timeline rfc-t).

(#17044) DrojDtroll válasza Peter Kiss (#17042) üzenetére


DrojDtroll
addikt

Köszönöm szépen mindkettőtöknek. :R :R :R

(#17045) martin66


martin66
senior tag

Sziasztok,

Egy kis segítséget kérnék.

Van egy contact formomom és azt szeretném, hogy, amikor rá mennek, hogy submit (email üzenet küldése), akkor egy URL címre (http://valami.hu/koszonjuk.html) irányítsa a felhasználót.

A form:
<form action="form.php" method="post" enctype="multipart/form-data">

<h1 class="title">Contact</h1>

<label></label>
<input name="name" required="required" placeholder="Your Name">

<label></label>
<input name="email" type="email" required="required" placeholder="Your Email">

<label></label>
<textarea name="message" cols="20" rows="5" required="required" placeholder="Message"></textarea>

<input id="cancel" name="cancel" value="Cancel" />

<input id="submit" name="submit" type="submit" value="Submit">

</form>

A PHP:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: YourWebsite.com';
$to = 'bmcsmartin77@gmail.com';
$subject = 'Email Inquiry';

$body = "From: $name\n E-Mail: $email\n Message:\n $message";
?>

<?php
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
//echo '<p>Thank you for your email!</p>';
} else {
echo '<p>Oops! An error occurred. Try sending your message again.</p>';
}
}
?>

KÖSZÖNÖM.

(#17046) Sk8erPeter válasza martin66 (#17045) üzenetére


Sk8erPeter
nagyúr

A form.php fájlodban ne legyen semmilyen output, és ott, ahol sikeresen megtörtént a levél elküldése (van is erre egy feltételed), irányítsd át a felhasználót a kívánt oldalra egy header kiküldésével:

header('Location: http://www.example.com/');

Sk8erPeter

(#17047) martin66 válasza Sk8erPeter (#17046) üzenetére


martin66
senior tag

A PHP-t így módosítottam:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: YourWebsite.com';
$to = 'bmcsmartin77@gmail.com';
$subject = 'Email Inquiry';

$body = "From: $name\n E-Mail: $email\n Message:\n $message";
?>

<?php
if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
header('Location: http://www.example.com/');
} else {
echo '<p>Oops! An error occurred. Try sending your message again.</p>';
}
}
?>

Sajnos ezt a hibát írja ki:
Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/www/domain.com/html/form.php:12) in /home/httpd/www/domain.com/html/form.php on line 15

(#17048) Sk8erPeter válasza martin66 (#17047) üzenetére


Sk8erPeter
nagyúr

Ezek szerint van output még a header-kiküldési kísérlet előtt, ez így nem fog működni (pontosan ezzel kezdtem), úgyhogy ne legyen. A feldolgozás legyen teljesen különálló fájlban, ne legyen egybeömlesztve azzal, ahol kiíratod az űrlapot.
Ez a kód egyébként még borzalmasan hiányos, sehol sem validálod az űrlapot (nem ellenőrzöd, hogy egyáltalán léteznek-e az általad elvárt kulcsok a $_POST tömbben, illetve a felhasználó által megadott adatok megfelelnek-e bármilyen elvárt formátumnak), az ELSŐ feladat mindig az legyen, hogy elkészíted a felhasználótól kapott adatok ellenőrzésére szolgáló kódrészletet. Soha ne bízz meg felhasználótól kapott adatokban.

[ Szerkesztve ]

Sk8erPeter

(#17049) martin66 válasza Sk8erPeter (#17048) üzenetére


martin66
senior tag

Értem.

Sajnos ez is egy letöltött ingyenes üzenetküldő. Esetleg te tudnál küldeni nekem egy nagyjábol jó fajta átirányítós üzenetküldő formot?
Nagyon sokat segítenél.

Köszönöm.

(#17050) Sk8erPeter válasza martin66 (#17049) üzenetére


Sk8erPeter
nagyúr

Hát sorry, de másokhoz hasonlóan éppen adódó szabadidőmben látogatok csak fel, hobbiból, nincs tengernyi időm, konkrét hiba javításában, konkrét kérdés megválaszolásában szívesen segítek, de elölről megírni neked egy ilyet melós. Persze reméljük, hogy lesz lelkes önkéntes, aki bevállalja (amikor először kezdtem segítgetni a topicban, akkor még én is lelkes voltam, aztán rájöttem, hogy nem érdemes, az ember a kisujját nyújtja, akkor az esetek többségében az egész karja kell, és mindez véget nem érő folyamat, aminek az eredménye az, hogy nekem rengeteg időm elment, a másik meg copy-paste-el, aztán köszönés nélkül távozik ;]).
Rengeteg témához kapcsolódó, de az általad írtnál sokkal szebb megoldás, tutorial létezik, ha pár percig guglizol, biztos lehetsz benne, hogy kész megoldásokat kapsz. Persze főleg angol anyagokban érdemes keresni, "form validation php", "form processing php", stb. kulcsszavak segítségével...

Sk8erPeter

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.