Jump to content
GSForum - Segélyvonal

PHP kérdésem van


Recommended Posts

Posted

Hiába választod ki a mappát, a gyökérbe másolja fel, vagy nem listázza megfelelõen a könyvtárakat?

Posted

Az isset-et egészítsed ki egy isnull viszgálattal és megjavul szerintem.

Posted

Elakadtam megint az adatbázis kezelésnél.

 

Van egy php-ban írt oldal, ami Oracle adatbázishoz kapcsolódik és onnan különbözõ dolgokat kérdez le. Van egy oldal, ahol be lehet jelentkezni, felhasználói név, jelszó, adatbázis, azt, hogy mit csináljon rádiógombokkal lehet kiválasztani ( melyik lekérdezést futtassa le switch case-el lekezelve). Eddig mûködik is a dolog, a bejelentkezõ ablaknál ugye form mûködik, ami továbbítja az adatokat POST metódussal a másik php-nak, ami kezeli.

 

A gond ott van, hogy szeretném megcsinálni, hogy miután belépett az adatbázisba és lefutott a lekérdezés, ami megjelent az oldalon ( táblázatos formában), legyen lehetõség anélkül másik lekérdezést futtatni benne, hogy ne kellejen ismét visszamenni a bejelentkezõ oldalra és újra bejelentkezni.

 

Úgy próbáltam meg, hogy a rádiógombokat kitettem az eredmény oldalra is egy form-ban amit ismét elküld az eredmény oldalra, de így nem mûködik, pontosabban igen csak üres lekérdezést kapok, mert a név-jelszó,adatbázis értékek eltûntek. Nincs erre valami megoldás?

 

Az adatokat változókban tároltam miután kiolvastam a POST-ból így:

$login = $_POST["login"];

$pass = $_POST["pass"];

 

Mégis az eredmény oldalon lévõ form futtatása után nem tud ezekkel bejelentkezni.

 

Posted

Erre való a session.

Posted

Kb. hogyan kéne csinálni, mert sessionkezeléshez egyáltalán nem értek.

 

A bejelentkezõ oldalon session_start()-al elindítom az még ok. A többi oldalon is el kell indítani?

 

Tegyem be a változóimat a a $_SESSION tömbbe?

Posted
Hiába választod ki a mappát, a gyökérbe másolja fel, vagy nem listázza megfelelõen a könyvtárakat?

Kilistázza, azzal nincs baj, de hiába választom ki, a gyökérbe másolja fel. :upsz:

Posted

@Adani:

látod, hogy megy ez!

Igen, minden oldalon kell session_start, és igen, tedd be a változóidat a _SESSION tömbbe.

 

@hungery79:

most látom, hogy a $ut-ból hiányzik egy '/' a könyvtárnév és a fájlnév közül. Így most feltölti a gyökérbe olyan néven, hogy könyvtárfileneve.jpg, holott Te azt szeretnéd, hogy gyökér/könyvtár/fileneve.jpg

Posted

@Arpsoft

 

Azokba is, amiket include-al hívok meg?

 

 

Mindjárt kipróbálom hogyan szuperál, köszi a segítséget, talán így már menni fog.

 

UI:

 

Nem működik. Minden php elejére tettem session_start()-ot, áttettem a változóimat is a $_SESSION-ba és mégse megy.

 

Mit ronthattam el?

Silent Psycho
Posted

Szerintem másold be ide a kódot... :ötlet:

Posted
Azokba is, amiket include-al hívok meg?

Nem. Csak azokba tedd bele, amik egy különálló weboldalt építenek fel. Az include-ok nem különálló weboldalak, hanem az éppen felépülő oldaladnak a részei.

 

Általában úgy szokták csinálni, hogy van egy olyan alap konfig file, ami minden fontosabb inicializálást elvégez, és ezt szokták elsőként behúzni require-rel minden oldal elején. Ebben kell elindítani a sessiont is.

 

Mondjuk van egy kukutyinozós weboldalam (kukutyin.php) meg egy zabhegyezős (zabhegyez.php), amik mindenféle egyéb include-okat hívnak meg. A lényeg, hogy mindkettő így kezdődik, hogy

 

<?php
require ("nagyon fontos, alap konfig fájl elérési újta");
...
...
...
?>

és utána meg mehet a móka attól függően, hogy most épp kukutyinozunk vagy zabhegyezünk.

Posted

Még mindig nem akar működni.

 

Így néz ki a dolog:

 

<?php

session_start();

include('connect.php');

 

echo '<form action="pdrg006.php" method="post">';

echo 'Felhasználó név: <input type="text" name="login" />';

echo 'Jelszó: <input type="password" name="pass"/>';

echo 'Adatbázis: <input type="text" name="adatb" />';

 

 

echo '<br>';

echo '<input type="radio" name="lekerdez"';

echo 'value="lock">Lockolt Táblák</input>';

echo '<br>';

echo '<input type="radio" name="lekerdez"';

echo 'value="tspace">Tábla terek</input>';

echo '<br>';

echo '<input type="radio" name="lekerdez"';

echo 'value="invalid">Invalid</input>';

echo '<br>';

echo '<input type="submit" />';

echo '</form>';

?>

 

Ez a bejelentkező oldal formmal.

 

Ez pedig a választós:

 

<?php

session_start();

 

include('connect.php');

 

echo '<br>';

echo '<form action="pdrg006.php" method="post">';

echo '<input type="radio" name="lekerdez"';

echo 'value="lock">Lockolt Táblák</input>';

echo '<br>';

echo '<input type="radio" name="lekerdez"';

echo 'value="tspace">Tábla terek</input>';

echo '<br>';

echo '<input type="radio" name="lekerdez"';

echo 'value="invalid">Invalid</input>';

echo '<br>';

echo '<input type="submit" />';

echo '</form>';

 

 

switch ($lekerdez) {

case 'lock':

include('pdrg001.php');

break;

case 'tspace':

include('pdrg004.php');

break;

case 'invalid':

include('pdrg007.php');

break;

}

 

A connect.php, ami az adatbázishoz kapcsolódást végzi el:

 

<?php

 

$login = $_POST["login"];

$pass = $_POST["pass"];

$adatb = $_POST["adatb"];

$lekerdez = $_POST["lekerdez"];

 

$_SESSION[login]=$login;

$_SESSION[pass]=$pass;

$_SESSION[adatb]=$adatb;

$_SESSION[lekerdez]=$lekerdez;

 

$conn = oci_connect($login,$pass,$adatb );

?>

 

A kommenteket és pár egyéb felesleges dolgot kivettem (pl. háttér beállítást).

 

Csak a bejelentkezőbe és a választósba tettem session_start()-ot.

Posted

Inkább így: $_SESSION["login"]=$login;

Posted

Most látom, alapvetõ hiba van.

A $_SESSION-be csak akkor szabad beleírni a bejelentkezõs form adatait, ha onnan jössz, különben, mivel nincs login nevû mezõd üres lesz és törli az elõzõleg tárolt adatokat.

 

Két megoldás van:

1. kettébontod a connect.php-t

2. a lekérdezõs form-ba hidden mezõkbe berakod a session-ben tárolt adatokat

Posted

Mûködik, kösz mindenkinek a segítséget, Arpsoft második megoldása mûködik.

Posted

Sziasztok!

Itt ez a kódrészlet és nem akar működni, parse error-t ír ki az else sorra. Ha nincs az else ág, akkor tökéletes. Sajna nincs ötletem, hogy mi lehet a gond.

 

    while ($egy_sor = mysql_fetch_array($eredmeny) )
        {
        print "<p>";
        print "<a href='http://".$egy_sor['www']."'>".$egy_sor['www']."</a><br />";
        print "<script type=\"text/javascript\" language=\"javascript\">
                name=('".$egy_sor['email1']."');
                at=('@');
                domain=('".$egy_sor['email2']."');
                dot=('.');
                ext=('".$egy_sor['email3']."');
                document.write('<a href=\"mailto:' + name + at + domain + dot + ext + '\">' + name + at + domain + dot + ext + '<\/a><br />');
                </script>";
        print "</p>";
        }
        else
        {
            print "nincs adat";
        }

Posted

A while-nak nem lehet else ága! Ez egy ciklus szervezõ utasítás és nem elágazás.

Posted

Köszi a megerõsítést!

 

Én is erre gondoltam, de neten utánanézve a dolognak sok helyen láttam ezt a megoldást. :S Már azt hittem én nem tudom jól.

 

Posted

Segítséget szeretnék kérni az apache+php telepítésével kapcsolatban.

Feltelepítettem az apache-ot, és természetesen piros volt :D a lámpa és ezt a hibaüzenetet kaptam:

 

IPB kép

 

Tudna nekem segíteni abban h mi lehet a hiba?

Érzésem szerint minden úgy csináltam ahogy le van írva, többször átnéztem.

Posted

Valami probléma van a php.ini 567. sorában.

Be tudnád ide vágni?

Posted (edited)

Csak estefelé, de megnéztem ini editorral, és úgy láttam nincs is annyi sor. :pislog:

De este megnézem.

 

Szal itt lenne:

 

566. ; Define the anonymous ftp password (your email address)

567. ;from="john@doe.com"

568.

569. ; Define the User-Agent string

Edited by vagyula1
Posted

Nálam kicsit más van a php.ini-ben ezen a területen:

 

565: 
566:; Default timeout for socket based streams (seconds)
567:   default_socket_timeout = 60
568:
569:; If your scripts have to deal wi

Ez, ha minden igaz, egy 5.2.8-as verzió. Viszont ez a a php.ini-nek az a része, amit nem kell piszkálni, ezért sem értem.

Posted

Nekem az 5.2.9.2 van fönt.

Este leszedem és kipróbálom a korábbi verziót.

Posted

Megint elakadtam egy ponton. SQL lekérdezést kell beadagolnom eg php-nak ,de ' jel is van benne, emiatt nem akar működni. Hogyan tudom beírni egy stringbe az ' jelet (ugye azt hiszi, hogy vége van a stringnek)?

Posted

\ jellel tudod levédeni.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...