| Autor | Zpráva | ||
|---|---|---|---|
| pito Profil |
#1 · Zasláno: 3. 2. 2013, 13:05:06
Zdravím,
Mám problém s tím, že když smažu záznam z databaze tak mě to přesměruje na špatnou adresu. viz. { echo "<td><a href='foto.php?id=".$row['id']."' onClick='window.alert('Album bylo smazano')'>Smazat</a></td>";
$id = $_GET['id'];
$dotazProSmazani= "DELETE FROM album WHERE id='$id'";
$vysledekSmazani = mysql_query($dotazProSmazani);
}Když dam vlastně smazat tak mám výslednou adresu mojeadresa.cz/foto.php?id=4 Nešlo by přes POST? Ale jako odkaz to chci ne přes tlačítko. Potom vysledná adresa by byla mojeadresa.cz/foto.php bez toho id. |
||
| iii Profil * |
#2 · Zasláno: 3. 2. 2013, 13:31:03
Tak na konce přidej
header('Location: foto.php'); |
||
| user243 Profil |
#3 · Zasláno: 3. 2. 2013, 13:32:06
po kliknutí na odkaz tě to přesměruje na adresu odkazu; žádné jiné přesměrování po vykonání scriptu tam nemáš;
šlo by to přes post, co odkaz to jeden formulář a onclick na odkaz by odesílal formulář (s vyplým js by se muselo nastylovat odesílací tlačítko, aby vypadlo jako odkaz; |
||
| pito Profil |
#4 · Zasláno: 3. 2. 2013, 14:00:32
dal jsem to takhle ale píše to chyby
$id = $_GET['id'];
$dotazProSmazani= "DELETE FROM album WHERE id='$id'";
$vysledekSmazani = mysql_query($dotazProSmazani);
if ($vysledekSmazani){
header('Location: foto.php');
}
} |
||
| Jan Tvrdík Profil |
#5 · Zasláno: 3. 2. 2013, 14:01:43
pito:
Skript obsahuje SQL injection zranitelnost. Lépe $id = (int) $_GET['id'];
|
||
| pito Profil |
#6 · Zasláno: 3. 2. 2013, 14:07:29 · Upravil/a: pito
Jan Tvrdík:
„Skript obsahuje SQL injection zranitelnost. Lépe $id = (int) $_GET['id'];“ Ted to ale nesmaže záznam z DB Jak mohu tedy udělat aby při smazání naskočilo to dialogové okno onClick='window.alert('Album bylo smazano') a potom to přeměřovalo na tu samou stránku.
|
||
| pito Profil |
#7 · Zasláno: 3. 2. 2013, 15:34:44
Tak na nic jiného jsem nepřišel.
|
||
| user243 Profil |
#8 · Zasláno: 3. 2. 2013, 17:06:52
do přesměrování uvést adresu, kde máte seznam těch odkazů na smazání; vždyť si sám na tu otázku odpovídáte;
a když už máte přesměrování v podmínce, tak by v else mohlo být, že záznam nebyl smazán, protože...; |
||
| pito Profil |
#9 · Zasláno: 3. 2. 2013, 17:16:51
Tak jsem to upravil
{ echo "<td><a href='foto.php?id=".$row['id']."' onClick='window.alert('Album bylo smazano')'>Smazat</a></td>";
$id = $_GET['id'];
$dotazProSmazani= "DELETE FROM album WHERE id='$id'";
$vysledekSmazani = mysql_query($dotazProSmazani);
if ($vysledekSmazani){
header("Location: index.php?page=foto.php");
} else {
// Not logged in. Redirect back to login page
header("Location: http://localhost:8080/meet2eat/php/login.php?err=1");
}
}ale Píše to zas chybu Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/32603/virtual/www/domains.... |
||
| Micruss Profil |
Máš tam někde výstup echo bo tak... html kód a nebo BOM
Dá se to vyřešit tak, že k tomu napíše ob_start(); (na začátek souboru) ------------ EDIT: uprav si to $_GET['id']; na intval($_GET['id']);
|
||
| pito Profil |
#11 · Zasláno: 3. 2. 2013, 18:28:44
myslíte tenhle echo výstup?
include 'config.php'; //načteme soubor s údaji pro připojení k db
$prispevku = "15"; // počet příspěvků které chceme vypsat na stránku
$vypis = mysql_query("SELECT * FROM album order by id desc limit ".$prispevku.""); //vybíráme data z "aktualit" a vypisujeme od posledního příspěvku
$pocet=mysql_num_rows(mysql_query('select * from album')); //spočítáme všechny záznamy v databázi
while($row = mysql_fetch_array($vypis))
{
echo" <tr>
<td><a href='index.php?page=vlozitfoto'>".$row["nadpis"]."</a></td>";
{
echo "<td><a href='foto.php?id=".$row['id']."' onClick='window.alert('Album bylo smazano')'>Změnit</a> /
<a href='foto.php?id=".$row['id']."' onClick='window.alert('Album bylo smazano')'>Smazat</a></td>";
$id = $_GET['id'];
$dotazProSmazani= "DELETE FROM album WHERE id='$id'";
}
echo" <td>Published</td>
<td>18.03.2010</td>
<td>John Doe</td>
<td class='tableactions'><form><input type='button' class='submit tiny' value='Vložit foto' onClick='window.location.href='index.php?page=vlozitfoto'></form>
</td>
</tr>";
}
mysql_close(); //odpojíme se z db |
||
| Micruss Profil |
#12 · Zasláno: 3. 2. 2013, 18:54:26
Tak to máš napsaný v tom erroru ne ? :-) jakej to je řádek...
|
||
| pito Profil |
#13 · Zasláno: 3. 2. 2013, 19:01:19
110 řádek to je
header("Location: http://localhost:8080/meet2eat/php/login.php?err=1"); |
||
| Micruss Profil |
#14 · Zasláno: 3. 2. 2013, 19:16:49
Napiš tam Ob_Start(); a máš klid :) (na začátek))
|
||
| pito Profil |
#15 · Zasláno: 3. 2. 2013, 19:31:38
Micruss:
„Napiš tam Ob_Start(); a máš klid :) (na začátek))“ Nepomaha to |
||
|
Časová prodleva: 14 let
|
|||
0