lwIP STM32 mit HTTP und CGI SSI

Gast #5997701
Lesenswert?
• ▲
▼
Hallo,

Bin gerde am  basteln mit der lwIP lib.

HTML Webseite anzeigen klappt schon. Wert in nem Häckchen Kästechen 
auslesen mit CGI auch. Nur nach jedem Senden fällt das Häkchen wieder 
raus.

Nun möchte ich da auch ein Häckchen setzen aus der Software raus können, 
wie mach ich dass?

Desweitern, kennt wer von euch eine gut verständliche Doku dazu(CGI und 
SSI Handhabung) mit Beispielen?
Gast #5997707
Lesenswert?
• ▲
▼
das ist eher HTML

du musst deinen string ändern
also einen parameter per SSI einfügen

<input type="checkbox"  checked>

wenn deine interne Variable ==1 ist musst du das checked absenden

sonst eben nicht
Gast #6000355
Lesenswert?
• ▲
▼
gre schrieb:
> das ist eher HTML
>
> du musst deinen string ändern
> also einen parameter per SSI einfügen
>
> <input type="checkbox"  checked>
>
> wenn deine interne Variable ==1 ist musst du das checked absenden
>
> sonst eben nicht

HTML:
          </p>
          <form method="get" action="/leds.cgi">
          <input value="1" name="led" type="checkbox">LED1<br>
          <input value="2" name="led" type="checkbox">LED2<br>
          <br>
          <input value="Send" type="submit"> </form>
    <p>

C:

const char * LedCGIhandler(int iIndex, int iNumParams, char *pcParam[], 
char *pcValue[])
{
uint32_t i=0;
// index of the CGI within the theCGItable array passed to 
http_set_cgi_handlers
// Given how this example is structured, this may be a redundant check.
// Here there is only one handler iIndex == 0
if (iIndex == 0)
{
// turn off the LEDs
HAL_GPIO_WritePin(LD3_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_RESET);
// Check the cgi parameters, e.g., GET /leds.cgi?led=1&led=2
for (i=0; i<iNumParams; i++)
{
//if pcParmeter contains "led", then one of the LED check boxes has been 
set on
if (strcmp(pcParam[i], "led") == 0)
{
//see if checkbox for LED 1 has been set
if(strcmp(pcValue[i], "1") == 0)
{
// switch led 1 ON if 1
HAL_GPIO_WritePin(LD3_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
}
//see if checkbox for LED 2 has been set
else if(strcmp(pcValue[i], "2") == 0)
{
// switch led 2 ON if 2
HAL_GPIO_WritePin(LD3_GPIO_Port, LD3_Pin, GPIO_PIN_SET);
}
} //if
} //for
} //if
//uniform resource identifier to send after CGI call, i.e., path and 
filename of the response
return "/index.html";
} //LedCGIhandler

Stehe grad etwas auf den schlauch.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.