Variables in Cases

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arjen Lodder

Arjen Lodder

30/05/2008 19:42:00
Quote Anchor link
Hallo.
Ik gebruik CASEs in mijn script.
In deze CASE heb ik een variable staan.
Maar deze Variable wil ik ook in andere cases (in het zelfde script) gebruiken.
Dit lukt alleen niet.
Is er een manier dat dit wel kan ?
 
PHP hulp

PHP hulp

24/11/2024 12:40:45
 
- SanThe -

- SanThe -

30/05/2008 19:47:00
Quote Anchor link
En waarom lukt dat niet? Staan de cases in functions? Geef anders even een stukje (geen compleet script) relevante code dan kunnen we kijken.
 
Arjen Lodder

Arjen Lodder

30/05/2008 19:50:00
Quote Anchor link
Hier is 1 case:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
    case 'connect':
    {
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {
            $conn_id = ftp_connect($_POST['ftpadres'], $_POST['port']) or die ("<p>Kan geen toegang krijgen tot ".$_POST['ftpadres']."</p>" );
            if ($conn_id)
            {
                print "<p>Succesvol verbonden</p>";
                ?>

<form method="post">
<input type="hidden" name="action" value="login" />
<input type="submit" value="verder" onClick"" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
            }
        }

        break;
    }

Alvast bedankt.
 
- SanThe -

- SanThe -

30/05/2008 19:52:00
Quote Anchor link
En welke $var wil je in welke code gaan gebruiken?
 
Arjen Lodder

Arjen Lodder

30/05/2008 19:55:00
Quote Anchor link
Ik wil $conn_id in mijn volgende case gaan gebruiken om in te loggen in de FTP server
 
- SanThe -

- SanThe -

30/05/2008 20:01:00
Quote Anchor link
Arjen schreef op 30.05.2008 19:55:
Ik wil $conn_id in mijn volgende case gaan gebruiken om in te loggen in de FTP server

Dat moet gewoon kunnen. Alleen hou wel in de gaten dat als er een tijdje niks gebeurt (timeout) de ftp-server zelf de connectie sluit.
 
Arjen Lodder

Arjen Lodder

30/05/2008 20:04:00
Quote Anchor link
Het gaat heel snel, niet langer dan.... 10 seconden, dus dat moet het probleem niet staan. Wel is het zo dat mijn andere case hier boven staat.. maar dat kan er tog niets mee te maken hebben ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
    case 'login':
    {
        if($_SERVER['REQUEST_METHOD'] == 'POST')
            {
            if(ftp_login($conn_id, $_POST['user'], $_POST['pass']))
            {
                print "<p>Succesvol ingelogd</p>";
                ?>

<form method="post">
<input type="hidden" name="action" value="lijst" />
<input type="submit" value="verder" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
            }
            else
            {
                print "<p>Kon geen verbinding maken met de opgegeven gebruikersnaam en wachtwoord</p>";
                ?>

<form method="post">
<input type="hidden" name="action" value="default" />
<input type="submit" value="Terug" />
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
            }
        }

        break;
    }

Nu geeft hij dus een error dat hij $conn_id niet ziet.
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
 
Citroen Anoniem Graag

Citroen Anoniem Graag

30/05/2008 20:05:00
Quote Anchor link
probeer de connectie id, buiten de case aan maken. Want anders is hij bij een refresh weg..
Of je moet in elke case een nieuwe connectie maken
 
Arjen Lodder

Arjen Lodder

30/05/2008 20:06:00
Quote Anchor link
Maar eigenlijk zit hier het probleem omdat je zelf in moet vullen welke server, port enzo je wil.
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
 
- SanThe -

- SanThe -

30/05/2008 20:16:00
Quote Anchor link
Maar je komt pas in de tweede case als de pagina weer is ververst. Dan bestaat die $conn_id niet meer.
 
Arjen Lodder

Arjen Lodder

30/05/2008 20:24:00
Quote Anchor link
So i need to write that to a text document or database ?
 
- SanThe -

- SanThe -

30/05/2008 20:27:00
Quote Anchor link
Wat denk je van SESSION?
 
Arjen Lodder

Arjen Lodder

30/05/2008 20:41:00
Quote Anchor link
Ik ben net begonnen met PHP Eigenlijk.
Kan je alsjeblieft uitleggen wat je daarmee bedoelt ?
Thnx
session_register ?
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
 
- SanThe -

- SanThe -

30/05/2008 20:48:00
Quote Anchor link
Even in het heel kort:
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
<?php
// session altijd starten
session_start();

// ...........
case 'connect':
    {

        // ...............
                print "<p>Succesvol verbonden</p>";
                // session vullen
                $_SESSION['conn_id'] = $conn_id;
// ...........
case 'login':
    {

        // ........
                // session uitlezen

                if(ftp_login($_SESSION['conn_id'], $_POST['user'], $_POST['pass']))
// .........
?>
 
Arjen Lodder

Arjen Lodder

30/05/2008 21:04:00
Quote Anchor link
Ik heb de sessie gestart, opgeslagen en opgeroepen maar ik krijg nog deze error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: ftp_login() expects parameter 1 to be resource, integer given in /var/www/editor.php on line 16

Dus hij ziet niet wat $_SESSION['conn_id'] inhoud.
lijn 16:
if(ftp_login($_SESSION['conn_id'], $_POST['user'], $_POST['pass']))
 
- SanThe -

- SanThe -

30/05/2008 21:34:00
Quote Anchor link
Ik heb hier zelf zitten testen. Ik denk niet dat dit zo gaat lukken. Volgens mij is na een refresh de connectie verbroken. Ik denk dat je alles in één formulier moet zetten en het dan in één keer compleet afhandelen.
 
Arjen Lodder

Arjen Lodder

30/05/2008 21:38:00
Quote Anchor link
O ok,
In ieder geval heel erg bedankt.
Ik zal alles in 1 formulier zetten, en dan laat iik nog wel ff weten of het is gelukt.

Maar ik heb gezien dat je wel in een andere CASE $_POST kan gebruiken. Nu wil ik dit doen maar werkt het niet.
Maar ik kan wel zien dat ze allemaal ingevuld zijn, in een andere case d.m.v
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_POST['ftpadres'] && $_POST['port'] && $_POST['user'] && $_POST['pass'])

Maar ik kan vervolgens NIET dit doen (in dezelfde case als bovenstaande code)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ftpadres = $_POST['ftpadres']


Hoe kan dat dan?
Want hij is wel weer te grbruiken als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
            $conn_id = ftp_connect($_POST['ftpadres'], $_POST['port']) or die ("<p>Kan geen toegang krijgen tot ".$_POST['ftpadres']."</p>" );
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
 



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.