Autor Zpráva
bladesoft
Profil
Ahoj všem, prosím mohu vás poprosit o jednu vec? Na serveru mam vyply register_globals a potreboval bych do jednochu scriptu dopsat _GET[] vůbec nevím jak to _GET funguje předem moc děkuju za dopsání _GET do mého scriptu. Určitě to pak pochopim!


if ($email != "" && $jmeno != "")
{
if (!isset($deny))
$deny = "n";
if ($heslo == "")
{
$sql = mysql_query("UPDATE clenove SET jmeno = '$jmeno', email = '$email', oautorovi = '$oa',
prava = $poz, stav = '$deny'
WHERE id = $id");
}

else
{
$sql = mysql_query("UPDATE clenove SET pass = '".md5($heslo)."', jmeno = '$jmeno',
email = '$email', oautorovi = '$oa', prava = $poz, stav = '$deny' WHERE id = $id");
}

mysql_close($conn);
zavri();
exit;
}

$sql = mysql_query("SELECT * FROM clenove WHERE id = $id");

if (mysql_num_rows($sql) == 0):
mysql_close();
zavri();
exit;
endif;

$row = mysql_fetch_row($sql);
mysql_free_result($sql);
mysql_close($conn);

head()
?>
<H4 ALIGN="CENTER"><B>Editace uživatele</B></H4>

<FORM METHOD="POST" ACTION="edit_clenove.php">
<INPUT TYPE="HIDDEN" NAME="id" VALUE="<?php echo $id; ?>">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER">
<body bgcolor="#556776">
<TR>
<TD>Login: &nbsp;</TD>
<TD><?php echo $row[1]; ?></TD>
</TR>
<TR>
<TD>Heslo: &nbsp;</TD>
<TD><INPUT TYPE="TEXT" NAME="heslo" MAXLENGTH="25" SIZE="40" VALUE=""></TD>
</TR>
<TR>
<TD>Email: *&nbsp;</TD>
<TD><INPUT TYPE="TEXT" NAME="email" MAXLENGTH="100" SIZE="40" VALUE="<?php echo $row[4]; ?>"></TD>
</TR>
<TR>
<TD>Jméno: *&nbsp;</TD>
<TD><INPUT TYPE="TEXT" NAME="jmeno" MAXLENGTH="100" SIZE="40" VALUE="<?php echo $row[3]; ?>"></TD>
</TR>
<TR>
<TD VALIGN="TOP">O autorovi: &nbsp;</TD>
<TD><TEXTAREA COLS="34" ROWS="4" NAME="oa"><?php echo $row[5]; ?></TEXTAREA></TD>
</TR>

<TR>
<TD>Pozice: &nbsp;</TD>
<TD><SELECT name="poz">
<?php
for ($i = 1; $i <= 2; $i++)
{
echo "<OPTION VALUE=\"$i\"";
if ($i == $row[6])
echo " SELECTED";
echo ">$pozice[$i]</OPTION>";
}
?>
</SELECT></TD>
</TR>
<TR>
<TD>Aktivní: &nbsp;</TD>
<TD><INPUT TYPE="CHECKBOX" NAME="deny" VALUE="a"<?php if ($row[7] == "a") echo " CHECKED"; ?>></TD>
</TR>
<TR>
<TD COLSPAN="2">&nbsp;</TD>
</TR>
<TR>
<TD COLSPAN="2" ALIGN="CENTER">
<INPUT TYPE="SUBMIT" VALUE="Editovat">
</TD>
</TR>
</TABLE>
</FORM>
<?php
foot();
?>
Casero
Profil
místo všech proměných z formuláře napiš jmeno te proměné do pole GET tzn $soubor -> $_GET["soubor"]
Alphard
Profil
dopisovat to nebudu, ale je to jednoduche
třeba si dej na začátek:

$jmeno = $_GET['jmeno'];
.
.
.

když to takhle uděláš pro všechny přenášené promněnné, tak je po problému

PS: v kodu, který jsi ukáze,l máš post, to by s get nefungovalo
Anonymní
Profil *
když to napíšu takto:


if ($email = $_GET['email'] != "" && $heslo = $_GET['heslo'] != "" && $login = $_GET['login'] != "" && $jmeno = $_GET['jmeno'] != "")
{
if (!isset($deny = $_GET['deny']))
$deny = "n";

$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '$login = $_GET['login']'");
if (mysql_num_rows($sql) > 0)
{
$login = '';
$error = "<DIV ALIGN=CENTER>Login již existuje !!!</DIV>\n";
}
else
{
$sql = mysql_query("INSERT INTO autori VALUES (null, '$login = $_GET['login']', '".md5($heslo = $_GET['heslo'])."', '$jmeno = $_GET['jmeno']', '$email = $_GET['email']',
'$oautorovi = $_GET['oautorovi']', '$poz = $_GET['poz']', '$deny = $_GET['deny']' )") or die(mysql_error());



píše me to tuto chybu: syntax error, unexpected '=', expecting ',' or ' a to je chyba v tomto řádku " if (!isset($deny = $_GET['deny'])) "
Anonymní
Profil *
to co ukazuju je zas jiny script :) ne ten co jsem posilal pretim
Casero
Profil
Anonymní
porovnávání je v ph == neníá to ono??
Anonymní
Profil *
ted to zas pise "syntax error, unexpected T_IS_EQUAL, expecting ',' or ')' in"
Anonymní
Profil *
Tak ja už nevím jak mám ty proměnny zadavat :(
DJ Miky
Profil
Anonymní
$email = $_GET['email'] != ""
nahraď za
$_GET['email'] != ""

atp. u všech proměnných, kde jsi dopisoval _GET...
Alphard
Profil
if ($_GET['email'] != "" && $_GET['jmeno'] != "")
{ atd.
Anonymní
Profil *
no ted to pise: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING v tomhle radku:
$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '$_GET['login']'");

DJ Miky
Profil
$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '$_GET['login']'");
=>
$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '".$_GET['login']."'");

EDIT: Alphard: :-)
Alphard
Profil
$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '".$_GET['login']."'");
Anonymní
Profil *
if ($_GET['email'] != "" && $_GET['heslo'] != "" && $_GET['login'] != "" && $_GET['jmeno'] != "")

{
if (!isset($_GET['deny'])) $deny = "n";

$sql = mysql_query("SELECT * FROM autori WHERE login LIKE '".$_GET['login']."'");
if (mysql_num_rows($sql) > 0)
{
$login = '';
$error = "<DIV ALIGN=CENTER>Login již existuje !!!</DIV>\n";
}
else
{
// přidáme uživatele
$sql = mysql_query("INSERT INTO autori VALUES (null, '".$_GET['login']."', '".md5($_GET['heslo'])."',
'".$_GET['oautorovi']."', '".$_GET['poz']."', '".$_GET['deny']."' )") or die(mysql_error());

no, takhe to funguje uz to nepise chybu ale kdyz vyplnim vsechny udaje ve formulari tak se me to neulozi do databaze :( vubec nic se nestane..
DJ Miky
Profil
Anonymní
Protože ten formulář odesíláš POSTem... Musel bys změnit $_GET za $_POST...
Anonymní
Profil *
oki toho jsem si nevsiml děkuji všem mockrát už to běží jen mě to píše při vytváření "Column count doesn't match value count at row 1" a nic se nevytvoří ale na to snad už něják příjdu jestli někdo ví co s tim tak at pls napíše jinak vám všem fakt moc děkuji!!
Anonymní
Profil *
ted uz to funguje uplne - tak moc dik :) ("uz nebudu otravovat") :D
Anonymní
Profil *
Cau všem (promiňte ze zas otravuju, ale vyskytla se me chyba).. Pokud zadam tento script:

if ($_POST['email'] != "" && $_POST['jmeno'] != "")

{
if (!isset($_POST['deny']))
$deny = "n";

if ($_POST['heslo'] == "")
{
$sql = mysql_query("UPDATE clenove SET $jmeno = '".$_POST['jmeno']."', $email = '".$_POST['email']."', $oautorovi = '".$_POST['oa']."',
prava = '".$_POST['poz']."', stav = '".$_POST['deny']."'
WHERE id = '".$_POST['id']."'");
}

else
{
$sql = mysql_query("UPDATE clenove SET $pass = '".md5($_POST['heslo'])."', $jmeno = '".$_POST['jmeno']."', $email = '".$_POST['email']."', $oautorovi = '".$_POST['oa']."',
prava = '".$_POST['poz']."', stav = '".$_POST['deny']."'
WHERE id = '".$_POST['id']."'");
}

mysql_close($conn);
zavri();
exit;
}


tak mě to udělá po kliknutí na EDITOVAT jen probliknuti vubec se mě neukáže editovaná věc kterou chci.. Nevite co mám blbě, předem děkuji za odpověď!
DJ Miky
Profil
Anonymní
Mně se tam žádné EDITOVAT neobjeví... (doufám, že víš, co myslím)
Anonymní
Profil *
Neni to cely script. Jen část která to má uploadnout do databaze. Je nejaky clanek a u nej je EDITOVAT kdyz kliknes na editovat mají se starší veci obevit ve foruláři a když tam napíšete nšco nového mají se změnit na ty který jste napsali. Ale to se nestane ani to okno s fomularem na zmenu se neobevi jen problikne!
Anonymní
Profil *
Celý tento script je vejs uplne jako prvni muj prispevek..
Anonymní
Profil *
Taky je možný že mám blbe tento script:

$sql = mysql_query("SELECT * FROM clenove WHERE id = '".$_POST['id']."'");
co myslite?
Casero
Profil
Anonymní
syntakticky tam nezhledávám chybu
Anonymní
Profil *
hmmm :( porad nejde.. Aspon kdyby me to vypsalo nejakou chybu ale proste se to okno jen zavre ve kterym ty data edituju.. Ten script vypada takto:


if ($_GET['email'] != "" && $_GET['jmeno'] != "")

{
if (!isset($_POST['deny']))
$deny = "n";
// SQL pokud se nemění heslo
if ($_POST['heslo'] == "")
{
$sql = mysql_query("UPDATE clenove SET jmeno = '".$_POST['jmeno']."', email = '".$_POST['email']."', oautorovi = '".$_POST['oa']."',
prava = '".$_POST['poz']."', stav = '".$_POST['deny']."'
WHERE id = '".$_POST['id']."'");
}

else
{
$sql = mysql_query("UPDATE clenove SET pass = '".md5($_POST['heslo'])."', jmeno = '".$_POST['jmeno']."', email = '".$_POST['email']."', oautorovi = '".$_POST['oa']."',
prava = '".$_POST['poz']."', stav = '".$_POST['deny']."'
WHERE id = '".$_POST['id']."'");
}

mysql_close($conn);
zavri();
exit;
}

$sql = mysql_query("SELECT * FROM clenove WHERE id = '".$GET[id]."'");


prosííím moc piste me co je v tom blbe = dekuji moc...
tiso
Profil
Rozmysli si čo máš GET premenné a čo máš POST premenné...
Anonymní
Profil *
stale me to nejde jak by ste prosim ty promenny napsali podle toho prvniho prispevku v tomhle threatu kde je cely script ktery me nefunguje??
Anonymní
Profil *
Diky všem už jsem to vyřešil :)
Toto téma je uzamčeno. Odpověď nelze zaslat.