Avatar billede dweb Nybegynder
18. juni 2002 - 22:10 Der er 14 kommentarer og
1 løsning

problemmer med switch

Hej

Jeg er ved at lave et lille nyhed script til et projekt i skolen.
Mit problem er bare at på min egen win2k / apache server
kan jeg ikke få switch til at virke rigtigt.
Jeg har testet scriptet på en anden server og der virker det fint.
Indtil videre består det af 3 sider.

index.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>index</title>
</head>

<body>
<?php
include "./include/news.inc";
?>
<form action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="news_action" value="make_news_table">
<input type="submit" value="Opret">
</form>
</body>
</html>

mysql.inc :

<?php
//mysql.inc

//opsætning af host, brugernavn, kodeord og database
$db_host = "localhost";
$db_user = "super8";
$db_pass = "123";
$db_name = "super8";

//udskriver fejl
function db_error() {
    $error = mysql_error();
    $error_no = mysql_errno();
    echo "Fejl: $error<br>\n";
    echo "Fejl nr.: $error_no<br>\n";
}

//opretter forbindelse til mysql serveren og åbner databasen
function mysql_open() {
    global $db_host, $db_user, $db_pass, $db_name;
   
    if(!mysql_connect("$db_host","$db_user","$db_pass")) {
        db_error();
    }
   
    if(!mysql_select_db("$db_name")) {
        db_error();
    }
}

//lukker forbindelsen til mysql serveren
function mysql_exit() {
    if(!mysql_close()) {
        db_error();
    }
}
?>

news.inc :

<?php
//news.inc

//includer diverse include filer
include "./include/mysql.inc";

//opretter en tabel til nyheder
function make_news_table() {
    $news_tablename = 'news';
    $news_table = "id INT DEFAULT '0' NOT NULL AUTO_INCREMENT PRIMARY KEY, ";
    $news_table .= "cat VARCHAR(10), ";
    $news_table .= "text TEXT NOT NULL, ";
    $news_table .= "userid INT NOT NULL, ";
    $news_table .= "pic VARCHAR(30), ";
    $news_table .= "file VARCHAR(30), ";
    $news_table .= "date DATETIME NOT NULL, ";
    $news_table .= "lastwiev TIMESTAMP";
   
    mysql_open();
   
    if(!mysql_query("CREATE TABLE $news_tablename ($news_table)")) {
        echo "Nyheds databasen kunne ikke oprettes!!!<br>\n";
        db_error();
        exit;
    }
   
    echo "Nyheds databasen er oprettet!<br>\n";
   
    mysql_exit();
}

//vælger actions/functions
switch ($news_action) {
    case "make_news_table":
        make_news_table();
    break;
    default:
        echo "Nyhed script V 0.0.1<br>\n";
    break;
}
?>

Skulle der være noget galt med det??
og hvorfor virker det på en server men ikke en anden??

Mvh Jesper
Avatar billede php_teddy Nybegynder
18. juni 2002 - 22:12 #1
Det kan jo være pga din php version er ænldre... Se om du har den nyste php.
Avatar billede dweb Nybegynder
18. juni 2002 - 22:14 #2
jeg har lige hentet og installeret den nyeste vers. af php og apache :-(
Avatar billede dweb Nybegynder
18. juni 2002 - 22:33 #3
Ikke nogen som har et forslag?? det er ret vigtigt da jeg skal aflevere i morgen.
Avatar billede lauer Nybegynder
18. juni 2002 - 22:41 #4
kan du ikke skrive lidt mere om hvad fejlen er?
Avatar billede dweb Nybegynder
18. juni 2002 - 22:41 #5
bare til lidt hjælp så er denne del jeg snakker om:

//vælger actions/functions
switch ($news_action) {
    case "make_news_table":
        make_news_table();
    break;
    default:
        echo "Nyhed script V 0.0.1<br>n";
    break;
}
Avatar billede Slettet bruger
18. juni 2002 - 22:42 #6
Du kan jo starte med at beskrive, hvad præcist (!) det er, du har problemer med.
Avatar billede dweb Nybegynder
18. juni 2002 - 22:45 #7
ok jeg prøver.

Mit problem er at på min server der sker der ikke noget når jeg trykker på min form.
Den skulle jo gerne sætte $news_action til make_news_table og så skulle switch kører min function der hedder make_news_table().
Der sker bare ikke noget.

Jeg har prøvet scriptet på freepaq.dk og der virker det fint
Avatar billede Slettet bruger
18. juni 2002 - 22:47 #8
Prøv
switch ($_GET['news_action'])
eller
switch ($_POST['news_action'])

- alt afhængig af om du anvender POST eller GET metoden i din form.
Avatar billede dweb Nybegynder
18. juni 2002 - 22:54 #9
Virker ikke!

mit spørgsmål er hvorfor det virker på freepaq.dk og ikke på min egen server?
Avatar billede Slettet bruger
18. juni 2002 - 22:56 #10
Og det kunne være én grund.

Hvilken version af PHP anvender henholdsvis de og du?
Avatar billede dweb Nybegynder
18. juni 2002 - 22:58 #11
freepaq.dk vers 4.1.2 og jeg bruger vers 4.2.1
Avatar billede dweb Nybegynder
18. juni 2002 - 23:03 #12
Så virker det... har installeret php4 vers 4.1.2 og ny virker det.
Sjovt jeg har også haft problemer med at vers 4.2.1 ikke gad trække ting ud fra min mysql database.

mercur8 vil du have nogle point??

Mvh Jesper
Avatar billede Slettet bruger
18. juni 2002 - 23:13 #13
Der er væsentlige ændringer i håndtering af variable i den nye PHP version. Dem bør du sætte dig ind i, hvis du vil anvende dem.

Behold point selv, jeg er ligeglad.
Avatar billede dweb Nybegynder
18. juni 2002 - 23:17 #14
mercur8 ok.. takker!

Hvor finder jeg de ændringer??

Mvh Jesper
Avatar billede Slettet bruger
18. juni 2002 - 23:18 #15
php.net
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Unik System Design A/S

Udviklingschef

Cognizant Technology Solutions Denmark ApS

Sr. Test Analyst