PHP redirect volgt eigen weg

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mohamed nvt

Mohamed nvt

28/08/2016 13:29:45
Quote Anchor link
Hallo allemaal,

Het volgende code gebruik ik om een item van de category te verwijderen.
Het verwijderen van een item gaat prima, maar aan de einde van de script gaat hij niet terug naar categories.php, zoals hieronder aangegeven, maar naar index.php.
Dezelfde code gebruik ik ook voor insert_category. En na het toevoegen van een category gaat het wel naar categories.php.
Ik moet wel zeggen dat ik voorheen een redirect had staan naar index.php en sindskort aangepast naar categories.php.

Ik heb beide codes meerder malen met elkaar vergelijken, maar ik zie echt geen fout erin...
Kan dit te maken met een soort cache van Apache/PHP. Overigens, ik gebruik voornamelijk FF om te browsen en daarom heb ik het in IE11 geprobveerd, maar krijg hetzelfde resultaat.

Iemand een idee?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php include "includes/db-config.php"; ?>
<?php include "includes/header.php"; ?>
<?php include "includes/sidebar.php"; ?>
<?php
if(isset($_GET['id'])){
    
    $id = $_GET['id'];
    $query = "Delete FROM categories
                WHERE cat_id=$id "
;
    $result = mysqli_query($connection,$query1);    
}
else {
    echo "No category has been chosen";
}

if(!$result){
    die (mysqli_error($connection));    
}
else {
    echo "<p>" . $id . " has been deleted succesfully<br>You will be automatically redirected to the previous page in 3 seconds...</p>";
    header ("refresh:3;url=categories.php");
}

?>


<?php include "includes/footer.php"; ?>
 
PHP hulp

PHP hulp

26/01/2021 23:37:01
 
Ramon van Dongen

Ramon van Dongen

28/08/2016 13:54:52
Quote Anchor link
Quote:
Ik moet wel zeggen dat ik voorheen een redirect had staan naar index.php en sindskort aangepast naar categories.php.

En heb je het nieuwe bestand ook geupload met de juiste naam en in de juiste map?

Test het bijvoorbeeld eens door bijvoorbeeld iets helemaal bovenaan de pagina te zetten als echo 'test';. Als dat niet verschijnt, staat niet het juiste bestand online.
 
Mohamed nvt

Mohamed nvt

28/08/2016 14:09:23
Quote Anchor link
Hoi Ramon,

Alle bestanden draaien lokaal en zitten in de root.
Ik werk met Notepad++ verder.
Zelfs met het uitschakelen van PHP redirect door:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
//header ("refresh:3;url=categories.php");

En bizar genoeg dezelfde gebruik ik ook voor cat_insert.php en daar wordt het wel geredirect naar categories.php


code voor cat_insert.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
include "includes/db-config.php";
include "includes/header.php";

echo '<div id="content">'
    .'<h1>Category insert form</h1>';

if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(isset($_POST['submit']) && strlen(trim($_POST['submit'])) > 0){
        $cat_title= $_POST['cat'];
        
        if($cat_title =="" || empty($cat_title)){
            echo "This field can't be empty";
            
            
        }
else {
                $query = "INSERT into categories(cat_title)
                            values ('{$cat_title}') "
;
                $create_category = mysqli_query($connection,$query);
                $last_id = mysqli_insert_id($connection);
                    
                if(!$create_category){ // Niet nodig en nooit DIE gebruiken buiten de ontwikkel versie.
                die(mysqli_error($connection));
                }
else {
                    echo "<p>New category created successfully and the last inserted ID is: " . $last_id .
                    "<br>You will be automatically redirected to the previous page in 3 seconds...</p>";
                    header ("refresh:3;url=categories.php");
                }
        
            }
    }
}

?>

<?php
echo "<form action='' method='post'>
<fieldset>
<legend>Category insert form></legend>
<p><label for='cat'>Category title:</label><input type='text' name='cat' id='cat'></p>
<input type='submit' name='submit' value='insert category'>
</fieldset>
</form>"
;
?>

<?php
echo '</div>';

include "includes/footer.php";
?>


Ik heb het gevoel dat ik te maken met een magisch script of zo...
 
Ramon van Dongen

Ramon van Dongen

28/08/2016 14:13:20
Quote Anchor link
Probeer het eens met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
header('Location: categories.php');
exit;
?>

Zorg er wel voor dat er voor deze code geen output naar de browser staat. Geen spatie, geen <html>, geen helemaal niks
 
Mohamed nvt

Mohamed nvt

28/08/2016 14:52:35
Quote Anchor link
Ramon van Dongen op 28/08/2016 14:13:20:
Probeer het eens met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
header('Location: categories.php');
exit;
?>

Zorg er wel voor dat er voor deze code geen output naar de browser staat. Geen spatie, geen <html>, geen helemaal niks

Als ik bovenaan bovenstaande code toevoeg, dan gebeurt er verder niets wanneer ik klik op delete...
Na het uitschakelen van deze code, gaat het pagina vrolijk verder naar index.php ipv categories.php....
 
Ramon van Dongen

Ramon van Dongen

28/08/2016 14:59:03
Quote Anchor link
Dus je hebt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header ("refresh:3;url=categories.php"); ?>

Vervangen door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header('Location: categories.php'); ?>

En er gebeurt niets meer?

Zet allereerst je error reporting eens aan.

Maar, ben je echt hetzelfde bestand aan het bekijken/aanpassen?
Misschien typ je nu iets anders dan je bedoelt, maar je typt 'wanneer ik klik op delete'. In je voorbeeld staat 'insert category'.
 
Mohamed nvt

Mohamed nvt

28/08/2016 15:06:04
Quote Anchor link
Wannneer ik het volgende code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header ("refresh:3;url=categories.php"); ?>

vergang door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header('Location: categories.php'); ?>


dan word ik wel netje geredirect naar categories.php.

Echter, wat ik niet snap waarom de code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header ("refresh:3;url=categories.php"); ?>

wel werkt voor cat_insert.php en niet voor cat_delete.php

Bedankt voor het tot zover meedenken Ramon!

Iemand een idee..
 
Ramon van Dongen

Ramon van Dongen

28/08/2016 15:09:37
Quote Anchor link
http://stackoverflow.com/questions/6119451/page-redirect-after-certain-time-php

Geeft ook aan:
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file. (source php.net)

Waarom dan hij niet naar categories.php gaat maar naar index.php is een raadsel trouwens.


Toevoeging op 28/08/2016 15:10:00:

En nu ga ik bier drinken. Succes er nog mee! ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.