| Autor | Zpráva | ||
|---|---|---|---|
| pito Profil |
#1 · Zasláno: 6. 10. 2008, 12:38:11
zdravim,
Mam problem.Kdyz se uzivatel prihlasi tak mu najede menu je tam nastaveni kde si muze zmenit udajeý,ale v tom je ten problem vubec mi to nefunkuje. Zde je zmena osobnich udaju: account.php <?
require "db.php";
$vyber = MySQL_Query("SELECT * FROM user WHERE id = " . $_SESSION['id'])
or die(mysql_error());
while ($zaznam2=MySQL_Fetch_Array($vyber)):
echo "<form action='account_zpracuj.php' method='post'>
<input type='hidden' name='sent' value=''/>";
echo "<table class='table_profil' align='center' WIDTH='400'>";
echo "<tr><td class='zvyraznit' width=100px >Přezdívka:</td>
<td><b><input type='text' name='login' value='".$zaznam2['login']."' disabled></b></td>
</tr>
<td class='zvyraznit'>Jméno:</td>
<td><input type='text' name='jmeno' value='".$zaznam2['jmeno']."'></td>
</tr>
<tr>
<td class='zvyraznit'>Příjmení:</td>
<td><input type='text' name='prijmeni' value='".$zaznam2['prijmeni']."'></td>
</tr>
<tr>
<td class='zvyraznit'>Národnost:</th>
<td><img src='tip-liga_soubory/flags/".$zaznam2['zem'].".png'></td>
</tr>
<tr>
<td class='zvyraznit'>Datum narození:</td>
<td><input type='text' name='den' value='".$zaznam2['den']."' size='5'>.<input type='text' name='mesic' value='".$zaznam2['mesic']."' size='5'>.<input type='text' name='rok' value='".$zaznam2['rok']."' size='10'></td>
</tr>
<tr>
<td class='zvyraznit'>Bydliště</td>
<td><input type='text' name='bydliste' value='".$zaznam2['bydliste']."'></td>
</tr>
<tr>
<td class='zvyraznit'>ICQ:</td>
<td><input type='text' name='icq' value='".$zaznam2['icq']."'></td>
</tr>
<tr>
<td class='zvyraznit'>Oblíbeny sport:</td>
<td><input type='text' name='sport' value='".$zaznam2['sport']."' size='40'></td>
</tr>
<tr>
<td class='zvyraznit'>Datum registrace:</td>
<td>".$zaznam2['last_login']."</td>
</tr>";
echo "</table>";
echo "<br><center><input type='submit' name='send' value='Změnit údaje'/></center>
</form>";
endwhile;
?>a zde je script ktery to zpracuje: account_zpracuj.php <?php
if(isset($_POST['sent']))
{
$jmeno = htmlspecialchars($_POST['jmeno']);
$prijmeni = htmlspecialchars($_POST['prijmeni']);
$den = htmlspecialchars($_POST['den']);
$mesic = htmlspecialchars($_POST['mesic']);
$rok = htmlspecialchars($_POST['rok']);
$bydliste = htmlspecialchars($_POST['bydliste']);
$icq = htmlspecialchars($_POST['icq']);
$sport = htmlspecialchars($_POST['sport']);
$result=mysql_query("UPDATE user set jmeno='".$jmeno."', prijmeni='".$prijmeni."', den='".$den."', mesic='".$mesic."', rok='".$rok."', bydliste='".$bydliste."', icq='".$icq."', sport='".$sport."' WHERE id ='".$_SESSION['id']); //zapíšeme nové údaje do řádku podle ID
$result=mysql_query($vloz);
//a přesměrujeme na zobrazení článků
echo '<script type="text/javascript" for="window" event="onLoad()">
<!--
window.location.href="profil.php"
// --> </script>';
}
?>no a pise mi to chybu: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 nevim si rady co muze byt spatne. |
||
| ninja Profil |
#2 · Zasláno: 6. 10. 2008, 12:40:45
Co asi tak muze byt spatne? Preci SQL dotaz. Zkuste si jej vypsat pres echo a uvidite, ze na konci chybeji uvozovky:
... WHERE id ='".$_SESSION['id']); |
||
| Sicario Profil * |
#3 · Zasláno: 6. 10. 2008, 12:50:01
ninja
Nebo prebyvaji na zacatku:-) pito Presmerovani lze udelat efektivneji v PHP: header('Location: http://.../profil.php');[/i] |
||
| pito Profil |
#4 · Zasláno: 6. 10. 2008, 13:00:28
tak jsem to udelal takhle
<?php
require "db.php";
if(isset($_POST['sent']))
{
$jmeno = htmlspecialchars($_POST['jmeno']);
$prijmeni = htmlspecialchars($_POST['prijmeni']);
$den = htmlspecialchars($_POST['den']);
$mesic = htmlspecialchars($_POST['mesic']);
$rok = htmlspecialchars($_POST['rok']);
$bydliste = htmlspecialchars($_POST['bydliste']);
$icq = htmlspecialchars($_POST['icq']);
$sport = htmlspecialchars($_POST['sport']);
$result=mysql_query("UPDATE user set jmeno='".$jmeno."', prijmeni='".$prijmeni."', den='".$den."', mesic='".$mesic."', rok='".$rok."', bydliste='".$bydliste."', icq='".$icq."', sport='".$sport."' WHERE (id=".$_SESSION['id'].")"); //zapíšeme nové údaje do řádku podle ID
$result=mysql_query($vloz);
//a přesměrujeme na zobrazení článků
header ("Location: index.php?id=profil");
}
?>chybu uz to nepise ale nechce to prepsat v db |
||
| Perry Profil |
#5 · Zasláno: 6. 10. 2008, 15:58:28
Zkus kolem vsech jmen sloupcu napsat `user`, `jmeno`, `prijemni` atd.
|
||
| Andre Profil |
#6 · Zasláno: 6. 10. 2008, 19:09:18
Zkus jenom napsat
mysql_query("UPDATE user set jmeno='".$jmeno."', prijmeni='".$prijmeni."', den='".$den."', mesic='".$mesic."', rok='".$rok."', bydliste='".$bydliste."', icq='".$icq."', sport='".$sport."' WHERE id='".$_SESSION['id']."'"); |
||
| pito Profil |
#7 · Zasláno: 6. 10. 2008, 21:11:59
napsal jsem:
$result=mysql_query("UPDATE user set 'jmeno', 'prijmeni', 'den', 'mesic', 'rok', 'bydliste', 'icq', 'sport' WHERE (id=".$_SESSION['id'].")");a porad nic furt stejne nechce to prepsat |
||
| Amunak Profil |
#8 · Zasláno: 6. 10. 2008, 21:30:22
nemáš třeba špatnou session?
|
||
| yFang Profil |
#9 · Zasláno: 6. 10. 2008, 21:32:29
pito
Ale tady v tom poslednim nic neměníš. Zkus si vypsat mysql_error() a uvidíš, co ti to napíše. |
||
| pito Profil |
#10 · Zasláno: 6. 10. 2008, 22:11:26
vypsalo to:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''jmeno', 'prijmeni', 'den', 'mesic', 'rok', 'bydliste', 'icq', ' |
||
| yFang Profil |
#11 · Zasláno: 7. 10. 2008, 09:53:18
pito
No vidíš, řekl bych, že by to mělo být tak, jak psal Andre. |
||
| BetaCam Profil |
#12 · Zasláno: 7. 10. 2008, 10:02:55
yFang
„No vidíš, řekl bych, že by to mělo být tak, jak psal Andre.“ Ano až nato, ID bude s velkou pravděpodobností integer a proto by nemělo být v uvozovkách. |
||
| yFang Profil |
#13 · Zasláno: 7. 10. 2008, 10:29:06
BetaCam
Kde tam je nějaké id v uvozovkách? |
||
| Andre Profil |
#14 · Zasláno: 7. 10. 2008, 15:58:51
Nikde sem ale neviděl že by si měl něco uložené v $_SESSION["ID"]
|
||
| pito Profil |
#15 · Zasláno: 7. 10. 2008, 16:54:02
to nic neresi pomozte jak na to aby mi to prepsalo data v db.
|
||
| yFang Profil |
#16 · Zasláno: 7. 10. 2008, 21:31:49
Nemělo by být na začátku skriptu
session_start(); |
||
| Champion Profil |
#17 · Zasláno: 9. 10. 2008, 15:13:16 · Upravil/a: Champion
Skus takto:)
$result = mysql_query("UPDATE `user` SET `jmeno`='$jmeno', `prijmeni`='$prijmeni', `den`='$den', `mesic`='$mesic', `rok`='$rok', `bydliste`='$bydliste', `icq`='$icq', `sport`='$sport"' WHERE `id`='".$_SESSION['id'].");a samozrejme na začiatku to session_start(); |
||
|
Časová prodleva: 17 let
|
|||
0