Redirect vanuit een function mislukt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Don

Don

20/08/2009 17:20:00
Quote Anchor link
Hallo allemaal!

Ik krijg het maar niet voor elkaar om gelukte submits te redirecten naar dezelfde pagina. Alleen echo's lukken, maar dat is niet wat ik wil. Ik heb geprobeerd om een javascript window redirect te maken in de echo zelf -> mislukt. Ook de header location van php is mislukt. Misschien heb ik het wel niet goed gedaan.

Mijn script ziet er nu zo uit:

-- FUNCTIONS --
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
<?php

$conn
= connect();
$action = $_GET['a'];
$id = $_GET['id'];

case
'add_twitter':
    
    $sql="INSERT INTO twitter (twitternaam) VALUES ('$_POST[twitternaam]')";
        if (!mysql_query($sql))
        {

            die('Error: ' . mysql_error());
        }


        echo "Gelukt";

    break;
?>


En mijn Verander Twitter form:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<html>
<form id="form" action="project_functions.php?a=add_twitter" method="post">
    <label>Twitter:</label>
    <input type="text" name="twitternaam" /><br>
                        
    <label>Submit:</label>
    <input type="submit" />
</form>
</html>


Heeft iemand enig idee hoe ik in mijn functie.php een redirect kan maken?
Alvast hartstikke bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Don
 
PHP hulp

PHP hulp

17/11/2024 16:55:54
 
Emmanuel Delay

Emmanuel Delay

21/08/2009 15:04:00
Quote Anchor link
Je stuurt de gegevens naar project_functions.php (eerste stukje van je script, veronderstel ik).
op welke file staat het formulier (waar je dus terug naartoe wil)?

Die case, staat die bij jou in een switch?

Toon eens hoe je probeerde te redirecten met header location (want wees gerust: header location werkt wel!).
 
Don

Don

21/08/2009 16:26:00
Quote Anchor link
Ja, het staat in een switch, dit is het begin stukje van mijn project_functions.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    $conn
= connect();
    $action = $_GET['a'];
    $id = $_GET['id'];
    
    switch($action) {

        // Hier komen alle cases terecht.
?>


En als ik dan bijvoorbeeld het twitter fomulier heb ingevuld, dat hij weer terug redirect naar dat form, dus verander_twitter.php

Dit had ik geprobeerd:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
case 'add_twitter':
    
    $sql="INSERT INTO twitter (twitternaam) VALUES ('$_POST[twitternaam]')";
        if (!mysql_query($sql))
        {

            die('Error: ' . mysql_error());
        }


        echo "Je twitter account is met succes gewijzigd.";
                header("Location: verander_twitter.php");
    break;
?>


Als het nog niet duidelijk is, kan ik wel de hele pagina's erin zetten, als je wilt.
 
- SanThe -

- SanThe -

21/08/2009 16:34:00
Quote Anchor link
$vars zomaar copiëren is zinloos.
$vars buiten quotes houden.
Insert is geen wijziging maar een toevoeging, dus je tekst klopt niet.
Script is lek => sql-injection.
 
Don

Don

21/08/2009 16:37:00
Quote Anchor link
Wat die INSERT betreft, dat heb ik expres gedaan. Het is voor school, en ik heb al een UPDATE functie gebruikt, dus nu heb ik het zo gedaan dat hij alleen de laatste row uit de tabel laat zien.

Hoe bedoel je de 3 anderen, precies? Dit heeft me ineens hard gedemotiveerd om verder te gaan :p
 

21/08/2009 16:45:00
Quote Anchor link
Je kunt na een echo geen headers meer sturen. Je kunt 3 dingen doen:

1) IPV een Header een <meta>- refresh gebruiken (Not done)
2) OB_START gebruiken (Not done)
3) Je programmering beter maken waardoor je de output pas als laatst eruit poept en niet tussendoor echo's maakt (Done)
 



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.