Variables in Cases
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 ?
En waarom lukt dat niet? Staan de cases in functions? Geef anders even een stukje (geen compleet script) relevante code dan kunnen we kijken.
Code (php)
1
2
3
4
5
6
7
8
9
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>";
?>
{
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>
Alvast bedankt.
En welke $var wil je in welke code gaan gebruiken?
Ik wil $conn_id in mijn volgende case gaan gebruiken om in te loggen in de FTP server
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.
Code (php)
1
2
3
4
5
6
7
8
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>";
?>
{
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)
<form method="post">
<input type="hidden" name="action" value="default" />
<input type="submit" value="Terug" />
</form>
Nu geeft hij dus een error dat hij $conn_id niet ziet.
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
Of je moet in elke case een nieuwe connectie maken
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
Maar je komt pas in de tweede case als de pagina weer is ververst. Dan bestaat die $conn_id niet meer.
So i need to write that to a text document or database ?
Wat denk je van SESSION?
Kan je alsjeblieft uitleggen wat je daarmee bedoelt ?
Thnx
session_register ?
Gewijzigd op 01/01/1970 01:00:00 door Arjen Lodder
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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']))
// .........
?>
// 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']))
// .........
?>
Code (php)
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']))
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.
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
Maar ik kan vervolgens NIET dit doen (in dezelfde case als bovenstaande code)
Hoe kan dat dan?
Want hij is wel weer te grbruiken als:
Code (php)
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