ugrás a tartalomhoz

Update

wreakz · 2013. Okt. 5. (Szo), 00.47
Sziasztok!
Nem találom a hibát, tudnátok segíteni ?
Lehet hogy én vagyok a vak, de nem találom :/
Az adatbázisnév szándékosan van kipontozva, nem az a hiba.

<form method="post">
<input type="text" name="adminfel" value=""></input>
</form>




if( isset( $_POST['adminhozzaadas'] ) )
{
mysql_connect( $ab_kiszolgalo, $ab_felhasznalo, $ab_jelszo);
mysql_select_db("...") or die("Adatbázis hiba!");
$parancs = "UPDATE accounts SET admin='2' WHERE username='".$_POST['adminfel']."'";  
mysql_query($parancs);
echo '<meta http-equiv=refresh content="5">
<div id=profile_siker class=windowbg>Sikeresen hozzáadva.</div><br>';
}


<form method="POST">
        <input type="submit" class="myButton" name="adminhozzaadas" value="Hozzáadás">
</form> 
 
1

Két külön form

Pepita · 2013. Okt. 5. (Szo), 02.25
Esetleg kipróbálhatnád, hogy a submit gomb ugyanabban a form-ban van, mint a bevitt adat.

Ugyanis a böngésződ azt a formot fogja _POST metódusban elküldeni, amelyiket szubmittáltad, a másikat nem.

De az egész valami innen-onnan letöltött, HTML és SQL hibáktól hemzsegő katyvasznak tűnik, ne haragudj. Minden escape nélkül, stb, stb.

Szerintem találsz itt cikket felhasználókezelésről is, inkább azt tanulmányozd előbb.
És kellene némi HTML-utánpótlás is: attribútumok értéke idézőjelben, a sortörés <br />, és ma már elenyésző azon helyek száma, ahol használandó.
Az sem egy jó megoldás, hogy "saját magát dolgozza fel" a script.

Jópár dolognak utána kéne nézz. Cikkajánló by Hídvégi Gábor.

Nyugi, mindenki kezdőként kezdte, sok olvasással.
2

Kezdő

wreakz · 2013. Okt. 5. (Szo), 09.34
Köszönöm az ötletet, Azert nem escape elem mível az oldalt egy felhasznaló tudja megtekinteni, és nem hinnem hogy sql injectiont fog vegrehajtani. Amit hazaertem újra értelmezem, és az ötleted alapjám újraírom.
---------------
Köszönöm még 1x, igen ez volt a hiba hogy külön <form>-ba voltak !
3

Örülök neki,

Pepita · 2013. Okt. 5. (Szo), 23.24
hogy sikerült, azért a cikkeket se felejtsd. Szerintem az nem egy egészséges felfogás, hogy
egy felhasznaló tudja megtekinteni,
mert mi lesz később, mikor többen lesznek? De ha soha nem lesznek többen, akkor is felhasználótól bejövő adatot mindig escape-elni kell. Pont. (A mindenféle más támadási lehetőségekről nem is beszélve...) Ezért olvass cikkeket, ebben a szakmában folyamatosan tanulni kell.
4

Hátha

wreakz · 2013. Okt. 6. (V), 16.04
Hátha még valaki hasznát veszi.
if( isset( $_POST['adminhozzaadas'] ) )
{
if($_POST['adminfel']=='')
echo'<div id="profile_hiba" class="windowbg">Kérlek tölsd ki a mezőt !</div>';
else {
$felhasznalo = mysql_real_escape_string($_POST['adminfel']);
$szint = mysql_real_escape_string($_POST['adminszint']);
$parancs = "UPDATE accounts SET admin='".$szint."' WHERE username='".$felhasznalo."'";  
mysql_query($parancs);
echo '<meta http-equiv=refresh content="2">
<div id=profile_siker class=windowbg> '.$felhasznalo.' nevű felhasználó sikeresen hozzáadva az adminokhoz !</div><br>';
}
}