paweln
19.11.2003, 10:20:47
Witam. Mam sobie skrypcik, który pobiera profile uzytkowników z bazy sql. Obok kazdego wczytanego usera jest pole checkbox po ktorego zaznaczeniu mozna usunac wybrane profile. Skrypt odwoluje sie do drugiego usun.php. Chodzi mi o to zeby po wykonaniu skryptu usun.php wyswietlila sie stronka z wyswietlonymi profilami ale przeladowana czyli bez usunietych profili, i zeby to sie zrobilo automatycznie bez odswiezania. I zeby nie wyskakiwal komunikat o ponownym wyslaniu informacji.
Mam nadzieje ze mnie ktos zrozumie
eltrix
19.11.2003, 10:28:05
W usuń.php po tym jak wykonasz zapytanie do bazy dopisz:
[php:1:225e5ff93c]<?php
header('Location: profil.php'); // czy jak tam się skrypt nazywa
?>[/php:1:225e5ff93c]
Powinno pomóc
paweln
19.11.2003, 15:39:44
cosik takiego mi wyrzyca:
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/wyswietl.php:12) in /var/www/html/usun.php on line 41
JOHNY
19.11.2003, 15:57:14
No wiesz bez kodu php to nikt nic tu nie pomoże same blędy nic nie mówią bez konktetnego php
Seth
19.11.2003, 15:58:06
Header nie moze byc wyslany jezeli co kolewiek innego juz wyslales do rpzegladarki.
paweln
19.11.2003, 16:05:27
Nie da sie tego obejsc, badz rozwiazac w inny sposob ?
Seth
19.11.2003, 16:07:09
Mozna to zrobic przez JavaScript ale to juz inne forum
paweln
19.11.2003, 17:04:27
probowalem przez java script, tylko że tam wywala znowu jakies bledy z bazy SQL
Narg
19.11.2003, 21:53:11
Sprubuj dać na początku:
[php:1:6c2e498b3c]
<? ob_start(); ?>
[/php:1:6c2e498b3c]
i na końcu
[php:1:6c2e498b3c]
<? ob_end_flush(); ?>
[/php:1:6c2e498b3c]
a będziesz mógł wysyłać ciastka i headers'y nawet po wysłaniu tekstu do wyświetlenia.
paweln
20.11.2003, 08:44:15
Dzieki. Dziala tylko tak jak w javie jakis konflikt z bazą SQL. Może ktoś się z tym spotkał.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/uwierz.php on line 72
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/html/uwierz.php on line 107
janek
20.11.2003, 12:09:45
Wygląda, że z wynikiem zapytania który przekazujesz do funkcji wypisanych w błędach jest coś nie tak. Sprawdz zapytanie!
s_w_ir
20.11.2003, 16:14:23
Nie koniecznie(ale u ciebie akurat tak:)) może też być tak że zpytanie ma pusty wynik że tak to nazwę. Mi często sie to zdarza podczas testów kiedy baza jest jeszcze pusta. Wystarczy przed zapytaniem dać @ 8)
janek
20.11.2003, 17:54:47
No fakt, jeżeli skrypt działa i są takie komunikaty to przyczyna jest taka jak piszesz :oops:
paweln
20.11.2003, 18:01:25
No nie wiem. Bo jesli klikne przycisk wstecz i recznie odswieze to jest wszystko oki, tzn pokazuje mi uzytkownikow ktorzy zostali, a usunietych nie. Błedy zwiazane z bazą wyskakują przy automatycznym przeladowaniu za pomocą header czy tez javy.
Sam juz nie wiem co mam zrobić.
Narg
20.11.2003, 18:06:33
Może wklej kod skryptu będzie nam łatwiej... 8)
s_w_ir
20.11.2003, 22:25:51
Chwila a usuwasz wszystkich użtkowników? bo jak tak to nie dostaniesz wyniku (np. że usunięto 10 userów) jeżeli zostaną usunięte wszystkie wpisy z tabeli bazy danych.
s_w_ir
20.11.2003, 22:34:41
A bawiłeś się z funkcjami obsługi błędów MySql, bo może rzeczywiście jest to błąd składni. Sprubuj tak. Wpisz tą funkcje[php:1:40cf982195]<?php
$MYSQL_ERRNO = '';
$MYSQL_ERROR = '';
function sql_error() {
global $MYSQL_ERRNO, $MYSQL_ERROR;
if(empty($MYSQL_ERRNO)) {
$MYSQL_ERRNO = mysql_errno();
$MYSQL_ERROR = mysql_error();
}
return "$MYSQL_ERRNO: $MYSQL_ERROR";
}
?>[/php:1:40cf982195]
a potem zrób tak:[php:1:40cf982195]<?php
$zapytanie=mysql_query(...);
if(!$zapytanie) die(sql_error());
?>[/php:1:40cf982195]
To Ci pomoże bo wykluczymy błędy składniowe i takie tam
edit:
żeczywiście => rzeczywiście
paweln
21.11.2003, 10:18:21
Wrzuce kod bo juz nie wiem co jest.
profil.php:
[php:1:32da06a94e]<?php
// dołączenie plików funkcji tej aplikacji
require_once("funkcje.php");
session_start();
//*** Proba logowania
if($login && $haslo)
{
if(loguj($login, $haslo))
{
// jeżeli użytkownik znajduje się w bazie danych rejestracja identyfikatora
$prawid_uzyt=$login;
session_register("prawid_uzyt");
}
else
{
// niepomyślne logowanie
tworz_naglowek_html("Problem:");
echo "Zalogowanie niemozliwe<br>"
." Nalezy byc zalogowanym aby ogladac te strone !";
tworz_html_url("index.php", "Logowanie");
tworz_stopke_html();
exit;
}
}
tworz_naglowek_html("Strona główna");
sprawdz_prawid_uzyt();
// tworzenie menu opcji
wyswietl_wynik();
wyswietl_menu_uzyt();
tworz_stopke_html();
?>[/php:1:32da06a94e]
uwierz.php:
[php:1:32da06a94e]<?php
require_once("bazy.php");
function rejestruj($login, $haslo, $email, $imie, $nazw, $adres, $tel, $nip, $regon)
// zarejestrowanie nowej osoby w bazie danych
// zwraca true lub komunikat o błędzie
{
// połączenie z bazą danych
$lacz=lacz_bd();
if(!$lacz)
return "Polaczenie z serwerem bazy danych MySQL bylo niemozliwe — prosze sprobowac "
."pozniej.";
// sprawdzenie, czy nazwa użytkownika nie powtarza się
$wynik=mysql_query("select * from uzyt where login='$login'");
if(!$wynik)
return "Zapytanie nieudane";
if (mysql_num_rows($wynik)>0)
return "Nazwa uzytkownika zajeta - prosze wrocic i wybrac inna.";
// jeżeli wszystko w porządku, umieszczenie w bazie danych
$wynik = mysql_query("insert into uzyt values ('$login', password('$haslo'),'$email','$imie','$nazw','$adres','$tel','$nip','$regon')");
if(!$wynik)
return "Rejestracja w bazie danych niemozliwa — prosze sprobowac pozniej.";
return true;
}
function loguj($login, $haslo)
// sprawdzenie nazwy użytkownika i hasła w bazie danych
// jeżeli się zgadza, zwraca true
// jeżeli nie, zwraca false
{
// połączenie z bazą danych
$lacz=lacz_bd();
if(!$lacz)
return 0;
// sprawdzenie unikatowości nazwy użytkownika
$wynik=mysql_query("select * from uzyt
where login='$login' and
haslo=password('$haslo')");
if(!$wynik)
return 0;
if(mysql_num_rows($wynik)>0)
return 1;
else
return 0;
}
function sprawdz_prawid_uzyt()
// sprawdzenie czy użytkownik jest zalogowany i powiadomienie go jeżeli nie
{
global $prawid_uzyt;
if(session_is_registered("prawid_uzyt"))
{
############ Implementacja Admin php ##############
if ($prawid_uzyt == Administrator)
{
$query = mysql_query("SELECT login, email, imie, nazw, adres, tel, nip, regon FROM uzyt ORDER BY login");
$n = "1";
$ile = mysql_num_rows($query);
echo "<font color = 3333cc><b>Liczba Zarejestrowanych Użytkowników w Bazie: $ile</b></font>";
echo "<br><br><br>";
?>
<table bordercolor = blue width = 100% >
<?
$pasek = "
<tr><td width = 90> Login </td>
<td width = 130> Email </td>
<td width = 60> Imie </td>
<td width = 80> Nazwisko </td>
<td width = 150> Adres </td>
<td width = 90> Telefon </td>
<td width = 95> NIP </td>
<td width = 80> Regon </td>
<td width = 9> Usun </td></tr>";
echo $pasek;
$pasek2 = "
<tr><td width = 90> </td>
<td width = 130> </td>
<td width = 60> </td>
<td width = 80> </td>
<td width = 150> </td>
<td width = 90> </td>
<td width = 95> </td>
<td width = 80> </td>
<td width = 9> </td></tr>";
echo $pasek2;
echo $pasek2;
?>
<form method=post action="usun.php">
<?
while(list($login, $email, $imie, $nazw, $adres, $tel, $nip, $regon) = mysql_fetch_row($query)) {
$tekst = "
<td width = 90> $login </td>
<td width = 130> $email </td>
<td width = 60> $imie </td>
<td width = 80> $nazw </td>
<td width = 150> $adres </td>
<td width = 90> $tel </td>
<td width = 95> $nip </td>
<td width = 80> $regon</td>
<td width = 9><input type = checkbox name="usun_mnie[]" value = "$login"></td>";
$n++;
for ($i=0;$i<count($tekst);$i++) {
$pole++;
if ($pole==1) { $kolor = "#eeeeee"; }
if ($pole==2) { $kolor = "#ccccff"; $pole=0; }
echo "<tr bgcolor=$kolor>".$tekst."</tr>";
}
}
?>
</table>
<br><br>
<center><input type=submit value="..:: Usun Zaznaczone Profile Uzytkownikow ::.."></td></tr></center>
</form>
<?
//tworz_stopke_html();
}
else
{
echo "<font color=#3333cc><b>";
echo "Witaj $prawid_uzyt !!!";
echo "</b></font>";
echo "<br>";
}
}
else
{
// nie jest zalogowany
tworz_tytul_html("Problem:");
echo "Brak zalogowania.<br>";
tworz_html_url("index.php", "Logowanie");
tworz_stopke_html();
exit;
}
}
?>[/php:1:32da06a94e]
usun.php:
[php:1:32da06a94e]<?php
require_once("bazy.php");
require_once("funkcje.php");
tworz_naglowek_html("Usuwanie Uzytkownikow");
// połączenie z bazą danych
$lacz=lacz_bd();
if(!$lacz)
return "Polaczenie z serwerem bazy danych MySQL bylo niemozliwe — prosze sprobowac pozniej.";
echo "<font color = 3333cc>";
echo "<b>Uzytkownicy Ktorzy zostali Usunieci z Bazy Danych: </b>";
echo "<br><br><ul>";
if(count($usun_mnie)>0)
{
foreach($usun_mnie as $login)
{
echo "<li>";
print $login;
$sql = mysql_query("DELETE FROM uzyt WHERE login='$login'");
$sql;
$blad = mysql_error();
echo $blad;
}
}
else
echo "<li>Nie wybrano zadnych profili do usuniecia";
echo "</ul>";
echo "</font>";
tworz_stopke_html();
header("Location: profil.php");
?>[/php:1:32da06a94e]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.