MySQL mit CGI

Ja, ich weiß, ich vergesse es immer :D

also im error-log steht
Code:
[Sun Sep 04 14:20:49 2011] [error] [client 127.0.0.1] Premature end of script headers: verbindenTest.cgi
wenn ich mit mysql-Funktionen arbeite.
 
Was ist, wenn du beim MySQL-haltigen Code nach dem Anfangsprintf, aber vor dem MySQL-Zeug eine Datei erstellst?
C++:
FILE *dat;
dat=fopen("bla", "w");
if(!dat) printf("Fehler beim Schreiben");
else fclose(dat);
und das Ganze dann ausführst?
Existiert die Datei dann?
 
Also wenn ich das in mein Programm einfüge, ohne irgendeine MySQL-Funktion, und ich das Programm aus dem Browser aufrufe, ist die Datei noch da :)
 
"Noch da"?
Die sollte eigentlich neu erstellt werden.

Datei löschen und mit MySQL-Code nach dem Dateierstellen ausführen.
Die Premature-Meldung sollte trotzdem kommen, aber wird die Datei wieder erstellt?

PS: Bitte keine Doppelposts (schon mehrmals).
 
Ich meinte damit ja, dass sie neu erstellt wurde :D :D

Also, ich habe jetzt mal dieses Programm ausgeführt, und die Datei wurde erstellt aber ich bekomme wieder die Fehlermeldung 500 (sprich, die vom Anfang :)):

Code:
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>

int main(void){
    printf("Content-Type: text/html\n\n");
    FILE *fp = fopen("datei.txt", "w+");
    if(fp == NULL)
      printf("Konnte Datei nicht öffnen!\n");
    else {
      printf("Datei libmysql.dll geöffnet!\n");
      fclose(fp);
    }
    MYSQL *my = mysql_init(NULL);
    if(my == NULL) {
      printf("Fehler bei mysql_init()\n");
      return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}
 
Und wenn du das Programm CGI-los normal startest gehts komplett durch, auch mit MySQL?
Seltsam.
Bin wieder mal ideenlos.
 
Ja, als normale .exe funktioniert alles super :)

Trotzdem vielen Dank für deine ausführliche Hilfe :)

Ich nehme gerne noch andere Hilfe an :D :D :D
 
Okay, ich habe es endlich geschaft :) Man muss am Ende einfach fflush(stdout); eingeben.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>

int main(void){
    printf("Content-Type: text/html\n\n");
    MYSQL *mysql = mysql_init(NULL);
    if(mysql == NULL) {
      printf("Fehler bei mysql_init()******\n");
      return EXIT_FAILURE;
    }
    if(mysql_real_connect(mysql, NULL, NULL, NULL, NULL, 0, NULL, 0) == NULL) {
      printf("Fehler bei mysql_real_connect()******\n");
      return EXIT_FAILURE;
    } else
      printf("Verbunden******\n");
    
    mysql_close(mysql);
    fflush(stdout);
    return EXIT_SUCCESS;
}

Und nochmals Danke für eure Hilfe :)
 
Zurück