Quick PHP
Posted on October 2, 2021
Tags: javascript
1 Basic PHP SQL
1.1 simple
<?php
<!-- Some server operations happening -->
$ClientCannotSeeThis='AHHHHH';
header("Access-Control-Allow-Origin: *");
echo "<h1>Hi</h1>";
?>
- PHP is server side language, meaning when you hit “somewebsite.com/testpage.php”, all you see is “Hi”
BUT you also initated some operation on the server-side.
- This is why you SHOULDNT click PHP links willy-nilly. It can log your information without a trace of you knowing. The client inspect element won’t show anything but the returned echo
1.2 SQL
- apache httpd server will load files from (htdocs or public_html or www) directory
- PDO is just a generic dbdriver that works on sql dbs
<?php
$sqlurl='sql101.XXXXXXX.com';
$port='3306';
$dbname='b17XXXXXXX_hello';
$cpanelusername='b17_XXXXXXX';
$cpanelpassword='root';
try
{
$conn = new PDO("mysql:host={$sqlurl};port={$port};dbname={$dbname}",$cpanelusername,$cpanelpassword);
catch(Exception $ex){
}die($ex->getMessage());
}var_dump($conn);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Account Active!</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/css/bootstrap.min.css" integrity="sha512-SbiR/eusphKoMVVXysTKG/7VseWii+Y3FdHrt0EpKgpToZeemhqHeZeLWLhJutz/2ut2Vw1uQEj2MbRF+TVBUA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<!-- Latest compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/js/bootstrap.min.js" integrity="sha512-1/RvZTcCDEUjY/CypiMz+iqqtaoQfAITmNSJY17Myp4Ms5mdxPS5UV7iOfdZoxcGhzFbOm6sntTKJppjvuhg4g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>
<body>
<h1>DEMO PAGE</h1>
<form action="db.php" method="post">
<input type="submit">
</form>
<form action="routes.php" method="post">
<input type="submit">
</form>
</body>
</html>
submit form should return object(PDO)#1 (0) { }
indicated connection successful
2 Request Body and Route variable
How do you get request information or even route variables?
PHP uses predefined variables https://www.php.net/manual/en/reserved.variables.php
3 Example project
<?php
header("Access-Control-Allow-Origin: *");
$sqlurl='sql101.XXXXXx.com';
$port='3306';
$dbname='XXXXXXX';
$cpanelusername='XXXXXXXXXXX';
$cpanelpassword='XXXXXXXX';
function INSERT(&$conn,$mydbname,$myip,$qparam){
$myquery="INSERT INTO {$mydbname} (ip,qparam) VALUES ('{$myip}','{$qparam}');";
$conn -> exec($myquery);
}
function CREATETABLE(&$conn,$newdbname){
$myquery="CREATE TABLE IF NOT EXISTS {$newdbname}(
id INT NOT NULL ,
ip VARCHAR(20) NOT NULL ,
date TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ,
qparam TEXT NOT NULL ,
PRIMARY KEY (id));";
$conn -> exec($myquery);
}
function READTABLE(&$conn,$newdbname,$colname){
$sql = "SELECT {$colname} FROM {$newdbname};";
$result = $conn->query($sql);
$output = "";
foreach ($conn->query($sql) as $row) {
$output = $output . "<li> {$row["{$colname}"]} </li>" ;
}$output = "<ul>" . $output . "</ul>";
return $output;
}try
{$conn = new PDO("mysql:host={$sqlurl};port={$port};dbname={$dbname}",$cpanelusername,$cpanelpassword);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$ip = isset($_SERVER['HTTP_CLIENT_IP'])
? $_SERVER['HTTP_CLIENT_IP']
: (isset($_SERVER['HTTP_X_FORWARDED_FOR'])
? $_SERVER['HTTP_X_FORWARDED_FOR']
: $_SERVER['REMOTE_ADDR']);
CREATETABLE($conn,"iplog");
INSERT($conn,"iplog",$ip,$_SERVER["QUERY_STRING"]);
catch(Exception $ex){
}die($ex->getMessage());
}$newdoc = READTABLE($conn,"chatroom","text");
$mydoc= <<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<h1>Stuff</h1><img src=''>
<form action="chatroom.php" method="post">
<input type="text" name="sometext" id="sometext">
<input type="submit" value="share">
</form>
<div>
$newdoc
</div>
</html>
END;
echo $mydoc;
// var_dump($pdo);
?>
<?php
$sqlurl='sql101.XXXXX.com';
$port='3306';
$dbname='XXXXXXXXXXXXXXX';
$cpanelusername='XXXXX';
$cpanelpassword='XXXXX';
function INSERT(&$conn,$mydbname,$myip,$text){
$myquery="INSERT INTO {$mydbname} (ip,text) VALUES ('{$myip}','{$text}');";
$conn -> exec($myquery);
}
function CREATETABLE(&$conn,$newdbname){
$myquery="CREATE TABLE IF NOT EXISTS {$newdbname}(
id INT NOT NULL AUTO_INCREMENT,
ip VARCHAR(20) NOT NULL ,
date TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ,
text TEXT NOT NULL ,
PRIMARY KEY (id));";
$conn -> exec($myquery);
}
function READTABLE(&$conn,$newdbname,$colname){
$sql = "SELECT {$colname} FROM {$newdbname};";
$result = $conn->query($sql);
$output = "";
foreach ($conn->query($sql) as $row) {
$output = $output . "<li> {$row["{$colname}"]} </li>" ;
}$output = "<ul>" . $output . "</ul>";
return $output;
}
try
{$conn = new PDO("mysql:host={$sqlurl};port={$port};dbname={$dbname}",$cpanelusername,$cpanelpassword);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$ip = isset($_SERVER['HTTP_CLIENT_IP'])
? $_SERVER['HTTP_CLIENT_IP']
: (isset($_SERVER['HTTP_X_FORWARDED_FOR'])
? $_SERVER['HTTP_X_FORWARDED_FOR']
: $_SERVER['REMOTE_ADDR']);
CREATETABLE($conn,"chatroom");
INSERT($conn,"chatroom",$ip,$_POST["sometext"]);
catch(Exception $ex){
}die($ex->getMessage());
}// // for debugging uncomment below
// $newdoc = READTABLE($conn,"chatroom","text");
$mydoc= <<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<script>
window.location.replace('/index.php');
</script>
<html>
<h2>redirecting</h2>
</html>
END;
echo $mydoc;
?>